KR102561557B1 - Method, apparatus, and computer program product for creating externally shared communication channels - Google Patents

Method, apparatus, and computer program product for creating externally shared communication channels Download PDF

Info

Publication number
KR102561557B1
KR102561557B1 KR1020217011092A KR20217011092A KR102561557B1 KR 102561557 B1 KR102561557 B1 KR 102561557B1 KR 1020217011092 A KR1020217011092 A KR 1020217011092A KR 20217011092 A KR20217011092 A KR 20217011092A KR 102561557 B1 KR102561557 B1 KR 102561557B1
Authority
KR
South Korea
Prior art keywords
communication channel
organization
group
channel
message
Prior art date
Application number
KR1020217011092A
Other languages
Korean (ko)
Other versions
KR20210046082A (en
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/en
Application granted granted Critical
Publication of KR102561557B1 publication Critical patent/KR102561557B1/en

Links

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 클라이언트 디바이스로 각각 송신하는 단계를 추가로 포함한다.Computing systems, apparatuses, computer-implemented methods, and computer program products for creating a shared communication channel in a group-based communication platform with a plurality of database shards are disclosed. An example computer implemented method includes a shared communication channel identification, a first set of shared communication channel attributes associated with an initiator group identification, and a second set of shared communication channel attributes associated with a target group identification. Creating channel shards. The method further includes generating first and second externally shared group-based shared communication channel interfaces, respectively, based on the first and second sets of shared communication channel attributes. The method further includes transmitting the first and second externally shared group-based shared communication channel interfaces to a first client device associated with a first group identification and a second client device associated with a second group identification, respectively. do.

Description

외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품Method, apparatus, and computer program product for creating externally shared communication channels

본 출원은 발명의 명칭이 "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호의 연속이며, 그 내용들은 그들 전체가 본 명세서에 참고로 포함된다.This application claims "METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS" and filed on June 12, 2019, US Patent Application Serial No. 16/438,957, and "METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS. /206,578, which is a continuation-in-part of U.S. patent application Ser. No. 15/816,925, entitled “METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS,” filed on November 17, 2017, which This is a continuation of U.S. Patent Application Serial No. 15/655,634, entitled "METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS," filed on July 20, 2017, the contents of which are incorporated herein by reference in their entirety. included as

다양한 시스템들은 외부에서 공유되는 통신 채널들을 생성하도록 구성된다. 출원인은 기존 시스템들과 연관된 많은 결함들 및 문제들을 확인했다. 적용되는 노력, 독창성, 및 혁신성을 통해, 본 개시내용의 실시예들에 따르는 솔루션들을 개발함으로써 이러한 확인된 결함들 및 문제들 중 많은 것들이 해결되었으며, 그들의 많은 예들이 본 명세서에서 상세히 기술된다.Various systems are configured to create externally shared communication channels. Applicant has identified many deficiencies and problems associated with existing systems. Through applied effort, ingenuity, and innovation, many of these identified deficiencies and problems have been addressed by developing solutions in accordance with embodiments of the present disclosure, many examples of which are described in detail herein.

일반적으로, 본 개시내용의 실시예들은 외부에서 공유되는 통신 채널들을 생성하기 위한 방법들, 장치, 시스템들, 컴퓨팅 디바이스들 등을 제공한다.In general, embodiments of the present disclosure provide methods, apparatus, systems, computing devices, etc. for creating externally shared communication channels.

하나의 예시적인 실시예에서, 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨팅 시스템이 제공된다. 그룹 기반 통신 플랫폼은 복수의 데이터베이스 샤드(shard)들을 포함할 수 있다. 컴퓨팅 시스템은, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터, 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하도록 구성된 통신 회로를 포함할 수 있다. 통신 회로는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 통신 회로는, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 통신 회로는, 제1 클라이언트 디바이스로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 통신 회로는, 제2 클라이언트 디바이스로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 컴퓨팅 시스템은 통신 회로와 통신하는 데이터베이스 회로를 추가로 포함할 수 있다. 데이터베이스 회로는, 통신 회로로부터, 공유되는 통신 채널 생성 쿼리를 수신하도록 구성될 수 있다. 데이터베이스 회로는 공유되는 통신 채널 샤드를 생성하도록 추가로 구성될 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 데이터베이스 회로는 공유되는 통신 채널 수락 요청을 생성하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 데이터베이스 회로는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로의 송신을 위한 통신 회로로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 데이터베이스 회로는, 통신 회로로부터, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 컴퓨팅 시스템은 통신 회로, 데이터베이스 회로, 및 메인 데이터베이스와 통신하는 참조 테이블 생성 회로를 추가로 포함할 수 있다. 메인 데이터베이스는 샤드 참조 테이블을 포함할 수 있다. 참조 테이블 생성 회로는 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하도록 구성될 수 있다. 컴퓨팅 시스템은 통신 회로, 데이터베이스 회로, 및 참조 테이블 생성 회로와 통신하는 인터페이스 생성 회로를 더 포함할 수 있다. 인터페이스 생성 회로는 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 구성될 수 있다. 인터페이스 생성 회로는 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 구성될 수 있다. 인터페이스 생성 회로는, 제1 클라이언트 디바이스로의 송신을 위한 통신 회로로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 구성될 수 있다. 인터페이스 생성 회로는, 제2 클라이언트 디바이스로의 송신을 위한 통신 회로로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다.In one illustrative embodiment, a computing system for creating a shared communication channel in a group based communication platform is provided. A group-based communication platform may include a plurality of database shards. The computing system can include communication circuitry configured to receive, from a first client device associated with an initiator group identification, a create shared communication channel query associated with an initiator group identification and a target group identification. The communication circuitry may be further configured to transmit a shared communication channel accept request to the second client device associated with the target group identification. The communication circuitry may be further configured to receive notification of acceptance of the shared communication channel. The communication circuitry may be further configured to transmit, to the first client device, a group-based shared communication channel interface shared first outside of the shared communication channel. The communication circuitry may be further configured to transmit, to the second client device, a group based shared communication channel interface shared second outside of the shared communication channel. The computing system may further include database circuitry in communication with the communication circuitry. The database circuitry may be configured to receive a shared communication channel creation query from the communication circuitry. The database circuitry may be further configured to create shared communication channel shards. A plurality of database shards may include a shared communication channel shard. A shared communication channel shard may be assigned a first set of shared communication channel attributes associated with a shared communication channel identification, an initiator group identification, and a second set of shared communication channel attributes associated with a target group identification. The database circuitry may be further configured to generate a shared communication channel accept request. A shared communication channel acceptance request may be associated with a shared communication channel identification. The database circuitry may be further configured to transmit a shared communication channel accept request to the communication circuitry for transmission to a second client device associated with the target group identification. The database circuitry may be further configured to receive a shared communication channel acceptance notification from the communication circuitry. The shared communication channel acceptance notification may include an electronic authorization to associate the shared communication channel identification with the target group identification. The computing system may further include communication circuitry, database circuitry, and lookup table generation circuitry in communication with the main database. The main database may include a shard lookup table. The lookup table creation circuitry is configured to update the shard lookup table based on the initiator group identification, the target group identification, the shared communication channel identification, the first set of shared communication channel attributes, and the second set of shared communication channel attributes. It can be. The computing system may further include interface generation circuitry in communication with the communication circuitry, the database circuitry, and the lookup table generation circuitry. The interface generation circuitry is configured to generate a group-based shared communication channel interface shared first outside of the shared communication channel based on the shared communication channel shard and the first set of shared communication channel attributes associated with the initiator group identification. It can be. The interface generation circuitry may be configured to generate a group-based shared communication channel interface shared second outside of the shared communication channel based on the shared communication channel shard and a second set of shared communication channel attributes associated with the target group identification. can The interface generation circuitry may be configured to transmit the shared group-based shared communication channel interface on the first outside of the shared communication channel, with the communication circuitry for transmission to the first client device. The interface generation circuitry may be further configured to transmit the shared group-based shared communication channel interface second outside of the shared communication channel, with the communication circuitry for transmission to the second client device.

다른 예시적인 실시예에서, 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨터 구현 방법이 제공된다. 그룹 기반 통신 플랫폼은 복수의 데이터베이스 샤드(shard)들을 포함할 수 있다. 컴퓨터 구현 방법은, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터의 통신 회로에 의해, 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하는 단계를 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로와 통신하는 데이터베이스 회로에 의해, 공유되는 통신 채널 샤드를 생성하는 단계를 추가로 포함할 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 컴퓨터 구현 방법은, 데이터베이스 회로에 의해, 공유되는 통신 채널 수락 요청을 생성하는 단계를 추가로 포함할 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 컴퓨터 구현 방법은, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널 수락 요청을 송신하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로에 의해, 공유되는 통신 채널 수락 통지를 수신하는 단계를 추가로 포함할 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로, 데이터베이스 회로, 및 메인 데이터베이스와 통신하는 참조 테이블 생성 회로에 의해, 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하는 단계를 추가로 포함할 수 있다. 메인 데이터베이스는 샤드 참조 테이블을 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로, 데이터베이스 회로, 및 참조 테이블 생성 회로와 통신하는 인터페이스 생성 회로에 의해, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 인터페이스 생성 회로에 의해, 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 제1 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 제2 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 단계를 추가로 포함할 수 있다.In another exemplary embodiment, a computer implemented method for creating a shared communication channel in a group based communication platform is provided. A group-based communication platform may include a plurality of database shards. The computer implemented method may include receiving, by communication circuitry from a first client device associated with the initiator group identification, a shared communication channel creation query associated with an initiator group identification and a target group identification. The computer-implemented method may further include creating a communication channel shard that is shared by the database circuitry in communication with the communication circuitry. A plurality of database shards may include a shared communication channel shard. A shared communication channel shard may be assigned a first set of shared communication channel attributes associated with a shared communication channel identification, an initiator group identification, and a second set of shared communication channel attributes associated with a target group identification. The computer implemented method may further include generating, by the database circuitry, a request to accept the shared communication channel. A shared communication channel acceptance request may be associated with a shared communication channel identification. The computer implemented method may further include sending, by the communication circuitry to the second client device associated with the target group identification, a request to accept the shared communication channel. The computer implemented method may further include receiving, by the communication circuitry, a notification of acceptance of the shared communication channel. The shared communication channel acceptance notification may include an electronic authorization to associate the shared communication channel identification with the target group identification. A computer implemented method comprising, by means of communication circuitry, database circuitry, and lookup table generating circuitry in communication with the main database, an initiator group identification, a target group identification, a shared communication channel identification, a first set of shared communication channel attributes, and It may further include updating the shard lookup table based on the second set of shared communication channel attributes. The main database may include a shard lookup table. A computer implemented method comprising interface generation circuitry in communication with communication circuitry, database circuitry, and lookup table generation circuitry based on a shared communication channel shard and a first set of shared communication channel attributes associated with an initiator group identification. The method may further include generating a group-based shared communication channel interface shared outside the first outside of the communication channel to be shared. A computer-implemented method comprising a group-based shared communication shared, by interface generating circuitry, a second outside of a shared communication channel based on a shared communication channel shard and a second set of shared communication channel attributes associated with a target group identification. It may further include creating a channel interface. The computer-implemented method may further include transmitting, by the communications circuitry to the first client device, a shared group-based shared communications channel interface first outside of the shared communications channel. The computer-implemented method may further include transmitting, by the communications circuitry to the second client device, a shared group-based shared communications channel interface second outside of the shared communications channel.

다른 예시적인 실시예에서, 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨터 프로그램 제품이 제공된다. 그룹 기반 통신 플랫폼은 복수의 데이터베이스 샤드(shard)들을 포함할 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 실행가능 프로그램 코드 명령어들을 저장하는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있으며, 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 컴퓨팅 시스템으로 하여금, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터의 통신 회로에 의해, 타깃 그룹 식별 및 개시자 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하게 한다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로와 통신하는 데이터베이스 회로에 의해, 공유되는 통신 채널 샤드를 생성하게 할 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 데이터베이스 회로에 의해, 공유되는 통신 채널 수락 요청을 생성하게 할 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관된다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 타깃 그룹 식별과 연관된 제1 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널 수락 요청을 송신하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로에 의해, 공유되는 통신 채널 수락 통지를 수신하게 할 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로, 데이터베이스 회로, 및 메인 데이터베이스와 통신하는 참조 테이블 생성 회로에 의해, 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하게 할 수 있다. 메인 데이터베이스는 샤드 참조 테이블을 포함할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로, 데이터베이스 회로, 및 참조 테이블 생성 회로와 통신하는 인터페이스 생성 회로에 의해, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 인터페이스 생성 회로에 의해, 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 제1 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널을 송신하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 제2 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널을 송신하게 할 수 있다.In another exemplary embodiment, a computer program product for creating a shared communication channel in a group based communication platform is provided. A group-based communication platform may include a plurality of database shards. The computer program product may include at least one non-transitory computer-readable storage medium storing computer-executable program code instructions, which, when executed by a computing system, cause the computing system to initiate Receive, by communication circuitry from a first client device associated with a child group identification, a shared communication channel creation query associated with a target group identification and an initiator group identification. The computer executable program code instructions, when executed by the computing system, may further cause the computing system to create a communication channel shard that is shared by the database circuitry in communication with the communication circuitry. A plurality of database shards may include a shared communication channel shard. A shared communication channel shard may be assigned a first set of shared communication channel attributes associated with a shared communication channel identification, an initiator group identification, and a second set of shared communication channel attributes associated with a target group identification. The computer executable program code instructions, when executed by the computing system, may further cause the computing system to generate, by the database circuitry, a shared communication channel accept request. A shared communication channel acceptance request is associated with a shared communication channel identification. The computer executable program code instructions, when executed by the computing system, may further cause the computing system to transmit a shared communication channel accept request by the communication circuitry to the first client device associated with the target group identification. there is. The computer executable program code instructions, when executed by the computing system, may further cause the computing system to receive, by the communications circuitry, a notification of acceptance of the shared communications channel. The shared communication channel acceptance notification may include an electronic authorization to associate the shared communication channel identification with the target group identification. The computer executable program code instructions, when executed by the computing system, further cause the computing system to: , update the shard lookup table based on the shared communication channel identification, the first set of shared communication channel attributes, and the second set of shared communication channel attributes. The main database may include a shard lookup table. The computer-executable program code instructions, when executed by the computing system, further cause the computing system to, by interface generating circuitry in communication with the communication circuitry, the database circuitry, and the lookup table generating circuitry, share the associated initiator group identification. and create a group-based shared communication channel interface shared at a first outside of the shared communication channel based on the shared communication channel shard and the first set of communication channel attributes being defined. The computer-executable program code instructions, when executed by the computing system, further cause the computing system to, by the interface generation circuitry, access the second set of shared communication channel attributes associated with the target group identification and the shared communication channel shard. Based on the second outside of the shared communication channel, it is possible to create a group-based shared communication channel interface. The computer-executable program code instructions, when executed by the computing system, further cause the computing system to communicate group-based shared communication shared first outside of the shared communication channel by the communication circuitry to the first client device. channel can be transmitted. The computer-executable program code instructions, when executed by the computing system, further cause the computing system to: group-based shared communication shared second outside of the shared communication channel by the communication circuitry to the second client device. channel can be transmitted.

전술한 발명의 내용은 본 개시내용의 몇몇 양태들을 예시하는 일부 예시적인 실시예들을 요약할 목적으로만 제공된다. 따라서, 위에서 기술된 실시예들은 단지 예들일 뿐이고, 어떠한 방식으로든 본 개시내용의 범주를 좁히는 것으로 이해되어서는 안 된다는 것이 인식될 것이다. 본 개시내용의 범주는 본 명세서에 요약된, 일부가 아래에서 추가로 기술될 것들 외에도 많은 잠재적인 실시예들을 포괄한다는 것이 인식될 것이다.The foregoing summary is provided only for purposes of summarizing some exemplary embodiments illustrating some aspects of the present disclosure. Accordingly, it will be appreciated that the embodiments described above are merely examples and should not be construed as narrowing the scope of the present disclosure in any way. It will be appreciated that the scope of the present disclosure encompasses many potential embodiments beyond those outlined herein, some of which will be described further below.

일부 예시적인 실시예들이 일반적인 용어들로 이와 같이 기술되었지만, 이제, 본 개시내용의 예시적인 실시예들 및 특징들을 예시하고 반드시 축척대로 그려진 것은 아닌 첨부 도면이 참조될 것이다. 도면에 예시된 컴포넌트들은 본 명세서에서 기술되는 개시내용의 다양한 실시예들 또는 특징들에 존재할 수 있고 또는 존재하지 않을 수 있는 컴포넌트들을 표현한다. 따라서, 본 개시내용의 일부 실시예들 또는 특징들은 본 개시내용의 범주로부터 벗어나지 않으면서 도면에 도시된 것들보다 더 적은 또는 더 많은 컴포넌트들을 포함할 수 있다.
도 1은 본 개시내용의 일부 예시적인 실시예들에 따른 그룹 기반 통신 플랫폼의 예시적인 시스템 아키텍처 다이어그램을 예시한다.
도 2는 본 개시내용의 일부 예시적인 실시예들에 따른 메시지 서버의 예시적인 개략적도를 예시한다.
도 3은 본 개시내용의 일부 예시적인 실시예들에 따른 네트워크 애플리케이션 서버의 예시적인 개략적도를 예시한다.
도 4는 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 5는 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 6은 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 7은 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 8a, 도 8b, 도 8c, 및 도 8d는 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 사용자 인터페이스들의 다양한 요소들을 예시한다.
While some exemplary embodiments have been thus described in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale and illustrate exemplary embodiments and features of the present disclosure. Components illustrated in the drawings represent components that may or may not be present in various embodiments or features of the disclosure described herein. Accordingly, some embodiments or features of the present disclosure may include fewer or more components than those shown in the drawings without departing from the scope of the present disclosure.
1 illustrates an example system architecture diagram of a group-based communication platform in accordance with some example embodiments of the present disclosure.
2 illustrates an exemplary schematic diagram of a message server according to some exemplary embodiments of the present disclosure.
3 illustrates an example schematic diagram of a network application server according to some example embodiments of the present disclosure.
4 illustrates an example flow diagram illustrating an example method according to some example embodiments of the present disclosure.
5 illustrates an example flow diagram illustrating an example method according to some example embodiments of the present disclosure.
6 illustrates an example flow diagram illustrating an example method according to some example embodiments of the present disclosure.
7 illustrates an example flow diagram illustrating an example method according to some example embodiments of the present disclosure.
8A, 8B, 8C, and 8D illustrate various elements of example user interfaces in accordance with some example embodiments of the present disclosure.

본 개시내용의 다양한 실시예들이 이제 첨부 도면을 참조하여 이하에서 더 충분히 기술되며, 도면에는 개시내용의 모든 실시예들이 아닌 일부가 도시되어 있다. 실제로, 개시내용은 많은 상이한 형태들로 구체화될 수 있으며, 본 명세서에서 설명되는 실시예들로 제한되는 것으로 이해되어서는 안 된다. 오히려, 이들 실시예들이 제공되어, 이에 따라, 이 개시내용은 적용가능한 합법적 요건들을 만족시킬 것이다. 용어 "또는(or)"는 본 명세서에서, 달리 나타내지 않는 한, 대안적 의미 및 결합적 의미 둘 다로 사용될 수 있다. 용어들 "예시적인(illustrative, 및 example)"은 품질 레벨의 표시를 갖지 않는 예들이 되도록 사용된다. 동일한 번호들은 전체에 걸쳐서 동일한 요소들을 지칭한다. Various embodiments of the present disclosure are now more fully described below with reference to the accompanying drawings, in which some, but not all, embodiments of the disclosure are shown. Indeed, the disclosure may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that, as such, this disclosure will satisfy applicable legal requirements. The term “or” may be used herein in both alternative and conjunctional senses, unless otherwise indicated. The terms "illustrative, and example" are used to refer to examples that do not have an indication of quality level. Like numbers refer to like elements throughout.

개괄generalization

본 개시내용의 다양한 실시예들은 일반적으로 그룹 기반 통신 플랫폼에서의 외부에서 공유되는 통신 채널들의 생성에 관한 것이다. 그룹 기반 통신 플랫폼은 복수의 클라이언트 디바이스들과 통신하도록, 그리고 복수의 데이터베이스들을 동작시키도록 구성된다. 클라이언트 디바이스들 각각은 그룹 식별과 연관될 수 있는데, 이는 클라이언트 디바이스가 연관되는 그룹 또는 조직을 나타낼 수 있다. 예를 들어, 특정 조직은 그룹 기반 통신 플랫폼에 접속되는 복수의 클라이언트 디바이스들을 가질 수 있고, 그룹 기반 통신 플랫폼은 각각의 클라이언트 디바이스를 그 특정 조직과 연관되는 것으로 식별한다.Various embodiments of the present disclosure generally relate to the creation of externally shared communication channels in a group based communication platform. The group-based communication platform is configured to communicate with a plurality of client devices and to operate a plurality of databases. Each of the client devices may be associated with a group identification, which may indicate the group or organization with which the client device is associated. For example, a particular organization may have a plurality of client devices connected to a group-based communication platform, and the group-based communication platform identifies each client device as associated with that particular organization.

그룹 기반 통신 플랫폼은 또한 복수의 데이터베이스 샤드들을 포함하고, 각각의 데이터베이스 샤드는 복수의 그룹 식별과 관련된 데이터를 저장한다. 예를 들어, 데이터베이스 샤드는 특정 조직의 구성원들과 연관되는 전자 통신 데이터를 저장할 수 있는데, 이는 그 특정 조직의 구성원들이 동일한 조직의 다른 구성원들과 실시간으로 데이터를 통신 및 교환할 수 있게 한다. 이러한 예에서, 조직 자체는 데이터베이스 샤드의 소유자이고, 관련된 데이터가 어디에 그리고 어떻게 저장되는지에 대해 제어한다. 이는, 데이터 보유, 언펄링(unfurling), 및 통합 설정들과 같은 많은 기술적 태스크들을 단순화시킨다The group-based communication platform also includes a plurality of database shards, each database shard storing data related to a plurality of group identities. For example, a database shard may store electronic communication data associated with members of a particular organization, enabling members of that particular organization to communicate and exchange data with other members of the same organization in real time. In this example, the organization itself is the owner of the database shards and has control over where and how related data is stored. This simplifies many technical tasks such as data retention, unfurling, and integration settings.

그러나, 기존 시스템들 및 접근법들은 그들이 상이한 조직들 사이에서의 데이터 교환 및 통신에 대한 지원을 제공하지 않음에 따라 많은 기술적 제약들 및 제한사항들에 의해 어려움을 겪는데, 이는 각각의 데이터베이스가 단일 조직에 의해서만 소유될 수 있기 때문이다. 예를 들어, 조직 X의 사용자 토니(Tony)가 조직 Y의 다른 사용자 프랭크(Frank)와 (조직 X의 데이터베이스 샤드에 저장된) 데이터를 공유하고자 의도할 때, 토니는 다른 통신 수단을 통해 상기 데이터를 교환해야 할 것인데, 이는 통신 지연들 및 비효율성들을 야기할 수 있다. 데이터가 사실상 분초를 다투고 동적일 수 있기 때문에, 기존 시스템들의 기술적 제한사항들은 데이터 무결성을 손상시키고 네트워크 리소스들을 대폭 감소시킬 수 있다.However, existing systems and approaches suffer from many technical constraints and limitations as they do not provide support for data exchange and communication between different organizations, since each database is a single organization. because it can only be owned by For example, when user Tony from organization X intends to share data (stored in organization X's database shard) with another user Frank from organization Y, Tony can send the data through other means of communication. would have to be exchanged, which can cause communication delays and inefficiencies. Because data can be time-sensitive and dynamic in nature, the technical limitations of existing systems can compromise data integrity and drastically reduce network resources.

게다가, 기존 시스템들은 외부에서 공유되는 통신 채널들에서 사용자 아이덴티티들을 관리하도록 구성되지 않는다. 예를 들어, 토니는 조직 X 및 조직 Z 둘 모두의 구성원일 수 있다. 토니는 조직 X에서의 통신 채널들과 연관되는 아이덴티티("토니-X"), 및 조직 Z에서의 통신 채널들과 연관되는 다른 아이덴티티("토니-Z")를 가질 수 있다. 조직 X 및 조직 Z를 접속시키는 외부에서 공유되는 통신 채널에서, 기존 시스템들은 “토니-X”와 “토니-Z”를 조화시킬 수 없으며, “토니-X”와 “토니-Z”가 두 명의 상이한 개인들이라고 잘못 결정할 수 있다. 기존 시스템들은 토니를 조직 X에서의 구성원으로서, 그러나 조직 Z에서의 게스트 또는 개인으로서 결정할 수 있는데, 이는 데이터 관리에서 충돌들을 생성할 수 있다.Moreover, existing systems are not configured to manage user identities in externally shared communication channels. For example, Tony could be a member of both Organization X and Organization Z. Tony may have an identity associated with communication channels in organization X ("Tony-X"), and another identity associated with communication channels in organization Z ("Tony-Z"). In an externally shared communication channel connecting Organization X and Organization Z, existing systems cannot reconcile “Tony-X” and “Tony-Z”, and “Tony-X” and “Tony-Z” are two They may erroneously determine that they are different individuals. Existing systems may determine Tony as a member in Organization X, but as a guest or individual in Organization Z, which may create conflicts in data management.

본 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 기존 시스템들에 의해 직면하는 과제들을 극복한다.Systems structured according to various embodiments of the present disclosure overcome challenges faced by existing systems.

위의 “토니 대 프랭크” 논의로부터 계속하면, 개시내용의 다양한 실시예들에 따라 구조화되는 그룹 기반 통신 플랫폼(예컨대, SLACK®에 의해 제공되는 클라우드 기반 그룹 협력 툴)에서의 토니는 외부에서 공유되는 통신 채널을 통해 프랑크와 실시간으로 데이터를 교환할 수 있다. 다시 말하면, 조직 X와 조직 Y의 구성원들은, 일부 경우들에 있어서는 그들이 동일한 조직에 속한 것처럼, 그리고 다른 경우들에 있어서는 그들이 상이한 조직들에 속한 것처럼, 외부에서 공유되는 통신 채널에서 콘텐츠를 보고 데이터를 공유할 수 있다(예컨대, 아래에서 기술되는 바와 같은 "일방적인 보기(one-sided viewing)"). 네트워크 애플리케이션들 및 다른 소프트웨어 통합들은 외부에서 공유되는 통신 채널에서 계속해서 작동하고, 각각의 조직은 그의 각자의 채널 경험에 적용되는 그 자신의 선호도들을 유지한다.Continuing from the “Tony vs. Frank” discussion above, Tony in a group-based communication platform (eg, a cloud-based group collaboration tool provided by SLACK®) structured according to various embodiments of the disclosure is an externally shared It is possible to exchange data with Frank in real time through the communication channel. In other words, members of Organization X and Organization Y view content and transmit data in an externally shared communication channel, in some cases as if they belong to the same organization, and in other cases as if they belong to different organizations. sharing (eg, “one-sided viewing” as described below). Network applications and other software integrations continue to operate on an externally shared communication channel, and each organization maintains its own preferences that apply to its respective channel experience.

위의 “토니-X/토니-Z” 논의로부터 계속하면, 개시내용의 다양한 실시예들에 따라 구조화되는 그룹 기반 통신 플랫폼에서, 토니는 토니를 조직 X 및 조직 Y 둘 모두의 구성원으로서 인식하는 통합형 아이덴티티를 할당받는다. 다시 말하면, SLACK®에 의해 제공되는 클라우드 기반 그룹 협력 툴이 별개의 팀들의 구성원들로서 개인들을 식별할 수 있는 아이덴티티들의 결합을 생성할 수 있다.Continuing from the “Tony-X/Tony-Z” discussion above, in a group-based communication platform structured according to various embodiments of the disclosure, Tony recognizes Tony as a member of both Organization X and Organization Y. assigned an identity. In other words, the cloud-based group collaboration tool provided by SLACK® can create a combination of identities that can identify individuals as members of distinct teams.

사용자 경험 관점으로부터, 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 조직적 생산성 및 효율성을 크게 증진한다. 그들은 또한 (전자 메일과 같은) 다른 형태들의 통신에 대한 필요성을 감소시키며, 팀들 사이의 채널 접속해제들을 제거하면서 상이한 조직들 사이에 더 양호한 협력을 제공한다. 게다가, 그들은 비대칭적 및 커스텀화가능 프라이버시 설정들을 제공하도록 구성되는데, 여기서 2개의 팀들 사이의 외부에서 공유되는 통신 채널은 하나의 팀에 대한 하나의 프라이버시 구성 및 다른 팀에 대한 상이한 구성을 가질 수 있다. 또한, 외부에서 공유되는 통신 채널들은 상이한 조직들 또는 상이한 그룹들로부터 사용자 보유율들을 증가시키는 크로스-네트워크 효과들을 생성할 수 있다.From a user experience perspective, systems structured according to various embodiments of the disclosure greatly enhance organizational productivity and efficiency. They also reduce the need for other forms of communication (such as e-mail) and provide better collaboration between different organizations while eliminating channel disconnects between teams. Moreover, they are configured to provide asymmetric and customizable privacy settings, where an externally shared communication channel between two teams can have one privacy configuration for one team and a different configuration for the other team. . Additionally, externally shared communication channels can create cross-network effects that increase user retention rates from different organizations or different groups.

개발자의 관점으로부터, 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 보유 설정들의 유연성을 제공하면서 데이터의 (예컨대, 공유되는 통신 채널 속성들, 보기 특권 설정들, 또는 둘 모두에 기초한) 적절한 가시성 및 검색에 대한 지원을 제공한다. 그들은 또한 채널들에 기초하여 팀들뿐 아니라 채널들의 선택적 접속을 가능하게 한다.From a developer's point of view, systems structured according to various embodiments of the disclosure provide flexibility in retention settings while providing appropriate visibility (e.g., based on shared communication channel attributes, viewing privilege settings, or both) of data. and provides support for searches. They also enable selective access of channels as well as teams on a channel-by-channel basis.

일부 실시예들에서, 그룹 기반 통신 플랫폼은 공유되는 통신 채널 속성들(예컨대, 명칭, 목적, 주제), 공유되는 통신 채널 제어부들(예컨대, 액세스 제어부들, 보기 특권 설정들), 및 외부에서 공유되는 통신 채널의 각각의 측부 상에서 상이하도록 구성가능한 공유되는 통신 채널 인터페이스들로 “일방적인 보기”를 제공할 수 있다. 예를 들어, 외부에서 공유되는 통신 채널의 각각의 측부 상의 공유되는 통신 채널 속성들, 제어부들, 및 인터페이스들은 사용자, 관리자, 또는 시스템에 의해 (예컨대, 자동으로 그리고 사용자 상호작용 없이) 구성가능할 수 있다. 예를 들어, 시스템이 외부에서 공유되는 통신 채널에 대한 샤딩을 유지하더라도, 외부에서 공유되는 통신 채널의 속성들, 제어부들, 및 인터페이스들은, 외부에서 공유되는 통신 채널이 공개적일 필요가 있는 제1 조직(예컨대, 외부에서 공유되는 통신 채널 내외로 유동하는 많은 사람들을 갖는 에이전시)이 외부에서 공유되는 통신 채널을 외부에서 공유되는 통신 채널이 개인적일 필요가 있는 제2 조직(예컨대, 개인 문서를 생성하는 회사)과 공유할 수 있도록 각각의 측부 상에서 상이할 수 있다. 일부 경우들에 있어서, 아키텍처상으로 이러한 속성들 및 제어부들은 단일 테이블에 포함될 수 있지만, 조직 또는 팀에 따라 속성들로 분할될 수 있다. 그룹 기반 통신 플랫폼에 의해 제공되는 그러한 "일방적인 보기"는 메시지들, 첨부물들, 및 외부에서 공유되는 통신 채널을 통해 통신되는 콘텐츠가 제1 조직의 구성원들에 대해 "공개적"이 되도록, 그리고 제2 조직의 구성원들에 대해 "개인적"이 되도록 할 수 있게 한다. 예시적인 예에서, 시스템은, 상이한 워크플로우들을 갖는 조직들이 외부에서 공유되는 통신 채널에 대한 상이한 명칭들을 활용할 수 있도록 명칭 주위에 속성들에 걸쳐서 동등한 제어부를 제공할 수 있다. 예를 들어, 외부에서 공유되는 통신 채널은 각각의 조직의 구성원들에 의해 능동적으로 사용되고 있는 상이한 명칭을 가질 수 있다.In some embodiments, the group-based communication platform provides shared communication channel attributes (eg, name, purpose, subject), shared communication channel controls (eg, access controls, viewing privilege settings), and externally shared It can provide a “one-way view” with shared communication channel interfaces that are configurable to be different on each side of the communication channel being used. For example, shared communication channel attributes, controls, and interfaces on each side of an externally shared communication channel may be configurable (eg, automatically and without user interaction) by a user, administrator, or system. there is. For example, even if the system maintains sharding for an externally shared communication channel, the attributes, controls, and interfaces of the externally shared communication channel are determined in the first instance that the externally shared communication channel needs to be public. An organization (e.g., an agency with many people flowing in and out of an externally shared communication channel) creates an externally shared communication channel with a second organization that needs to be private (e.g., creates a personal document). It can be different on each side so that it can be shared with the company). In some cases, architecturally these attributes and controls may be contained in a single table, but may be partitioned into attributes by organization or team. Such "one-way view" provided by a group-based communication platform allows messages, attachments, and content communicated over an externally shared communication channel to be "public" to members of a first organization, and 2 Allows the organization to be “personal” to its members. In an illustrative example, the system can provide equal control over attributes around a name so that organizations with different workflows can utilize different names for an externally shared communication channel. For example, communication channels that are shared externally may have different names that are actively being used by members of each organization.

하나의 예시적인 예에서, 외부에서 공유되는 통신 채널의 조직 X 단부는 외부에서 공유되는 통신 채널의 조직 Y 측부와는 상이한 인터페이스 및 상이한 속성들 및 제어부들을 가질 수 있다. 다른 예시적인 예에서, 그룹 기반 통신 플랫폼은 조직 X의 구성원이 외부에서 공유되는 통신 채널을 통해 공개적 메시지를 조직 X 및 조직 Y 둘 모두의 구성원들에게 (예컨대, 메시지 서버에 의해 실시간으로) 브로드캐스트하도록 하는 것을 제공한다. 그룹 기반 통신 플랫폼은 조직 Y의 구성원이 외부에서 공유되는 통신 채널을 통해 개인적 메시지를 조직 Y의 구성원들에게 송신하지만 조직 X의 구성원들에게는 송신하지 않도록 하는 것을 추가로 제공한다. 그룹 기반 통신 플랫폼은 (예컨대, 네트워크 애플리케이션 서버에 의해) 메인 데이터베이스에 공개적 메시지 및 개인적 메시지를 저장할 것을, 그리고 조직 X 또는 조직 Y 중 어느 하나의 것의 구성원들이 공개적 메시지를 탐색하고 그에 액세스할 수 있게 하면서 (예컨대, 네트워크 애플리케이션 서버에 의해) 조직 Y의 구성원들만이 개인적 메시지를 탐색하고 그에 액세스할 수 있게 하도록 하는 것을 추가로 제공한다. 예를 들어, 그룹 기반 통신 플랫폼은: 조직 X 또는 조직 Y의 구성원들에 의해 송신된 공개적 메시지를 조직 X의 구성원들 및 조직 Y의 구성원들에게 액세스가능한 공유되는 인덱스로 인덱싱할 수 있고; 조직 X의 구성원에 의해 송신된 개인적 메시지를 조직 X의 구성원들에게는 액세스가능하지만 조직 Y의 구성원들에게는 액세스가능하지 않은 제1 별개의 인덱스로 인덱싱할 수 있고; 조직 Y의 구성원에 의해 송신된 개인적 메시지를 조직 Y의 구성원들에게는 액세스가능하지만 조직 X의 구성원들에게는 액세스가능하지 않은 제2 별개의 인덱스로 인덱싱할 수 있다.In one illustrative example, the organization X end of the externally shared communication channel may have a different interface and different properties and controls than the organization Y side of the externally shared communication channel. In another illustrative example, the group-based communication platform broadcasts (eg, in real time by a message server) a public message to members of both organizations X and Y over an externally shared communication channel by a member of organization X. provide what to do The group-based communication platform further provides for members of organization Y to send private messages to members of organization Y but not to members of organization X over an externally shared communication channel. A group-based communication platform stores public and private messages in a main database (e.g., by a network application server), and allows members of either organization X or organization Y to search for and access public messages, while It further provides that only members of organization Y (eg, by the network application server) can browse and access private messages. For example, a group-based communication platform may: index public messages sent by members of organization X or organization Y into a shared index accessible to members of organization X and members of organization Y; index private messages sent by members of organization X with a first distinct index that is accessible to members of organization X but not accessible to members of organization Y; Private messages sent by members of organization Y may be indexed with a second distinct index that is accessible to members of organization Y but not accessible to members of organization X.

일부 실시예들에서, 그룹 기반 통신 플랫폼은 단일 테이블에서 아키텍처 상으로 외부에서 공유되는 통신 채널의 속성들 및 제어부들을 저장할 수 있지만, 저장된 속성들 및 제어부들을 조직에 따라 속성들 및 제어부들로 분할할 수 있다. 예를 들어, 그룹 기반 통신 플랫폼은 속성으로서 채널의 프라이버시 또는 공공성을 데이터베이스에 저장된 연관성 테이블의 채널 로우(row)에 저장할 수 있다. 공유되는 통신 채널들에 대해, 그룹 기반 통신 플랫폼은 조직에 따라 별개의 연관성 테이블을 생성할 수 있다. 그룹 기반 통신 플랫폼은 공유되는 통신 채널에 대한 모든 정적 정보(예컨대, 사용자에 의해 변경 또는 구성될 수 없는 사실들), 예컨대 공유되는 통신 채널이 언제 생성되었는가, 공유되는 통신 채널이 마지막으로 언제 업데이트되었는가, 공유되는 통신 채널을 누가 만들었는가 등을 채널 로우에 저장할 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 조직에 따라(예컨대, 공유되는 통신 채널 내에 있는 2개 이상의 조직들 각각에 따라) 구성가능한 속성들 및 제어부들을 포함하는 공유되는 통신 채널에 대한 별개의 연관성 테이블을 생성할 수 있다. 예를 들어, 그룹 기반 통신 플랫폼은 클라이언트들에 이르기까지 직렬화되는, 그러한 속성들 및 제어부들을 나타내는 데이터를 포함하는 2개 이상의 로우들(예컨대, 공유되는 통신 채널에서 2개 이상의 조직들 각각에 대한 하나의 로우)을 갖는 연관성 테이블을 생성할 수 있다. 그룹 기반 통신 플랫폼은 공유되는 통신 채널에서 각각의 조직에 대한 속성들 및 제어부들에 기초하여 공유되는 통신 채널에 대한 상이한 사용자 인터페이스들을 생성할 수 있다. 일부 경우들에 있어서, 공유되는 통신 채널에서 하나의 조직은 공유되는 통신 채널에서 다른 조직이 상이한 설정들, 속성들, 또는 제어부들을 갖는지의 여부를 모를 것이다.In some embodiments, the group-based communication platform may store the attributes and controls of the communication channel that are shared externally architecturally in a single table, but may partition the stored attributes and controls into attributes and controls according to the organization. can For example, a group-based communication platform may store privacy or publicity of a channel as an attribute in a channel row of a relation table stored in a database. For shared communication channels, the group-based communication platform may create a separate association table according to the organization. The group-based communication platform provides all static information about the shared communication channel (eg facts that cannot be changed or configured by the user), such as when the shared communication channel was created, when the shared communication channel was last updated , who created the shared communication channel, etc. can be stored in the channel row. In some embodiments, the group-based communication platform provides a distinct association to the shared communication channel that includes properties and controls configurable on a per-organizational basis (eg, per each of two or more organizations within the shared communication channel). table can be created. For example, a group-based communication platform may have two or more rows (e.g., one for each of two or more organizations in a shared communication channel) containing data representing those attributes and controls that are serialized down to the clients. It is possible to create an association table having a row of). The group-based communication platform can create different user interfaces for the shared communication channel based on attributes and controls for each organization in the shared communication channel. In some cases, one organization in the shared communication channel will not know whether another organization has different settings, properties, or controls in the shared communication channel.

일부 실시예들에서, 위에서 논의된 “토니 대 프랭크” 논의로부터 계속하면, 외부에서 공유되는 통신 채널의 조직 X 단부는 외부에서 공유되는 통신 채널의 조직 Y 측부와는 상이한 인터페이스 및 상이한 속성들 및 제어부들을 가질 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 조직 X의 구성원(예컨대, 토니)이 외부에서 공유되는 통신 채널을 통해 공개적 메시지를 조직 X 및 조직 Y 둘 모두의 구성원들에게 (예컨대, 메시지 서버에 의해 실시간으로) 브로드캐스트하도록 하는 것을 제공한다. 그룹 기반 통신 플랫폼은 조직 Y의 구성원(예컨대, 프랭크)이 외부에서 공유되는 통신 채널을 통해 개인적 메시지를 조직 Y의 구성원들에게 송신하지만 조직 X의 구성원들에게는 송신하지 않도록 하는 것을 추가로 제공한다. 그룹 기반 통신 플랫폼은 (예컨대, 네트워크 애플리케이션 서버에 의해) 메인 데이터베이스에 공개적 메시지 및 개인적 메시지를 저장할 것을, 그리고 조직 X 또는 조직 Y 중 어느 하나의 것의 구성원들이 공개적 메시지를 탐색하고 그에 액세스할 수 있게 하면서 (예컨대, 네트워크 애플리케이션 서버에 의해) 조직 Y의 구성원들만이 개인적 메시지를 탐색하고 그에 액세스할 수 있게 하도록 하는 것을 추가로 제공한다. 예를 들어, 그룹 기반 통신 플랫폼은 토니 및 프랭크가 공개적 메시지를 탐색하고 그에 액세스하는 것을 허용하지만 토니가 아닌 프랭크가 개인적 메시지를 탐색하고 그에 액세스하는 것을 허용할 수 있다.In some embodiments, continuing from the “Tony v. Frank” discussion discussed above, the organization X end of the externally shared communication channel has a different interface and different properties and controls than the organization Y side of the externally shared communication channel. can have In some embodiments, the group-based communication platform allows a member of organization X (eg, Tony) to send a public message to members of both organization X and organization Y over an externally shared communication channel (eg, by a message server). in real time). The group-based communication platform further provides for a member of organization Y (eg, Frank) to send private messages to members of organization Y but not to members of organization X over an externally shared communication channel. A group-based communication platform stores public and private messages in a main database (e.g., by a network application server), and allows members of either organization X or organization Y to search for and access public messages, while It further provides that only members of organization Y (eg, by the network application server) can browse and access private messages. For example, a group-based communication platform may allow Tony and Frank to browse and access public messages, but allow Frank, but not Tony, to browse and access private messages.

일부 실시예들에서, 조직 Y가 공유되는 통신 채널을 개인적이 되도록 구성한 경우, 그리고 프랭크가 공유되는 통신 채널의 주제를 변경하는 경우, 본 명세서에서 개시되는 실시간 메시징 서버(예컨대, 메시지 서버(107), 장치(200))는 공유되는 통신 채널에서의 메시지(예컨대, 개인적 일반 메시지)로서 그 변경을 조직 X로가 아닌 조직 Y로만 브로드캐스트하도록 구성될 수 있다. 또한, 본 명세서에서 개시되는 네트워크 애플리케이션 서버(예컨대, 네트워크 애플리케이션 서버(109), 장치(300))는 공유되는 통신 채널에서의 이력(예컨대, 개인적 저장 메시지)으로서 그 변화에 대한 탐색 액세스를 저장하고 조직 X로가 아닌 조직 Y로만 제공하도록 구성될 수 있다. 그 결과, 단 하나의 측부, 즉 조직 Y가 그 정보를 볼 수 있을 것이다.In some embodiments, when Organization Y configures the shared communication channel to be private, and Frank changes the subject of the shared communication channel, the real-time messaging server disclosed herein (e.g., message server 107) , device 200 may be configured to broadcast the change as a message on a shared communication channel (eg, a private general message) only to organization Y and not to organization X. In addition, the network application server (eg, network application server 109, device 300) disclosed herein stores search access to changes as a history (eg, privately stored messages) in a shared communication channel, and It may be configured to serve only to Organization Y, but not to Organization X. As a result, only one side, organization Y, will be able to see the information.

일부 실시예들에서, 그룹 기반 통신 플랫폼은 비일시적 "단시간(ephemeral)" 메시지들(예컨대, 올바른 그룹 식별과 연관된 클라이언트 디바이스들에 의해서만 보기가능하고 탐색가능한 개인적 일반 메시지들 및 개인적 저장 메시지들)을 제공한다. 그룹 기반 통신 플랫폼은 메시지 서버, 네트워크 애플리케이션 서버, 및 임의의 다른 적합한 컴포넌트들이 다음의 의식과 함께 데이터를 수신, 송신, 저장, 및 검색하도록 하기 위한 기법들을 제공한다: (i) 특정 구성원만이 볼 수 있는 메시지들(예컨대, 구성원이 에러를 초래하는 액션을 수행하는 경우, 그룹 기반 통신 플랫폼은 메시지를 그 구성원으로 직접, 그리고 그 구성원으로만 송신할 수 있음); (ii) 공유되는 통신 채널의 일 측부 상에만 존재하도록(예컨대, 송신되도록, 보이도록, 저장되도록, 탐색되도록, 검색되도록) 구성되는 단시간 메시지들; 및 (iii) 공유되는 통신 채널의 모든 구성원들로 브로드캐스트되는 메시지들.In some embodiments, the group-based communication platform provides non-transitory “ephemeral” messages (eg, personal general messages and personally stored messages viewable and navigable only by client devices associated with a correct group identification). to provide. A group-based communication platform provides mechanisms for enabling message servers, network application servers, and any other suitable components to receive, transmit, store, and retrieve data with the following rites: (i) visible only to specific members; messages that can be sent (e.g., if a member performs an action that results in an error, the group-based communication platform can send a message directly to that member and only to that member); (ii) short-lived messages that are configured to be present (eg, to be transmitted, to be seen, to be stored, to be searched for, to be retrieved) only on one side of a shared communication channel; and (iii) messages broadcast to all members of the shared communication channel.

일부 실시예들에서, 그룹 기반 통신 플랫폼은 저장소(예컨대, 네트워크 애플리케이션 서버)가 공유되는 통신 채널의 일 측부에 대해, 다른 측부에 대해, 또는 양측 측부들 모두에 대해 메시지들을 검색할지의 여부를 결정하도록 하기 위해 메시지들에 주석달기함으로써 전술된 비일시적 "단시간" 메시지들을 생성하는 것을 제공한다. 그룹 기반 통신 플랫폼은 메시지 서버에 의해 주석들을 전자적으로(그리고 사용자 입력 없이) 분석하는 것, 그리고 주석들에 기초하여, 메시지들을 공유되는 통신 채널의 일 측부로 브로드캐스트할지, 다른 측부로 브로드캐스트할지, 또는 양측 측부들 모두로 브로드캐스트할지를 결정하는 것을 제공한다. 따라서, 그룹 기반 통신 플랫폼은 메시지들의 (예컨대, 실시간 메시징 서버에 의한) 실시간 보기뿐 아니라 메시지들의 (예컨대, 네트워크 애플리케이션 서버에 의한) 이력 및 탐색 기반 보기를 제공한다. 예를 들어, 공유되는 통신 채널의 일 측부의 구성원은, 실시간 메시징 서버로부터 실시간으로, 공유되는 통신 채널의 그 측부 상에서만 보기가능한 단시간 메시지를 수신할 수 있다. 후속으로, 구성원은 구성원의 사용자 인터페이스를 리프레시할 수 있다. 이어서, 구성원은 네트워크 애플리케이션 서버로부터 단시간 메시지를 수신할 수 있다(예컨대, 단시간은 지금 실시간 메시징 서버로부터가 아니라 네트워크 애플리케이션 서버를 통해 메인 데이터베이스로부터 오고 있다).In some embodiments, the group-based communication platform determines whether to retrieve messages on one side, on the other side, or on both sides of a communication channel for which storage (eg, a network application server) is shared. Annotating the messages to allow the creation of the aforementioned non-transitory "short-lived" messages is provided. A group-based communication platform analyzes annotations electronically (and without user input) by a message server and, based on the annotations, decides whether to broadcast messages to one side or the other side of a shared communication channel. , or to determine whether to broadcast to both sides. Accordingly, the group-based communication platform provides a real-time view of messages (eg, by a real-time messaging server) as well as a historical and search-based view (eg, by a network application server) of messages. For example, a member of one side of a shared communication channel may receive short-lived messages viewable only on that side of the shared communication channel in real time from a real-time messaging server. Subsequently, the member can refresh the member's user interface. The member may then receive a short time message from the network application server (eg, the short time is now coming from the main database via the network application server and not from the real time messaging server).

일부 실시예들에서, 그룹 기반 통신 플랫폼은 데이터베이스 샤드들을 포함하는 샤딩 데이터베이스를 제공한다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 팀에 대해 샤딩할 수 있다. 예를 들어, 그룹 기반 통신 플랫폼은: 제1 데이터베이스 샤드에 하나의 조직의 데이터를; 제2 데이터베이스 샤드에 다른 조직의 데이터를; 그리고 제3 데이터베이스 샤드에 공유되는 통신 채널을 저장할 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 허용 홉핑 기법을 이용하여 액세스 제어부를 제공할 수 있다.In some embodiments, the group-based communication platform provides a sharded database comprising database shards. In some embodiments, a group-based communication platform may shard over teams. For example, a group-based communication platform may: send one organization's data to a first database shard; other organizations' data in the second database shard; In addition, a shared communication channel may be stored in the third database shard. In some embodiments, the group-based communication platform may provide access control using a permissive hopping technique.

일부 실시예들에서, 그룹 기반 통신 플랫폼은 채널에 대해 샤딩할 수 있다. 예를 들어, 액세스 제어부는 어느 조직들이 다수의 상이한 조직들과 연관된 다수의 상이한 채널들을 포함하는 샤드 내의 특정 채널에 액세스할 수 있는지에 맞춰질 수 있다. 하나의 예시적인 예에서, 채널들 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에 의해서만 액세스가능하다.In some embodiments, a group-based communication platform may shard over a channel. For example, the access control may be tailored to which organizations have access to a particular channel within a shard containing multiple different channels associated with multiple different organizations. In one illustrative example, a shard containing channels A, B, C, D, E, and F may be shared by organizations X, Y, and Z. Channels A and B within a shard may be associated with organization X, where channel A is accessible only by organization X and channel B is accessible by organizations X, Y, and Z. Channel C within the shard may be associated with organization Y and may be accessible by organizations Y and Z. Channels D, E, and F within a shard may be associated with organization Z, where channel D is accessible only by organization Z, channel E is accessible only by organizations Z and X, and channel F is accessible only by organizations Z and X. Accessible only by Z and Y.

이와 같이, 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 기존 시스템들에 의해 직면되는 기술적 문제들에 대한 특정적인 기술적 솔루션들을 제공하는데, 이들의 세부사항들이 이하에서 기술된다.As such, systems structured according to various embodiments of the disclosure provide specific technical solutions to technical problems faced by existing systems, the details of which are described below.

정의들definitions

본 명세서에서 사용되는 바와 같이, 용어들 "데이터", "콘텐츠", "정보", 및 유사 용어들이 본 개시내용의 실시예들에 따라 송신, 수신, 및/또는 저장될 수 있는 데이터를 상호교환가능하게 지칭하는 데 사용될 수 있다. 따라서, 임의의 그러한 용어들의 사용은 본 개시내용의 실시예들의 사상 및 범주를 제한하는 것으로 취해져서는 안 된다. 또한, 본 명세서에서 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스로부터 데이터를 수신하는 것으로 기술되는 경우, 데이터는 다른 컴퓨팅 디바이스로부터 직접적으로 수신될 수 있거나, 예를 들어 하나 이상의 서버, 릴레이, 라우터, 네트워크 액세스 포인트, 기지국, 호스트 등과 같은 하나 이상의 중간 컴퓨팅 디바이스들을 통해 간접적으로 수신될 수 있음이 인식될 것이다. 유사하게, 본 명세서에서 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스로 데이터를 전송하는 것으로 기술되는 경우, 데이터는 다른 컴퓨팅 디바이스로 직접적으로 전송될 수 있거나, 예를 들어 하나 이상의 서버, 릴레이, 라우터, 네트워크 액세스 포인트, 기지국, 호스트 등과 같은 하나 이상의 중간 컴퓨팅 디바이스들을 통해 간접적으로 전송될 수 있음이 인식될 것이다. As used herein, the terms "data", "content", "information", and similar terms are used interchangeably to refer to data that may be transmitted, received, and/or stored according to embodiments of the present disclosure. It can be used to refer to possible. Accordingly, use of any such terms should not be taken to limit the spirit and scope of the embodiments of this disclosure. Also, where a computing device is described herein as receiving data from another computing device, the data may be received directly from the other computing device, or, for example, one or more servers, relays, routers, network access points, base stations. It will be appreciated that may be received indirectly through one or more intermediary computing devices, such as a host, etc. Similarly, where a computing device is described herein as transmitting data to another computing device, the data may be directly transmitted to the other computing device, or may be transmitted, for example, to one or more servers, relays, routers, network access points, It will be appreciated that it may be transmitted indirectly through one or more intermediate computing devices such as a base station, host, or the like.

용어 "사용자"는 개인, 개인들의 그룹, 사업, 조직 등을 지칭하는 것으로 이해되어야 한다. 사용자들은 클라이언트 디바이스들을 사용하여 그룹 기반 통신 또는 메시징 시스템에 액세스할 수 있다. “그룹 기반”은, 본 명세서에서, 사용자들의 정의된 그룹에 의해서만 액세스가능하도록 충분한 보안성을 갖는 시스템, 채널, 메시지, 또는 가상 환경을 지칭하는 데 사용된다. 그룹은 조직 또는 영리 기업의 것들과 같은 공통 액세스 크리덴셜들에 의해 정의될 수 있다. 액세스는 하나의 그룹 구성원 사용자에 의해 다른 비-구성원 사용자로 송신되는, 합류하라는 입증된 요청 또는 합류하라는 초대에 의해 추가로 가능해질 수 있다. 그룹 식별자들(아래에서 정의됨)은 데이터, 정보, 메시지들 등을 특정 그룹들과 연관시키는 데 사용된다.The term "user" should be understood to refer to an individual, group of individuals, business, organization, or the like. Users may use client devices to access a group based communication or messaging system. “Group-based” is used herein to refer to a system, channel, message, or virtual environment that has sufficient security to be accessible only by a defined group of users. A group may be defined by common access credentials, such as those of an organization or commercial enterprise. Access may further be enabled by a verified request to join or an invitation to join sent by one group member user to another non-member user. Group identifiers (defined below) are used to associate data, information, messages, etc. with specific groups.

용어들 "사용자 프로파일", "사용자 계정", 및 "사용자 계정 세부사항들"은, 예를 들어, 사용자 식별자, 사용자가 액세스를 승인받았던 그룹 기반 통신 채널들과 연관된 하나 이상의 그룹 기반 통신 채널 식별자들, 사용자가 연관되는 그룹들에 대한 하나 이상의 그룹 식별자들, 사용자가 임의의 그룹 기반 통신 채널들의 소유자인지의 여부에 대한 표시, 사용자가 임의의 그룹 기반 통신 채널 제한들을 갖는지의 여부에 대한 표시, 복수의 메시지들, 복수의 이모지들, 복수의 대화들, 복수의 대화 주제들, 아바타, 이메일 어드레스, 실명(예컨대, John Doe), 사용자명(예컨대, jdoe), 패스워드, 실명, 시간 구역, 상태 등을 지칭한다. 사용자 계정 세부사항들은, 예를 들어 사용자의 사용자명 및 패스워드를 포함하는 사용자에 대한 로그인 정보와 같은 사용자 크리덴셜들의 서브세트 지정을 포함할 수 있다.The terms "user profile", "user account", and "user account details" include, for example, a user identifier, one or more group-based communication channel identifiers associated with the group-based communication channels to which the user has been granted access. , one or more group identifiers for groups with which the user is associated, an indication of whether the user is the owner of any group-based communication channels, an indication of whether the user has any group-based communication channel restrictions, a plurality of messages, multiple emojis, multiple conversations, multiple conversation topics, avatar, email address, real name (eg John Doe), username (eg jdoe), password, real name, time zone, status, etc. refers to User account details may include, for example, specifying a subset of user credentials, such as login information for the user including the user's username and password.

용어 "클라이언트 디바이스"는 하나 이상의 서버들에 의해 가용해지는 하나 이상의 서비스들에 액세스하도록 구성되는 컴퓨터 하드웨어(들) 및/또는 소프트웨어(들)를 지칭한다. 서버(들)는 종종 다른 컴퓨터 시스템 상에 있고(그러나, 항상 그러한 것은 아님), 이 경우에 클라이언트 디바이스는 네트워크에 의해 서비스에 액세스한다. 클라이언트 디바이스는 그룹 식별과 연관될 수 있는데, 여기서 그룹 식별은 사용자가 속하는 그룹(예컨대, 사용자 그룹)을 제안하는 전자적 표시이다. 클라이언트 디바이스들은 스마트폰들, 태블릿 컴퓨터들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 웨어러블 디바이스들, 개인용 컴퓨터들, 기업 컴퓨터들 등을 제한 없이 포함할 수 있다.The term “client device” refers to computer hardware(s) and/or software(s) configured to access one or more services made available by one or more servers. The server(s) are often (but not always) on other computer systems, in which case client devices access the service by way of a network. A client device may be associated with a group identification, where the group identification is an electronic indication suggesting a group to which the user belongs (eg, a user group). Client devices may include, without limitation, smartphones, tablet computers, laptop computers, desktop computers, wearable devices, personal computers, business computers, and the like.

용어 “그룹 기반 통신 플랫폼”은, 하나 이상의 클라이언트 디바이스들에 액세스가능하고 데이터베이스들의 동작들과 관련된 복수의 소프트웨어 애플리케이션들에 대한 액세스를 제공하도록 동작가능한 컴퓨팅 디바이스들의 집합을 지칭한다. 일부 예들에서, 그룹 기반 통신 플랫폼은, 소프트웨어 애플리케이션들을 구동하는 하나 이상의 서버들과 통신하여 배치되고 디지털 콘텐츠 아이템들, 애플리케이션 관련 데이터 등을 저장하는 하나 이상의 데이터베이스들에 대한 액세스를 갖는 하나 이상의 중앙집중식 서버들을 형태를 취할 수 있다. 그룹 기반 통신 플랫폼은 또한 클라이언트 보유 설정들 및 다른 컴플라이언스 태양들을 지원할 수 있다. 또한, 그룹 기반 통신 플랫폼은 데이터에 대한 (예컨대, 공유되는 통신 채널 속성들, 보기 특권 설정들, 또는 둘 모두에 기초하여) 적절한 액세스를 승인하고 제3자들이 애플리케이션들 및 봇(bot)들을 구축하여 고객의 워크플로우들과 통합할 수 있게 하는 포괄적인 제3자 개발자 지원을 제공할 수 있다. The term “group-based communication platform” refers to a collection of computing devices accessible to one or more client devices and operable to provide access to a plurality of software applications related to the operations of databases. In some examples, the group-based communication platform may include one or more centralized servers having access to one or more databases that store digital content items, application-related data, etc., arranged in communication with one or more servers running software applications. can take the form of A group-based communication platform may also support client retention settings and other compliance aspects. Additionally, the group-based communication platform grants appropriate access to data (e.g., based on shared communication channel attributes, viewing privilege settings, or both) and enables third parties to build applications and bots. and provide comprehensive third-party developer support to enable integration with customers' workflows.

용어 “통신 채널”은 시스템들과 시스템들의 부분들 사이의 그리고 그들 간의 데이터 교환을 위해 사용되는 정보 루트 및 연관된 회로를 지칭한다. 예를 들어, 통신 채널은 다양한 클라이언트 디바이스들 사이에 그리고 그들 간에 확립되어, 이러한 클라이언트 디바이스들이 서로의 사이에 그리고 그들 간에 데이터를 통신 및 공유할 수 있게 할 수 있다. 통신 채널 식별이 통신 채널에 할당될 수 있는데, 이는 그 통신 채널의 관련 데이터가 저장되는 데이터베이스 내의 물리적 어드레스를 나타낸다. 통신 채널은 "공개적"일 수 있는데, 이는 임의의 클라이언트 디바이스가 통신 채널을 통해 공유하는 정보에 합류 및 참여할 수 있게 할 수 있다. 통신 채널은 "개인적"일 수 있는데, 이는 통신 채널에서의 데이터 통신을 소정 클라이언트 디바이스들 및/또는 사용자들로 제한할 수 있다. The term "communication channel" refers to an information route and associated circuitry used for data exchange between and between systems and parts of systems. For example, a communication channel can be established between and between various client devices, enabling these client devices to communicate and share data with each other and between them. A communication channel identification may be assigned to a communication channel, which indicates a physical address in a database where data related to that communication channel is stored. A communication channel can be “public,” which allows any client device to join and participate in the information it shares over the communication channel. A communication channel may be “private,” which may limit data communication on the communication channel to certain client devices and/or users.

용어 "그룹 기반 통신 채널 인터페이스"는 그룹의 구성원들에게만 보일 수 있는 채널 구성원들(예컨대, 클라이언트 디바이스들을 사용하여 환경에 액세스하는 입증된 사용자들)에 의해 포스트되는 메시징 통신을 디스플레이하도록 구성되는 가상 통신 환경 또는 피드를 지칭한다. 그룹 기반 통신 채널의 포맷 및 속성들은 그룹 기반 통신 채널의 상이한 구성원들에게 상이하게 나타날 수 있지만; 그룹 기반 통신 채널(즉, 메시징 통신)의 콘텐츠는 그룹 기반 통신 채널의 각각의 구성원에게 디스플레이될 수 있다. 예를 들어, 본 명세서에서 논의된 바와 같은 공개적 보기를 허용하기 위해, 그룹 기반 메시징 통신의 공통 세트가 각자의 그룹 기반 통신 채널의 각각의 구성원에게 디스플레이될 것이고, 따라서, 그룹 기반 통신 채널(즉, 메시징 통신)의 콘텐츠가 그룹 기반 통신 채널의 구성원에 따라 변화하지 않을 것이다. 일부 경우들에 있어서, 본 명세서에서 논의된 바와 같은 일방적 보기를 허용하기 위해, 그룹 기반 메시징 통신의 별개의 세트가 그룹 기반 통신 채널에서 하나의 조직의 각각의 구성원에게 디스플레이될 것이지만, 그룹 기반 통신 채널에서 임의의 다른 조직의 어떠한 구성원에게도 디스플레이되지 않을 것이다.The term "group-based communication channel interface" refers to a virtual communication configured to display messaging communications posted by channel members (eg, authenticated users accessing the environment using client devices) that are visible only to members of the group. Refers to the environment or feed. The format and properties of the group-based communication channel may appear differently to different members of the group-based communication channel; Content of a group-based communication channel (ie, messaging communication) may be displayed to each member of the group-based communication channel. For example, to allow for public viewing as discussed herein, a common set of group-based messaging communications will be displayed to each member of their respective group-based communication channel, and thus the group-based communication channel (i.e., messaging communication) will not change depending on the membership of the group-based communication channel. In some cases, a separate set of group-based messaging communications will be displayed to each member of an organization in a group-based communication channel, to allow one-way viewing as discussed herein, but in a group-based communication channel. will not be displayed to any member of any other organization in

본 명세서에서 사용되는 바와 같이, 용어들 "메시징 통신" 및 "메시지"는, 클라이언트 디바이스를 사용하여 사용자에 의해 제공되고 그룹 기반 통신 채널 내에서 디스플레이를 위해 구성되는 임의의 전자적으로 생성되는 디지털 콘텐츠 객체를 지칭한다. 메시지 통신은 (클라이언트 디바이스를 사용하여) 사용자에 의해 제공되는 임의의 텍스트, 이미지, 비디오, 오디오, 또는 이들의 조합을 포함할 수 있다. 예를 들어, 사용자는 메시지 콘텐츠들로서 메시징 통신 내에 텍스트뿐 아니라 이미지 및 비디오를 포함하는 메시징 통신을 제공할 수 있다. 그러한 경우에 있어서, 텍스트, 이미지, 및 비디오는 메시징 통신 또는 디지털 콘텐츠 객체를 포함할 것이다. 그룹 기반 통신 시스템의 그룹 기반 통신 채널로 전송 또는 포스트되는 각각의 메시지는 다음을 포함하는 메타데이터를 포함한다: 발신 사용자 식별자, 메시지 식별자, 메시지 콘텐츠들, 그룹 식별자, 및 그룹 기반 통신 채널 식별자. 전술한 식별자들 각각은 ASCII 텍스트, 포인터, 메모리 어드레스 등을 포함할 수 있다.As used herein, the terms “messaging communication” and “message” refer to any electronically generated digital content object provided by a user using a client device and configured for display within a group based communication channel. refers to The message communication may include any text, image, video, audio, or combination thereof provided by the user (using the client device). For example, a user may provide a messaging communication that includes images and video as well as text within the messaging communication as message contents. In such cases, text, images, and video will include messaging communications or digital content objects. Each message sent or posted to a group-based communication channel of a group-based communication system includes metadata including: originating user identifier, message identifier, message contents, group identifier, and group-based communication channel identifier. Each of the aforementioned identifiers may include ASCII text, pointers, memory addresses, and the like.

용어 "일반 메시지"는 일방적 보기 또는 공개적 보기를 위해 공유되는 통신 채널을 통해 메시지 증폭 회로에 의해 증폭되도록 구성된 메시지를 지칭한다. 예를 들어, 제1 그룹 식별을 위한 개인적 보기 특권 설정과 연관된 일반 메시지는 제1 그룹 식별과 연관되는 공유되는 통신 채널에서의 모든 클라이언트 디바이스들로 메시지 증폭기 회로에 의해 증폭되며, 여기서 일반 메시지는 제1 그룹 식별과는 상이한 제2 그룹 식별과 연관되는 공유되는 통신 채널들에서의 임의의 클라이언트 디바이스로 메시지 증폭기 회로에 의해 송신되지 않는다. 다른 예에서, 공개적 보기 특권 설정과 연관된 일반 메시지는 공유되는 증폭 채널에서의 모든 클라이언트 디바이스들로 메시지 증폭기 회로에 의해 증폭될 수 있다.The term “general message” refers to a message configured to be amplified by message amplification circuitry over a shared communication channel for either one-way viewing or public viewing. For example, a general message associated with setting personal viewing privileges for a first group identification is amplified by a message amplifier circuit to all client devices in a shared communication channel associated with the first group identification, where the general message is is not transmitted by the message amplifier circuitry to any client device on shared communication channels associated with a second group identification different from the first group identification. In another example, a generic message associated with setting public viewing privileges may be amplified by the message amplifier circuitry to all client devices in a shared amplification channel.

용어 “저장 메시지”는 데이터베이스 샤드에 저장된 메시지를 지칭한다. 예를 들어, 저장 메시지는 메시지 식별자, 그룹 식별자, 그룹 기반 통신 채널 식별자, 발신 사용자 식별자, 주제들, 응답들, 메시지 콘텐츠들, 첨부물들, 메시지 계층 데이터, 제3자 메타데이터, 대화 프리미티브 데이터, 특권 보기 설정들, 임의의 다른 적합한 데이터, 또는 이들의 임의의 조합과 같은 데이터를 포함할 수 있다. 일부 실시예들에서, 저장 메시지는 보기 특권 설정들의 세트와 연관하여 데이터베이스 샤드에 저장될 수 있다.The term "stored message" refers to a message stored in a database shard. For example, the stored message may include message identifier, group identifier, group-based communication channel identifier, originating user identifier, subjects, responses, message contents, attachments, message layer data, third party metadata, conversation primitive data, data such as privileged view settings, any other suitable data, or any combination thereof. In some embodiments, a store message may be stored in a database shard in association with a set of viewing privilege settings.

용어 "별개의 인덱스"는 (예컨대, 다른 그룹들 및/또는 회사들과 공유되지 않는, 그룹 및/또는 회사와 연관된 별개의 인덱스로) 특정 그룹 식별과 연관된 클라이언트 디바이스들에 대해 개별적으로 인덱싱되고 그들에만 액세스가능한 개인적 메시지들의 인덱스를 지칭한다.The term “distinct index” refers to client devices associated with a particular group identification (e.g., with a distinct index associated with a group and/or company that is not shared with other groups and/or companies) individually indexed for their Indicates the index of private messages accessible only to .

용어 “공유된 인덱스”는 (예컨대, 다른 그룹들 및/또는 회사들과 공유되는, 그룹 및/또는 회사와 연관된 공유된 인덱스로) 함께 인덱싱되는 공개적 메시지들의 인덱스를 지칭한다.The term “shared index” refers to an index of public messages that are indexed together (eg, to a shared index associated with a group and/or company that is shared with other groups and/or companies).

용어들 “그룹 기반 통신 채널 식별자” 또는 “채널 식별자”는 그룹 기반 통신 채널이 식별될 수 있게 하는 데이터의 하나 이상의 아이템들을 지칭한다. 예를 들어, 그룹 기반 통신 채널 식별자는 ASCII 텍스트, 포인터, 메모리 어드레스 등을 포함할 수 있다.The terms “group-based communication channel identifier” or “channel identifier” refer to one or more items of data by which a group-based communication channel can be identified. For example, the group-based communication channel identifier may include ASCII text, pointers, memory addresses, and the like.

용어들 "그룹 식별자" 또는 "팀 식별자"는 그룹 기반 통신 시스템이 식별될 수 있게 하는 데이터의 하나 이상의 아이템들을 지칭한다. 예를 들어, 그룹 식별자는 ASCII 텍스트, 포인터, 메모리 어드레스 등을 포함할 수 있다.The terms “group identifier” or “team identifier” refer to one or more items of data by which a group-based communication system can be identified. For example, group identifiers may include ASCII text, pointers, memory addresses, and the like.

“발신 사용자 식별자”는 특정 사용자(즉, 특정 사용자와 연관된 클라이언트 디바이스)에 의해 전송되는 메시지들의 집합과 연관된다. 이러한 메시지들은 사용자에 관한 콘텍스트를 결정하기 위해 분석될 수 있다(예컨대, 주제에 대한 사용자의 전문지식 또는 관심은 그러한 메시지들 내에서 주제와 연관되는 주제 또는 키워드들의 언급 빈도에 기초하여 결정될 수 있다).A “originating user identifier” is associated with a set of messages transmitted by a particular user (ie, a client device associated with a particular user). These messages may be analyzed to determine context about the user (e.g., a user's expertise or interest in a subject may be determined based on the frequency of mention of topics or keywords associated with the subject within such messages). .

그룹 기반 통신 시스템 사용자들은 조직 그룹들로 조직되고(예컨대, 각각의 회사의 피고용자들은 별개의 조직 그룹일 수 있음), 각각의 조직 그룹은 사용자들이 할당받을 수 있거나 사용자들이 합류할 수 있는 하나 이상의 그룹 기반 통신 채널들(아래에서 설명됨)을 가질 수 있다(예컨대, 그룹 기반 통신 채널들은 부서들, 사무실과 같은 지리적 위치들, 제품 라인들, 사용자 관심들, 주제들, 이슈들 등을 표현할 수 있다). 그룹 식별자는 메시지에 대한 액세스 제어부를 용이하게 하는 데 사용될 수 있다(예컨대, 탐색 쿼리에 응답한 탐색 결과들의 일부로서 메시지 반환을 갖는 것과 같은, 메시지에 대한 액세스는 자신들의 사용자 프로파일과 연관된 그룹 식별자를 갖는 그러한 사용자들로 제한될 수 있다). 그룹 식별자는 메시지에 대한 콘텍스트를 결정하는 데 사용될 수 있다(예컨대, 조직의 명칭 및/또는 조직에 대한 간단한 설명과 같은, 그룹의 설명이 그룹 식별자와 연관될 수 있다).Group-based communication system users are organized into organizational groups (e.g., each company's employees may be a separate organizational group), each organizational group being assigned one or more groups to which users may be assigned or to which users may join. may have based communication channels (described below) (e.g., group based communication channels may represent departments, geographic locations such as offices, product lines, user interests, topics, issues, etc. ). Group identifiers can be used to facilitate access controls for messages (e.g., having a message return as part of a search result in response to a search query). Access to messages may use a group identifier associated with their user profile. may be limited to those users with The group identifier may be used to determine context for the message (eg, a description of the group, such as the name of the organization and/or a brief description of the organization, may be associated with the group identifier).

그룹 기반 통신 시스템 사용자들은 그룹 기반 통신 채널들에 합류할 수 있다. 일부 그룹 기반 통신 채널들은 그러한 사용자들의 사용자 프로파일과 연관된 조직적 그룹 식별자를 갖는 사용자들(즉, 조직의 구성원들인 사용자들)에게 전역적으로 액세스가능할 수 있다. 일부 그룹 기반 통신 채널들에 대한 액세스는 특정된 그룹들의 구성원들로 제한될 수 있고, 이에 의해, 그룹 기반 통신 채널들은 자신들의 사용자 프로파일과 연관된 특정 그룹 식별자를 갖는 그러한 사용자들에게 액세스가능하다. 그룹 기반 통신 식별자는 메시지에 대한 액세스 제어부를 용이하게 하는 데 사용될 수 있으며(예컨대, 탐색 쿼리에 응답한 탐색 결과들의 일부로서 메시지 반환을 갖는 것과 같은, 메시지에 대한 액세스는 자신들의 사용자 프로파일과 연관된 그룹 기반 통신 채널 식별자를 갖거나 그룹 기반 통신 채널에 합류할 능력을 갖는 그러한 사용자들로 제한될 수 있다) 그룹 기반 통신 채널 식별자는 메시지에 대한 콘텍스트를 결정하는 데 사용될 수 있다(예컨대, 그룹 기반 통신 채널에서 논의된 프로젝트의 설명과 같은 그룹 기반 통신 채널의 설명이 그룹 기반 통신 채널 식별자와 연관될 수 있다).Group-based communication system users can join group-based communication channels. Some group-based communication channels may be globally accessible to users who have an organizational group identifier associated with those users' user profiles (ie, users who are members of an organization). Access to some group-based communication channels may be restricted to members of specified groups, whereby group-based communication channels are accessible to those users with a particular group identifier associated with their user profile. Group-based communication identifiers can be used to facilitate access control to messages (e.g., having a message returned as part of search results in response to a search query), and access to messages can be group-associated with their user profile. The group-based communication channel identifier may be used to determine the context for the message (eg, the group-based communication channel). A description of a group-based communication channel, such as a description of a project discussed in , may be associated with a group-based communication channel identifier).

용어 “개인적 그룹 기반 통신 채널”은 그것이 일반적으로 그룹 기반 통신 시스템의 다른 구성원들에 의해 액세스가능하고/하거나 탐색가능하도록 제한된 액세스를 갖는 그룹 기반 통신 채널을 지칭한다. 예를 들어, 개인적 그룹 기반 통신 채널 에 대한 지식 및 그에 대한 액세스 허용을 갖는 그러한 사용자들 또는 관리자들만이 개인적 그룹 기반 통신 채널의 콘텐츠를 볼 수 있다(예컨대, 개인적 그룹 기반 통신 채널에 대한 그룹 기반 통신 채널 식별자는 사용자가 입증/인증된 후 그들의 사용자 프로파일과 연관된다).The term “private group-based communication channel” refers to a group-based communication channel that has limited access such that it is generally accessible and/or discoverable by other members of the group-based communication system. For example, only those users or administrators who have knowledge of and permission to access the personal group-based communication channel may view the contents of the personal group-based communication channel (e.g., group-based communication on the personal group-based communication channel). The channel identifier is associated with their user profile after the user is authenticated/authenticated).

용어 “쿼리”는 데이터베이스와 연관된 요청을 지칭한다. “쿼리”는 하나 이상의 클라이언트 디바이스들 상에서 생성될 수 있고, 그룹 기반 통신 플랫폼으로 송신될 수 있다. 쿼리는 "선택 쿼리"일 수 있는데, 이는 쿼리에 따라 데이터베이스로부터 데이터를 판독가능 포맷으로 추출하는 데 사용된다. 쿼리는 "액션 쿼리"일 수 있는데, 이는 네트워크 데이터베이스에 저장된 데이터에 대한 (삽입, 삭제, 및/또는 업데이트와 같은) 동작들을 요청한다. 예를 들어, “통신 채널 생성 쿼리”는 통신 채널의 생성을 요청하는 액션 쿼리이다. The term "query" refers to a request associated with a database. A “query” can be created on one or more client devices and sent to the group based communication platform. The query may be a "selection query", which is used to extract data from the database in a readable format according to the query. A query may be an "action query", which requests actions (such as insert, delete, and/or update) on data stored in the network database. For example, “communication channel creation query” is an action query requesting creation of a communication channel.

용어 “샤드”는 개별적으로 액세스 및 관리될 수 있는 데이터의 관련된 개별 아이템들의 집합을 지칭한다. 샤드는 단일 데이터베이스에 저장될 수 있고, 또는 선택적으로, 다수의 데이터베이스들에 걸쳐 분산될 수 있다. 이는 다량의 데이터가 있을 때 특히 유익하다. 하나의 장소에 매우 큰 데이터베이스를 생성 및 유지하는 비용은 지수적으로 증가할 수 있는데, 그 이유는 일부 경우들에 있어서 그 데이터베이스가 더 많은 하이-엔드 컴퓨터들 요구하거나 이들을 사용하여 구현될 수 있기 때문이다. 대조적으로, 데이터베이스 샤드들은 다수의 훨씬 덜 비싼 상품 데이터베이스들에 걸쳐 분산될 수 있다. “샤딩”은 큰 데이터베이스를 분할하여 이를 더 관리하기 쉽게 만드는 것을 지칭한다. 데이터베이스를 샤딩하는 것이 데이터베이스를 공통적으로 아무 것도 공유하지 않는 더 작은 데이터베이스들로 분해하는 것을 수반하기 때문에, 그것은 2개 이상의 데이터베이스 샤드들을 수반하는 통신 채널을 생성하는 데 기술적 어려움들을 야기한다. 데이터베이스는 채널 식별들, 사용자 식별들, 팀 식별들, 또는 데이터베이스 구조 내의 데이터의 임의의 속성을 포함하지만 이로 제한되지 않는 다양한 인자들에 기초하여 "샤딩"될 수 있다. 어느 인자(들)를 사용할지를 결정하기 위해, 시스템은 데이터 분리, (룩업의 목적을 위한) 데이터의 근접도, 및 분산형 시스템에 걸친 액세스의 성능/속도를 고려할 수 있다. 시스템은, 시스템이 일부 경우들에 있어서 그러한 데이터를 검색하도록 요구되거나 설계되는 데이터의 양 및 속도 둘 모두를 고려할 필요가 있을 수 있다.The term “shard” refers to a collection of related discrete items of data that can be individually accessed and managed. A shard can be stored in a single database or, optionally, can be distributed across multiple databases. This is especially beneficial when there is a large amount of data. The cost of creating and maintaining a very large database in one place can increase exponentially because in some cases the database may require or be implemented using more high-end computers. am. In contrast, database shards can be distributed across many much less expensive commodity databases. “Sharding” refers to partitioning large databases to make them more manageable. Since sharding a database involves breaking the database into smaller databases that share nothing in common, it creates technical difficulties in creating a communication channel involving two or more database shards. A database may be "sharded" based on a variety of factors including, but not limited to, channel identifications, user identifications, team identifications, or any attribute of data within the database structure. To determine which factor(s) to use, the system may consider data separation, proximity of data (for purposes of lookup), and performance/speed of access across the distributed system. The system may need to consider both the amount of data and the speed at which the system is required or designed to retrieve such data in some cases.

용어 “참조 테이블”은 다양한 데이터 아이템들 사이에 그리고 그들 간에 참조 접속들의 세트를 지칭한다. 참조 테이블은 테이블 형식의 것일 수 있는데, 이는 "로우들" 및 "컬럼들"을 포함할 수 있다. 각각의 로우는 참조 접속을 표현할 수 있고, 각각의 컬럼은 데이터 아이템을 표현할 수 있다. 데이터 아이템은 그룹 식별, 채널 식별, 네트워크 데이터베이스 내의 물리적 어드레스, 보기 특권 설정 등일 수 있다. 참조 접속은 다양한 데이터 아이템들 사이의 그리고 그들 간의 관계들 및/또는 제약들을 나타낼 수 있다. 예를 들어, 샤드 참조 테이블은 그 통신 채널의 식별에 기초하여 네트워크 데이터베이스 내의 통신 채널 샤드의 물리적 어드레스를 식별할 수 있다. 샤드 참조 테이블은 파라미터들, 예컨대 데이터베이스 샤드 파라미터, 메시지 서버 샤드 파라미터, redis 샤드 파라미터, solr 샤드 파라미터, 팀 메타데이터(예컨대, 데이터 생성, 데이터 보관, 데이터 삭제), 관리자 사용자 데이터, 도메인, 이메일 도메인, 선호도들, 초대들, 크레디트들, 지불 티어, 및 팀이 기업인지의 여부를 나타내는 데이터를 포함할 수 있다.The term “reference table” refers to a set of reference connections between and between various data items. A lookup table may be in tabular form, which may contain "rows" and "columns". Each row can represent a reference connection, and each column can represent a data item. A data item may be a group identification, channel identification, physical address in a network database, setting viewing privileges, and the like. A reference connection may indicate relationships and/or constraints between and between various data items. For example, the shard lookup table may identify the physical address of a communication channel shard in a network database based on the identification of that communication channel. The shard reference table contains parameters such as database shard parameters, message server shard parameters, redis shard parameters, solr shard parameters, team metadata (e.g. data creation, data retention, data deletion), admin user data, domain, email domain, Preferences, invites, credits, payment tier, and data indicating whether or not the team is an enterprise.

용어 “이벤트”는 시스템 하드웨어 및/또는 소프트웨어에 대한 기술적 중요성을 갖는 식별가능한 비일시적 발생을 지칭한다. 이벤트는 컴퓨터 시스템에 의해 인식될 수 있는 일부 메시지, 토큰, 카운트, 패턴, 값, 또는 마커를 표현할 수 있다. 애플리케이션은 이벤트에 기초하여 소정 기능들을 수행하도록 트리거될 수 있다. 예를 들어, 그룹 기반 통신 채널에서, 사용자에 의해 전송된 메시지는 이벤트 애플리케이션 프로그래밍 인터페이스(API)를 활용하는 애플리케이션들에 대한 이벤트이다. 이벤트는 사용자 생성형, 예컨대 키스트로크들 또는 마우스 이동들, 또는 시스템 생성형, 예컨대 프로그램 로딩 및 에러들일 수 있다.The term “event” refers to an identifiable non-transient occurrence of technical significance to system hardware and/or software. An event may represent some message, token, count, pattern, value, or marker that can be recognized by a computer system. An application can be triggered to perform certain functions based on an event. For example, in a group-based communication channel, a message sent by a user is an event to applications that utilize an event application programming interface (API). Events can be user-generated, such as keystrokes or mouse movements, or system-generated, such as program loading and errors.

용어 “공유되는 통신 채널 속성들”은 공유되는 통신 채널의 하나 이상의 속성들을 지칭한다. 예를 들어, 공유되는 통신 채널 속성들의 세트는 하나 이상의 공유되는 통신 채널 명칭들, 아이콘들(예컨대, 파운드 부호들, 자물쇠 부호들), 제어부들(예컨대, 액세스 제어부들), 설정들(예컨대, 특권 보기 설정들), 임의의 다른 적합한 속성, 및 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 공유되는 통신 채널 샤드는 제1 그룹 식별(예컨대, 개시자 그룹 식별)과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 제2 그룹 식별(예컨대, 타깃 그룹 식별)과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있으며, 여기서 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 속성들의 제2 세트는 상이하다. 예를 들어, 제1 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트는 제1 공유되는 통신 채널 명칭을 포함할 수 있고, 제2 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트는 제1 공유되는 통신 채널 명칭과는 상이한 제2 공유되는 통신 채널 명칭을 포함할 수 있다.The term “shared communication channel properties” refers to one or more properties of a shared communication channel. For example, a set of shared communication channel attributes may include one or more shared communication channel names, icons (eg, pound signs, lock symbols), controls (eg, access controls), settings (eg, privileged view settings), any other suitable attribute, and any combination thereof. In some embodiments, a shared communication channel shard is associated with a first set of shared communication channel attributes associated with a first group identification (eg, initiator group identification) and a second group identification (eg, target group identification). may be assigned a second set of shared communication channel attributes, where the first set of shared communication channel attributes and the second set of shared communication channel attributes are different. For example, a first set of shared communication channel attributes associated with a first group identification may include a first shared communication channel name, and a second set of shared communication channel attributes associated with a second group identification may include a first shared communication channel name. 1 may include a second shared communication channel name different from the shared communication channel name.

용어 “보기 특권 설정”은 일부 콘텐츠의 (예컨대, 클라이언트 디바이스들이 콘텐츠를 볼 수 있는) 보기 특권 설정들을 지칭한다. 예를 들어, 보기 특권 설정은 개인적 보기 특권 설정(예컨대, 하나 이상의 그룹 식별들에 특정적이고 공개적 뷰로부터 은닉됨), 공개적 보기 특권 설정, 임의의 다른 적합한 보기 특권 설정, 또는 이들의 조합일 수 있다(예컨대, 메시지의 콘텐츠들은 공개적 보기 특권 설정과 연관될 수 있는 반면, 메시지에 대한 첨부물들은 개인적 보기 특권 설정과 연관될 수 있다). 일부 실시예들에서, 메시지는 보기 특권 설정들의 세트와 연관될 수 있다. 예를 들어, 메시지는 개인적 보기 특권 설정과 연관된 개인적 메시지일 수 있으며, 여기서 개인적 메시지는 공유되는 통신 채널에서 특정 그룹 식별(예컨대, 메시지를 전송한 클라이언트 디바이스와 연관된 그룹 식별)과 연관되는 클라이언트 디바이스들로만 증폭될 수 있거나(예컨대, 실시간으로 송신됨), 그들로만 송신될 수 있거나, 그들에 의해서만 탐색가능할 수 있거나, 그들에 의해서만 필터링가능할 수 있거나, 그들에게만 보일 수 있거나, 또는 그들에게만 액세스가능할 수 있다. 다른 예에서, 메시지는 공개적 보기 특권 설정과 연관된 공개적 메시지일 수 있으며, 여기서 공개적 메시지는 공유되는 통신 채널에서 모든 클라이언트 디바이스들로 증폭될 수 있거나, 그들로 송신될 수 있거나, 그들에 의해 탐색가능할 수 있거나, 그들에 의해 필터링가능할 수 있거나, 그들에게 보일 수 있거나, 또는 그들에게 액세스가능할 수 있다.The term “viewing privilege settings” refers to viewing privilege settings of some content (eg, allowing client devices to view the content). For example, the viewing privilege setting may be a private viewing privilege setting (eg, specific to one or more group identities and hidden from public view), a public viewing privilege setting, any other suitable viewing privilege setting, or a combination thereof. (eg, the contents of a message may be associated with public viewing privilege settings, while attachments to a message may be associated with private viewing privilege settings). In some embodiments, the message may be associated with a set of viewing privilege settings. For example, the message may be a personal message associated with a personal viewing privilege setting, where the personal message is only to client devices associated with a particular group identification (eg, group identification associated with the client device sending the message) on a shared communication channel. It may be amplified (e.g., transmitted in real time), transmitted only to them, discoverable only by them, filterable only by them, visible only to them, or accessible only to them. In another example, the message may be a public message associated with setting public viewing privileges, where the public message may be amplified to, transmitted to, or discoverable by all client devices in a shared communication channel. may exist, may be filterable by them, may be visible to them, or may be accessible to them.

용어 “일방적 보기” 및 유사한 용어들은 공유되는 통신 채널에서 특정 그룹 식별(또는, 일부 경우들에 있어서, 2개 이상의 그룹 식별들)과 연관되는 클라이언트 디바이스들로만 증폭될 수 있거나(예컨대, 실시간으로 송신됨), 그들로만 송신될 수 있거나, 그들에 의해서만 탐색가능할 수 있거나, 그들에 의해서만 필터링가능할 수 있거나, 그들에게만 보일 수 있거나, 또는 그들에게만 액세스가능할 수 있는 개인적 보기 특권 보기와 연관된 데이터, 정보, 메시지들, 콘텐츠, 및 첨부물들을 지칭한다. The term “one way view” and similar terms may only be amplified (e.g., transmitted in real time) to client devices associated with a particular group identification (or, in some cases, two or more group identifications) in a shared communication channel. ), data, information, messages associated with viewing private viewing privileges that may be transmitted only to them, may be searchable only by them, filterable only by them, visible only to them, or accessible only to them. , content, and attachments.

용어 "세트"는 0개 이상의 요소들의 집합을 지칭한다.The term “set” refers to a collection of zero or more elements.

예시적인 시스템 아키텍처Exemplary System Architecture

본 개시내용의 방법들, 장치들, 및 컴퓨터 프로그램 제품들이 다양한 디바이스들 중 임의의 것에 의해 구현될 수 있다. 예를 들어, 예시적인 실시예의 방법, 장치, 및 컴퓨터 프로그램 제품은 하나 이상의 클라이언트 디바이스들과 같은 하나 이상의 디바이스들과 통신하도록 구성된, 서버 또는 다른 네트워크 엔티티와 같은 네트워크 디바이스에 의해 구현될 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스는 개인용 컴퓨터 또는 컴퓨터 워크스테이션과 같은 고정된 컴퓨팅 디바이스들을 포함할 수 있다. 또한, 추가로, 예시적인 실시예들은 휴대용 정보단말기(portable digital assistant, PDA), 모바일 전화기, 스마트폰, 랩톱 컴퓨터, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 전술된 디바이스들의 임의의 조합과 같은 다양한 모바일 디바이스들 중 임의의 것에 의해 구현될 수 있다.The methods, apparatuses, and computer program products of the present disclosure may be implemented by any of a variety of devices. For example, the method, apparatus, and computer program product of an example embodiment may be implemented by a network device, such as a server or other network entity, configured to communicate with one or more devices, such as one or more client devices. In some embodiments, the computing device may include fixed computing devices such as a personal computer or computer workstation. In addition, example embodiments may be implemented on a variety of mobile devices, such as a portable digital assistant (PDA), a mobile phone, a smartphone, a laptop computer, a tablet computer, a wearable device, or any combination of the foregoing devices. can be implemented by any of

도 1은 본 개시내용의 실시예들이 동작할 수 있는 예시적인 컴퓨팅 시스템(100)을 예시한다. 사용자들은 클라이언트 디바이스들(101A 내지 101N)을 사용하여 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 액세스할 수 있다. 1 illustrates an example computing system 100 in which embodiments of the present disclosure may operate. Users may access the group-based communication platform 105 through the communication network 103 using client devices 101A-101N.

통신 네트워크(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 등이다.The communication network 103 includes, for example, a wired or wireless local area network (LAN), a personal area network (PAN), a metropolitan area network (MAN), a wide area network , WAN), etc., as well as any wired or wireless communications network including any hardware, software, and/or firmware (eg, network routers, etc.). For example, communication networks 103 may include cellular telephones, 802.11, 802.16, 802.20, and/or WiMax networks. Further, communication network 103 may include a public communication network, such as the Internet, a private communication network, such as an intranet, or combinations thereof, including but not limited to TCP/IP-based networking protocols, now available or later developed. A variety of networking protocols can be used. For example, the networking protocol can be customized to suit the needs of a group-based communication system. In some embodiments, the protocol is a custom protocol for JSON objects sent over a Websocket channel. In some embodiments, the protocol is JSON over RPC, JSON over REST/HTTP, etc.

그룹 기반 통신 플랫폼(105)은 메시지 서버(107) 및 네트워크 애플리케이션 서버(109)를 포함할 수 있다. 네트워크 애플리케이션 서버(109)는 메인 데이터베이스(111) 및 하나 이상의 데이터베이스 샤드들(113A 내지 113N)과 통신할 수 있다.The group based communication platform 105 may include a message server 107 and a network application server 109 . The network application server 109 may communicate with the main database 111 and one or more database shards 113A through 113N.

메시지 서버(107)는 본 명세서에서 기술되는 바와 같은 하나 이상의 회로들, 컴퓨터들, 또는 컴퓨팅 시스템들과 같은 컴퓨터 또는 컴퓨터들로서 구현될 수 있다. 메시지 서버(107)는 통신 네트워크(103)를 통해 클라이언트 디바이스들(101A 내지 101N)을 포함하지만 이들로 제한되지 않는 다양한 소스들로부터 전자적 데이터를 수신하는 것을 제공할 수 있다. 예를 들어, 메시지 서버(107)는 클라이언트 디바이스들(101A 내지 101N)에 의해 제공된 전자적 메시지들을 수신하도록 그리고 이들을 프로세싱하도록 동작가능할 수 있다. 메시지 서버(107)는 또한 클라이언트 디바이스들(101A 내지 101N)로의 전자적 메시지들의 송신 및 증폭을 용이하게 할 수 있다.Message server 107 may be implemented as a computer or computers, such as one or more circuits, computers, or computing systems as described herein. Message server 107 may provide for receiving electronic data from various sources, including but not limited to client devices 101A-101N via communication network 103 . For example, message server 107 may be operable to receive and process electronic messages provided by client devices 101A-101N. Message server 107 may also facilitate transmission and amplification of electronic messages to client devices 101A-101N.

유사하게, 네트워크 애플리케이션 서버(109)는 본 명세서에서 기술되는 바와 같이 하나 이상의 회로들, 컴퓨터들, 또는 컴퓨팅 시스템들로서 구현될 수 있다. 네트워크 애플리케이션 서버(109)는 통신 네트워크(103)를 통해 클라이언트 디바이스들(101A 내지 101N)을 포함하지만 이들로 제한되지 않는 다양한 소스들로부터 전자적 데이터를 수신하는 것을 제공할 수 있다. 예를 들어, 네트워크 애플리케이션 서버(109)는 클라이언트 디바이스들(101A 내지 101N)에 의해 제공된 전자적 메시지들을 수신 및 프로세싱하도록 동작가능할 수 있다. 네트워크 애플리케이션 서버(109)는, 또한, 메인 데이터베이스(111) 및/또는 하나 이상의 데이터베이스 샤드들(113A 내지 113N)에 관하여 클라이언트 디바이스들(101A 내지 101N) 및/또는 메시지 서버(107)에 의해 제공된 네트워크 데이터베이스 쿼리들을 수신 및 프로세싱하도록 동작가능할 수 있다. 네트워크 애플리케이션 서버(109)는 사용자 인터페이스들의 생성을 추가로 용이하게 할 수 있다.Similarly, network application server 109 may be implemented as one or more circuits, computers, or computing systems as described herein. Network application server 109 may provide for receiving electronic data from various sources, including but not limited to client devices 101A-101N via communication network 103 . For example, network application server 109 may be operable to receive and process electronic messages provided by client devices 101A-101N. The network application server 109 also connects the main database 111 and/or one or more database shards 113A-113N to the network provided by the client devices 101A-101N and/or the message server 107. It may be operable to receive and process database queries. The network application server 109 may further facilitate creation of user interfaces.

클라이언트 디바이스들(101A 내지 101N)은 위에 정의된 바와 같은 임의의 컴퓨팅 디바이스일 수 있다. 클라이언트 디바이스들(101A 내지 101N)로부터의 메시지 서버(107) 및 네트워크 애플리케이션 서버(109)에 의해 수신된 전자적 데이터는 다양한 형태들로 그리고 다양한 방법들을 통해 제공될 수 있다.Client devices 101A-101N may be any computing device as defined above. Electronic data received by message server 107 and network application server 109 from client devices 101A-101N may be provided in various forms and via various methods.

일부 실시예들에서, 클라이언트 디바이스들(101A 내지 101N) 중 하나 이상은 스마트폰들 또는 태블릿들과 같은 모바일 디바이스들이다. 하나 이상의 클라이언트 디바이스들은 메시지 서버(107) 및/또는 네트워크 애플리케이션 서버(109)와 상호작용하기 위해 "앱"을 실행시킬 수 있다. 그러한 앱들은, 전형적으로, 스마트폰들 또는 태블릿들과 같은 모바일 디바이스들 상에서 실행되도록 설계된다. 예를 들어, Apple Inc.의 iOS®, Google Inc.의 Android®, 또는 Microsoft Inc.의 Windows 10 Mobile®. 과 같은 모바일 디바이스 운영 체제들 상에서 실행되는 앱이 제공될 수 있다. 이러한 플랫폼들은, 전형적으로, 애들이 서로와, 그리고 모바일 디바이스들의 특정 하드웨어 및 소프트웨어와 통신할 수 있게 하는 프레임워크들을 제공한다. 예를 들어, 위에서 각각 지명된 모바일 운영 체제들은 위치 서비스 회로, 유선 및 무선 네트워크 인터페이스, 사용자 콘택트, 및 다른 애플리케이션과 상호작용하기 위한 프레임워크들을 제공한다. 앱 외부에서 실행되는 하드웨어 및 소프트웨어 모듈들과 통신하는 것은, 전형적으로, 모바일 디바이스 운영 체제에 의해 제공된 애플리케이션 프로그래밍 인터페이스(API)들을 통해 제공된다.In some embodiments, one or more of the client devices 101A-101N are mobile devices such as smartphones or tablets. One or more client devices may run an “app” to interact with message server 107 and/or network application server 109 . Such apps are typically designed to run on mobile devices such as smartphones or tablets. For example, iOS® by Apple Inc., Android® by Google Inc., or Windows 10 Mobile® by Microsoft Inc. Apps that run on mobile device operating systems such as may be provided. These platforms typically provide frameworks that allow children to communicate with each other and with the specific hardware and software of mobile devices. For example, the mobile operating systems each named above provide location services circuitry, wired and wireless network interfaces, user contacts, and frameworks for interacting with other applications. Communicating with hardware and software modules running outside the app is typically provided through application programming interfaces (APIs) provided by the mobile device operating system.

일부 실시예들에서, 클라이언트 디바이스들(101A 내지 101N)은 웹 브라우저를 통해 메시지 서버(107) 및/또는 네트워크 애플리케이션 서버(109)와 상호작용할 수 있다. 클라이언트 디바이스들(101A 내지 101N)은, 또한, 메시지 서버(107) 및/또는 네트워크 애플리케이션 서버(109)와 상호작용하도록 설계된 다양한 하드웨어 또는 펌웨어를 포함할 수 있다.In some embodiments, client devices 101A-101N may interact with message server 107 and/or network application server 109 via a web browser. Client devices 101A-101N may also include various hardware or firmware designed to interact with message server 107 and/or network application server 109 .

일부 실시예들에서, 데이터베이스 샤드들(113A 내지 113N)은 네트워크 결합 스토리지(network attached storage, NAS) 디바이스 또는 디바이스들과 같은 데이터 저장 디바이스로서, 또는 별개의 데이터베이스 서버 또는 서버들로서 구현될 수 있다. 데이터베이스 샤드들(113A 내지 113N)은 네트워크 애플리케이션 서버(109)에 의해 액세스 및 저장된 정보를 포함한다. 예를 들어, 데이터베이스 샤드들(113A 내지 113N)은 사용자 프로파일들, 사용자 특권 정보, 전자적 파일들, 복수의 그룹 기반 통신 채널들 간에 조직되는 메시징 통신 등을 제한 없이 포함할 수 있다.In some embodiments, database shards 113A-113N may be implemented as a data storage device, such as a network attached storage (NAS) device or devices, or as separate database server or servers. Database shards 113A through 113N contain information accessed and stored by network application server 109 . For example, database shards 113A-113N may include, without limitation, user profiles, user privilege information, electronic files, messaging communications organized among a plurality of group-based communication channels, and the like.

일부 실시예들에서, 메인 데이터베이스 샤드들(111)은 네트워크 결합 스토리지(NAS) 디바이스 또는 디바이스들과 같은 데이터 저장 디바이스로서, 또는 별개의 데이터베이스 서버 또는 서버들로서 구현될 수 있다. 메인 데이터베이스(111)는 네트워크 애플리케이션 서버(109)에 의해 액세스 및 저장된 정보를 포함한다. 예를 들어, 메인 데이터베이스(111)는 샤드 참조 테이블을 제한 없이 포함할 수 있다.In some embodiments, main database shards 111 may be implemented as a data storage device, such as a network attached storage (NAS) device or devices, or as separate database server or servers. The main database 111 contains information accessed and stored by the network application server 109 . For example, the main database 111 may include a shard lookup table without limitation.

그룹 기반 통신 플랫폼(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 메시지의 형태로 다음의 예시적인 개인적 메시지를 제공할 수 있다:In some embodiments of the group-based communication platform 105, a message or messaging communication may be sent to the group-based communication platform 105 from the client devices 101A-101N. In various implementations, messages may be sent directly to the group-based communication platform 105 via the communication network 103 by one of the client devices 101A-101N. Messages may be transmitted to the group-based communication platform 105 through an intermediary such as a message server or the like. For example, the client devices 101A-101N may be desktops, laptops, tablets, smartphones, etc. running a client application (eg, a group-based communication app). In one implementation, the message comprises a message identifier, an originating user identifier, a group identifier, a group-based communication channel identifier, shared communication channel attributes (eg, a first set of shared communication channel attributes associated with a first group identification, and a second group identifier). 2 A second set of shared communication channel attributes associated with group identification), message contents (eg text, emojis, images, links), attachments (eg files), message layer data (eg message may be a reply to another message), third party metadata, and the like. In one implementation, the client devices 101A-101N, as provided below, are substantially "HTTP(S)(Secure) Hypertext Transfer Protocol" containing "eXtensible Markup Language (XML)" format data. )" You can provide the following example personal message in the form of a POST message:

POST /authrequest.php HTTP/1.1POST /authrequest.php HTTP/1.1

호스트: www.server.comHost: www.server.com

콘텐츠 유형: 애플리케이션/XMLContent Type: Application/XML

콘텐츠 길이: 667Content Length: 667

<?XML version = "1.0" encoding = "UTF-8"?><?XML version = "1.0" encoding = "UTF-8"?>

<auth_request><auth_request>

<timestamp>2020-12-31 23:59:59</timestamp><timestamp>2020-12-31 23:59:59</timestamp>

<user_accounts_details><user_accounts_details>

<user_account_credentials><user_account_credentials>

<user_name>ID_user_1</user_name><user_name>ID_user_1</user_name>

<password>abc123</password><password>abc123</password>

//OPTIONAL <cookie>cookieID</cookie>//OPTIONAL <cookie>cookieID</cookie>

//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>

//OPTIONAL <digital_certificate>_DATA_</digital_certificate>//OPTIONAL <digital_certificate>_DATA_</digital_certificate>

</user_account_credentials></user_account_credentials>

</user_accounts_details></user_accounts_details>

<client_details> //iOS Client with App and Webkit<client_details> //iOS Client with App and Webkit

//클라이언트 소스들의 예시적인 변형들을 보여주기 위해//to show example variants of client sources

//여러 개의 클라이언트 세부사항 섹션들이 제공되지만,//Several client detail sections are provided, but

//추가 메시지들은 공간을 절약하기 위해 오로지 //additional messages only to save space

// 하나만을 포함할 것이라는 것에 유의해야 한다 // note that it will contain only one

<client_IP>10.0.0.123</client_IP><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><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_product_type>iPhone6,1</client_product_type>

<client_serial_number>DNXXX1X1XXXX</client_serial_number><client_serial_number>DNXXX1X1XXXX</client_serial_number>

<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID><client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>

<client_OS>iOS</client_OS><client_OS>iOS</client_OS>

<client_OS_version>7.1.1</client_OS_version><client_OS_version>7.1.1</client_OS_version>

<client_app_type>app with webkit</client_app_type><client_app_type>app with webkit</client_app_type>

<app_installed_flag>true</app_installed_flag><app_installed_flag>true</app_installed_flag>

<app_name>MSM.app</app_name><app_name>MSM.app</app_name>

<app_version>1.0 </app_version><app_version>1.0 </app_version>

<app_webkit_name>Mobile Safari</client_webkit_name><app_webkit_name>Mobile Safari</client_webkit_name>

<client_version>537.51.2</client_version><client_version>537.51.2</client_version>

</client_details></client_details>

<client_details> //iOS Client with Webbrowser<client_details> //iOS Client with Webbrowser

<client_IP>10.0.0.123</client_IP><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><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_product_type>iPhone6,1</client_product_type>

<client_serial_number>DNXXX1X1XXXX</client_serial_number><client_serial_number>DNXXX1X1XXXX</client_serial_number>

<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID><client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>

<client_OS>iOS</client_OS><client_OS>iOS</client_OS>

<client_OS_version>7.1.1</client_OS_version><client_OS_version>7.1.1</client_OS_version>

<client_app_type>web browser</client_app_type><client_app_type>web browser</client_app_type>

<client_name>Mobile Safari</client_name><client_name>Mobile Safari</client_name>

<client_version>9537.53</client_version><client_version>9537.53</client_version>

</client_details></client_details>

<client_details> //Android Client with Webbrowser<client_details> //Android Client with Webbrowser

<client_IP>10.0.0.123</client_IP><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><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_product_type>Nexus S</client_product_type>

<client_serial_number>YXXXXXXXXZ</client_serial_number><client_serial_number>YXXXXXXXXZ</client_serial_number>

<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID><client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX</client_UDID>

<client_OS>Android</client_OS><client_OS>Android</client_OS>

<client_OS_version>4.0.4</client_OS_version><client_OS_version>4.0.4</client_OS_version>

<client_app_type>web browser</client_app_type><client_app_type>web browser</client_app_type>

<client_name>Mobile Safari</client_name><client_name>Mobile Safari</client_name>

<client_version>534.30</client_version><client_version>534.30</client_version>

</client_details></client_details>

<client_details> //Mac Desktop with Webbrowser<client_details> //Mac Desktop with Webbrowser

<client_IP>10.0.0.123</client_IP><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><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_product_type>MacPro5,1</client_product_type>

<client_serial_number>YXXXXXXXXZ</client_serial_number><client_serial_number>YXXXXXXXXZ</client_serial_number>

<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID><client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX</client_UDID>

<client_OS>Mac OS X</client_OS><client_OS>Mac OS X</client_OS>

<client_OS_version>10.9.3</client_OS_version><client_OS_version>10.9.3</client_OS_version>

<client_app_type>web browser</client_app_type><client_app_type>web browser</client_app_type>

<client_name>Mobile Safari</client_name><client_name>Mobile Safari</client_name>

<client_version>537.75.14</client_version><client_version>537.75.14</client_version>

</client_details></client_details>

<message><message>

<message_identifier>ID_message_10</message_identifier><message_identifier>ID_message_10</message_identifier>

<team_identifier>ID_team_1</team_identifier><team_identifier>ID_team_1</team_identifier>

<channel_identifier>ID_channel_1</channel_identifier><channel_identifier>ID_channel_1</channel_identifier>

<contents>That is an interesting invention. I have attached a copy our patent policy.</contents><contents>That is an interesting invention. I have attached a copy our patent policy.</contents>

<attachments>patent_policy.pdf</attachments><attachments>patent_policy.pdf</attachments>

<viewing_privilege_settings>private</viewing_privilege_settings><viewing_privilege_settings>private</viewing_privilege_settings>

</message></message>

</auth_request></auth_request>

그룹 기반 통신 플랫폼(105)은 하나 이상의 데이터베이스 샤드들(113A 내지 113N)에서 메시지 인덱싱 및 저장을 용이하게 하기 위해 수신된 메시지에 기초하여 저장 메시지를 생성할 수 있는 적어도 하나의 메시지 서버(107)를 포함한다. 일 구현예에서, 저장 메시지는 메시지 식별자, 그룹 식별자, 그룹 기반 통신 채널 식별자, 발신 사용자 식별자, 주제들, 응답들, 메시지 콘텐츠들, 첨부물들, 메시지 계층 데이터, 제3자 메타데이터, 대화 프리미티브 데이터 등과 같은 데이터를 포함할 수 있다. 예를 들어, 그룹 기반 통신 서버(106)는, 아래에서 제공되는 바와 같이, 실질적으로, XML 포맷 데이터를 포함하는 HTTP(S) POST 메시지의 형태로, 다음의 예시적인 개인적 저장 메시지를 제공할 수 있다:The group-based communication platform 105 includes at least one message server 107 capable of generating stored messages based on received messages to facilitate message indexing and storage in one or more database shards 113A-113N. include In one implementation, the stored message includes message identifier, group identifier, group based communication channel identifier, originating user identifier, subjects, responses, message contents, attachments, message layer data, third party metadata, conversation primitive data It may contain data such as For example, group-based communication server 106 may provide the following exemplary personal storage message, substantially in the form of an HTTP(S) POST message containing XML formatted data, as provided below. there is:

POST /storage_message.php HTTP/1.1POST /storage_message.php HTTP/1.1

호스트: www.server.comHost: www.server.com

콘텐츠 유형: 애플리케이션/XMLContent Type: Application/XML

콘텐츠 길이: 667Content Length: 667

<?XML version = "1.0" encoding = "UTF-8"?><?XML version = "1.0" encoding = "UTF-8"?>

<storage_message><storage_message>

<message_identifier>ID_message_10</message_identifier><message_identifier>ID_message_10</message_identifier>

<team_identifier>ID_team_1</team_identifier><team_identifier>ID_team_1</team_identifier>

<channel_identifier>ID_channel_1</channel_identifier><channel_identifier>ID_channel_1</channel_identifier>

<sending_user_identifier>ID_user_1</sending_user_identifier><sending_user_identifier>ID_user_1</sending_user_identifier>

<topics><topics>

<topic>inventions</topic><topic>inventions</topic>

<topic>patents</topic><topic>patents</topic>

<topic>policies</topic><topic>policies</topic>

</topics></topics>

<responses><responses>

<response>liked by ID_user_2</response><response>liked by ID_user_2</response>

<response>starred by ID_user_3</response><response>starred by ID_user_3</response>

</responses></responses>

<contents>That is an interesting invention. I have attached a copy our patent policy.</contents><contents>That is an interesting invention. I have attached a copy our patent policy.</contents>

<attachments>patent_policy.pdf</attachments><attachments>patent_policy.pdf</attachments>

<viewing_privilege_settings>private</viewing_privilege_settings><viewing_privilege_settings>private</viewing_privilege_settings>

<conversation_primitive><conversation_primitive>

conversation includes messages: ID_message_8, ID_message_9, ID_message_10, conversation includes messages: ID_message_8, ID_message_9, ID_message_10,

ID_message_11, ID_message_12ID_message_11, ID_message_12

</conversation_primitive></conversation_primitive>

</storage_message></storage_message>

일부 실시예들에서, 위에서 정의된 바와 같은 그룹 식별자는 메시지와 연관될 수 있다. 일부 실시예들에서, 위에서 정의된 바와 같은 그룹 기반 통신 채널 식별자는 메시지와 연관될 수 있다.In some embodiments, a group identifier as defined above may be associated with a message. In some embodiments, a group-based communication channel identifier as defined above may be associated with a message.

일부 실시예들에서, 위에서 정의된 바와 같은 발신 사용자 식별자는 메시지와 연관될 수 있다. 일 구현예에서, 메시지는 메시지를 전송한 사용자의 발신 사용자 식별자를 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다.In some embodiments, an originating user identifier as defined above may be associated with a message. In one implementation, the message may be parsed (eg, using PHP commands) to determine the originating user identifier of the user sending the message.

일부 실시예들에서, 응답들을 나타내는 데이터는 메시지와 연관될 수 있다. 예를 들어, 다른 사용자들에 의한 메시지에 대한 응답들은 리액션들(예컨대, 메시지와 연관된 이모지의 선택, 메시지와 연관된 “라이크(like)” 버튼의 선택), 메시지에 임베드된 하이퍼링크 상에서 클릭하기, 메시지에 대응하기(예컨대, 메시지에 응답하여 메시지를 그룹 기반 통신 채널에 포스트하기), 메시지와 연관된 파일을 다운로드하기, 하나의 그룹 기반 통신 채널로부터의 메시지를 다른 그룹 기반 통신 채널에 공유하기, 메시지를 피닝(pin)하기, 메시지에 별표 표시하기 등을 포함할 수 있다. 일 구현예에서, 다른 사용자들에 의한 메시지에 대한 응답들에 관한 데이터는 메시지에 포함될 수 있고, 메시지는 응답들을 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다. 다른 구현예에서, 메시지에 대한 응답들에 관한 데이터는 데이터베이스로부터 검색될 수 있다. 예를 들어, 메시지에 대한 응답들에 관한 데이터는 다음과 유사한 MySQL 데이터베이스 커맨드를 통해 검색될 수 있다:In some embodiments, data representing responses may be associated with a message. For example, responses to messages by other users may include reactions (eg, selection of an emoji associated with a message, selection of a “like” button associated with a message), clicking on a hyperlink embedded in a message, Responding to a message (e.g., posting a message to a group-based communication channel in response to a message), downloading a file associated with a message, sharing a message from one group-based communication channel to another group-based communication channel, message can include pinning, staring messages, and the like. In one implementation, data regarding responses to the message by other users may be included in the message, and the message may be parsed (eg, using PHP commands) to determine responses. In another implementation, data regarding responses to a message may be retrieved from a database. For example, data about responses to a message can be retrieved via a MySQL database command similar to:

messageResponses를 선택Select messageResponses

MSM_Message로부터from MSM_Message

여기서 messageID = ID_message_10이다.Here messageID = ID_message_10.

예를 들어, 메시지에 대한 응답들에 관한 데이터는 메시지에 대한 콘텍스트(예컨대, 일부 사용자의 관점으로부터 메시지에 대한 소셜 스코어)를 결정하는 데 사용될 수 있다. 다른 예에서, 메시지에 대한 응답들에 관한 데이터는 사용자에 관한 콘텍스트를 결정하기 위해 분석될 수 있다(예컨대, 주제에서 사용자의 전문지식은 주제에 관한 사용자의 메시지에 대한 응답들에 기초하여 결정될 수 있다).For example, data about responses to a message can be used to determine a context for the message (eg, a social score for the message from some user's perspective). In another example, data about responses to a message can be analyzed to determine a context about a user (e.g., a user's expertise in a subject can be determined based on the user's responses to messages about a subject). there is).

일부 실시예들에서, 첨부물들은 메시지에 포함될 수 있다. 첨부물들이 있는 경우, 파일들이 메시지와 연관될 수 있다. 일 구현예에서, 메시지는 첨부물들의 파일명들을 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다. 예를 들어, 파일 콘텐츠들은 메시지에 대한 콘텍스트를 결정하기 위해 분석될 수 있다(예컨대, 특허 정책 문서는 메시지가 주제 "특허들"과 관련됨을 나타낼 수 있다).In some embodiments, attachments may be included in a message. If there are attachments, files may be associated with the message. In one implementation, the message can be parsed (eg, using PHP commands) to determine the filenames of the attachments. For example, file contents may be analyzed to determine context for a message (eg, a patent policy document may indicate that a message relates to the subject “patents”).

일부 실시예들에서, 제3자 메타데이터는 메시지와 연관될 수 있다. 예를 들어, 제3자 메타데이터는 회사, 그룹, 그룹 기반 통신 채널 등에 특정적인 사용자 또는 메시지에 관한 추가 콘텍스트를 제공할 수 있다. 일 구현예에서, 메시지는 제3자 메타데이터를 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다. 예를 들어, 제3자 메타데이터는 메시지를 전송한 사용자가 그룹 기반 통신 채널의 인가받은 대표인지의 여부를 나타낼 수 있다(예컨대, 인가받은 대표는 그룹 기반 통신 채널에서 의문들에 응답하도록 회사에 의해 인가될 수 있다).In some embodiments, third party metadata may be associated with a message. For example, third-party metadata may provide additional context about a specific user or message, such as a company, group, group-based communication channel, and the like. In one implementation, the message can be parsed (eg, using PHP commands) to determine third-party metadata. For example, the third-party metadata may indicate whether the user sending the message is an authorized representative of the group-based communication channel (e.g., the authorized representative provides the company with answers to questions on the group-based communication channel). may be authorized).

실시예들에서, 대화 프리미티브는 메시지와 연관될 수 있다. 일 구현예에서, 대화 프리미티브는 메시지들을 분석하고/하거나 인덱싱하고/하거나 저장하고/하거나 등등을 하는 데 사용되는 요소이다. 예를 들어, 메시지는 자체로 분석될 수 있고, 그 자신의 대화 프리미티브를 형성할 수 있다. 다른 예에서, 메시지는 대화를 이루는 다른 메시지들과 함께 분석될 수 있고, 대화를 이루는 메시지들은 대화 프리미티브를 형성할 수 있다. 일 구현예에서, 대화 프리미티브는 메시지, 특정된 수(예컨대, 2개)의 선행 메시지들, 및 특정된 수(예컨대, 2개)의 후행 메시지들로서 결정될 수 있다. 다른 구현예에서, 대화 프리미티브는 메시지 및 다른 메시지들에서(예컨대, 채널에서) 논의된 주제들 및/또는 이러한 메시지들의 근접도(예컨대, 메시지 발송 순서 근접도, 메시지 발송 시간 근접도)의 분석에 기초하여 결정될 수 있다.In embodiments, a conversation primitive may be associated with a message. In one implementation, a conversation primitive is an element used to parse messages, index them, store them, and/or the like. For example, the message itself can be parsed and can form its own dialog primitives. In another example, a message may be parsed along with other messages forming a conversation, and the messages forming a conversation may form a conversation primitive. In one implementation, a conversation primitive may be determined as a message, a specified number (eg, two) preceding messages, and a specified number (eg, two) following messages. In another implementation, the conversation primitive is used to analyze the topics discussed in the message and other messages (eg, in a channel) and/or the proximity of these messages (eg, proximity in order of sending messages, proximity in time of sending messages). can be determined based on

실시예들에서, 위에서 기술된 바와 같이 결정된 다양한 메타데이터, 및/또는 메시지의 콘텐츠들은 (예컨대, 대화 프리미티브를 사용하여) 메시지를 인덱싱하여, 탐색의 다양한 패싯(facet)들(즉, 메시지 서버(107)로부터의 결과들을 반환하는 탐색 쿼리들)을 용이하게 하는 데 사용될 수 있다. 일 구현예에서, 저장 메시지는 그룹 기반 통신 서버(106)로부터 전송되어, 메시지 서버(107)에의 인덱싱을 용이하게 할 수 있다. 다른 구현예에서, 메시지와 연관된 메타데이터가 결정될 수 있고, 메시지는 메시지 서버(107)에 인덱싱될 수 있다. 일 구현예에서, 메시지는 (예컨대, 다른 그룹들 및/또는 회사들과 공유되지 않는 그룹 및/또는 회사와 연관된 별개의 인덱스에서) 회사 또는 그룹의 메시지들이 개별적으로 인덱싱될 수 있도록 인덱싱될 수 있다. 일 구현예에서, (예컨대, 보안 목적을 위해 데이터 격리를 용이하게 하기 위해) 메시지들이 별개의 분산형 저장소에서 인덱싱될 수 있다.In embodiments, the various metadata determined as described above, and/or the contents of the message (e.g., using conversation primitives) index the message to determine various facets of discovery (i.e., the message server ( 107) can be used to facilitate search queries that return results from In one implementation, stored messages may be sent from the group-based communication server 106 to facilitate indexing into the message server 107. In another implementation, metadata associated with a message can be determined, and the message can be indexed in the message server 107 . In one implementation, a message can be indexed such that a company or group's messages can be individually indexed (e.g., in a separate index associated with a group and/or company that is not shared with other groups and/or companies). . In one implementation, messages may be indexed in a separate distributed store (eg, to facilitate data isolation for security purposes).

메시지와 연관된 첨부물들이 있는 경우, 연관된 파일들의 파일 콘텐츠들은 메시지 서버(107)에 그러한 파일들을 인덱싱하여 탐색을 용이하게 하는 데 사용될 수 있다. 일 실시예에서, 파일들은 회사 또는 그룹의 파일들이 별개의 분산형 저장소에서 인덱싱되도록 인덱싱될 수 있다.If there are attachments associated with the message, the file contents of the associated files may be used to index those files in the message server 107 to facilitate retrieval. In one embodiment, files may be indexed such that a company's or group's files are indexed in a separate distributed repository.

하나 이상의 클라이언트 디바이스들(101A 내지 101N) 및 그룹 기반 통신 플랫폼(105) 간의 전자적 정보 교환의 일례가 아래에서 기술된다.An example of electronic information exchange between one or more client devices 101A-101N and the group-based communication platform 105 is described below.

하나 이상의 클라이언트 디바이스들(101A 내지 101N)은 데이터베이스 샤드들(113A 내지 113N)과 연관된 하나 이상의 공유되는 통신 채널 생성 쿼리들을 생성하도록 구성된다. “토니 대 프랭크” 논의로부터 계속하면, 토니는 클라이언트 디바이스(101A)(조직 X와 연관된 그룹 식별을 가짐)를 사용하여 공유되는 통신 채널 생성 쿼리를 생성하여, 프랭크의 클라이언트 디바이스(101B)(조직 Y와 연관된 그룹 식별을 가짐)와의 외부에서 공유되는 통신 채널의 생성을 요청할 수 있다. 조직 X 및 조직 Y는 각각 데이터베이스 샤드들(113A 내지 113N)의 별개의 샤드와 연관된다. 공유되는 통신 채널 생성 쿼리는 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)으로 송신될 수 있다.One or more client devices 101A-101N are configured to generate one or more shared communication channel creation queries associated with database shards 113A-113N. Continuing from the “Tony vs. Frank” discussion, Tony uses client device 101A (which has a group identification associated with organization X) to create a shared communication channel creation query, so that Frank's client device 101B (with organization Y (having a group identification associated with) may request creation of a communication channel shared externally. Organization X and organization Y are each associated with a separate shard of database shards 113A through 113N. The shared communication channel creation query may be sent to the group based communication platform 105 via the communication network 103 .

클라이언트 디바이스들(101A 내지 101N)로부터 하나 이상의 공유되는 통신 채널 생성 쿼리들을 수신할 시, 그룹 기반 통신 플랫폼(105)은 네트워크 애플리케이션 서버(109)를 활용하여, 하나 이상의 공유되는 통신 채널 생성 쿼리들에 기초하여 하나 이상의 데이터베이스 샤드들을 생성할 수 있다. 네트워크 애플리케이션 서버(109)는 공유되는 통신 채널 식별을 하나 이상의 생성된 데이터베이스 샤드들 각각에 추가로 할당할 수 있다. 이전 예로부터 계속하면, 네트워크 애플리케이션 서버(109)는 클라이언트 디바이스(101A)를 통해 토니에 의해 제공된 공유되는 통신 채널 생성 쿼리에 기초하여 데이터베이스 샤드(113N)를 생성할 수 있고, 공유되는 통신 채널 식별을 데이터베이스 샤드(113N)와 연관시킬 수 있다.Upon receiving one or more shared communication channel creation queries from client devices 101A-101N, group-based communication platform 105 utilizes network application server 109 to respond to one or more shared communication channel creation queries. Based on this, one or more database shards can be created. The network application server 109 may further assign a shared communication channel identification to each of the one or more created database shards. Continuing from the previous example, the network application server 109 may create the database shard 113N based on the shared communication channel creation query provided by Tony via the client device 101A, and identify the shared communication channel. It can be associated with database shard 113N.

하나 이상의 공유되는 통신 채널 생성 쿼리들에 기초하여 하나 이상의 데이터베이스 샤드들을 생성한 후, 그룹 기반 통신 플랫폼(105)은 하나 이상의 공유되는 통신 채널 수락 요청들을 하나 이상의 클라이언트 디바이스들(101A 내지 101N)로 송신할 수 있다. 이전 예로부터 계속하면, 그룹 기반 통신 플랫폼(105)은 공유되는 통신 채널 수락 요청을 클라이언트 디바이스(101B)(프랭크)로 송신할 수 있는데, 이는 클라이언트 디바이스(101A)(토니)에 의해 제공된 공유되는 통신 채널 생성 쿼리에 나타내진다.After creating one or more database shards based on one or more shared communication channel creation queries, group-based communication platform 105 transmits one or more shared communication channel accept requests to one or more client devices 101A-101N. can do. Continuing from the previous example, the group-based communication platform 105 may send a shared communication channel accept request to client device 101B (Frank), which provides for the shared communication provided by client device 101A (Tony). Indicated in the channel creation query.

공유되는 통신 채널 수락 요청을 수신할 시, 하나 이상의 클라이언트 디바이스들(101A 내지 101N)은 하나 이상의 전자적 승인들을 생성할 수 있고, 이러한 전자적 승인들을 그룹 기반 통신 플랫폼(105)으로 송신할 수 있다. 이전 예로부터 계속하면, 프랭크는, 클라이언트 디바이스(101B)를 통해, 공유되는 통신 채널 수락 요청에 응답하여 전자적 승인을 생성할 수 있다. 전자적 승인은 토니에 의해 제공된 공유되는 통신 채널 생성 쿼리의 프랭크의 수락을 나타낼 수 있다. 클라이언트 디바이스(101)는 그룹 기반 통신 플랫폼(105)으로 전자적 승인을 추가로 송신할 수 있다.Upon receiving a shared communication channel admission request, one or more client devices 101A-101N may generate one or more electronic grants and transmit these electronic grants to the group-based communication platform 105. Continuing from the previous example, Frank, via client device 101B, may generate an electronic grant in response to a request to accept a shared communication channel. The electronic approval may indicate Frank's acceptance of the shared communication channel creation query provided by Tony. The client device 101 may further transmit an electronic authorization to the group based communication platform 105 .

하나 이상의 클라이언트 디바이스들(101A 내지 101N)로부터 하나 이상의 전자적 승인들을 수신할 시, 그룹 기반 통신 플랫폼(105)은 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 통해 하나 이상의 채널 식별들을 하나 이상의 클라이언트 디바이스들(101A 내지 101N)과 연관시킨다. 이전 예로부터 계속하면, 클라이언트 디바이스(101B)로부터 전자적 승인을 수신할 시, 그룹 기반 통신 플랫폼(105)은 조직 X 식별, 조직 Y 식별, 및 새롭게 생성된 데이터베이스 샤드, 예컨대 데이터베이스 샤드(113N)에 기초하여 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 추가로 업데이트할 수 있다.Upon receiving one or more electronic grants from one or more client devices 101A-101N, group-based communication platform 105 sends one or more channel identifications to one or more client devices via a shard lookup table stored in main database 111. (101A to 101N). Continuing from the previous example, upon receiving the electronic authorization from the client device 101B, the group-based communication platform 105 bases the organization X identification, the organization Y identification, and the newly created database shard, e.g., database shard 113N. Thus, the shard reference table stored in the main database 111 may be additionally updated.

공유되는 통신 채널 샤드를 생성하고 샤드 참조 테이블을 업데이트함으로써, 본 개시내용은 아이덴티티 통합 이슈를 해결하는 것과 같은, 기존 시스템들을 넘는 많은 기술적 이점들을 제공한다. 위의 “토니-X/토니-Z”예로부터 계속하면, 본 개시내용에 기초하여 생성된, 조직 X와 조직 Z 사이의 외부에서 공유되는 통신 채널은 2개의 별개의 조직에서 토니의 2개의 아이덴티티들 토니-X 및 토니-Z를 조화시킬 수 있다. 샤드 참조 테이블을 업데이트하는 동안, 본 개시내용의 실시예들에 따라 구조화된 시스템들은, 예를 들어 각각의 조직과 연관된 데이터를 탐색 및 비교함으로써, 중복 사용자 아이덴티티들을 식별할 수 있다. 토니-X 및 토니-Y가 동일한 개인과 연관된다고 결정할 시에, 본 개시내용의 실시예들에 따라 구조화된 시스템들은 공유되는 통신 채널 샤드에서 통합 아이덴티티를 토니에 할당한다. 한편, 기존 시스템들은, 아이덴티티 통합 이슈를 해결할 수 없는데, 이는 그들이 공유되는 통신 채널 샤드를 생성하고/하거나 샤드 참조 테이블을 업데이트하지 못하기 때문이다.By creating a shared communication channel shard and updating the shard lookup table, the present disclosure provides many technical advantages over existing systems, such as solving the identity integration issue. Continuing from the "Tony-X/Tony-Z" example above, an externally shared communication channel between Organization X and Organization Z, created based on the present disclosure, is Tony's two identities in two distinct organizations. They can harmonize Tony-X and Tony-Z. While updating the shard lookup table, systems structured according to embodiments of the present disclosure may identify duplicate user identities, for example by searching and comparing data associated with each organization. Upon determining that Tony-X and Tony-Y are associated with the same individual, systems structured according to embodiments of the present disclosure assign Tony a unified identity in the shared communication channel shard. On the other hand, existing systems cannot solve the identity integration issue because they cannot create a shared communication channel shard and/or update a shard lookup table.

그룹 기반 통신 플랫폼(105)은 하나 이상의 생성된 데이터베이스 샤드들에 대한 하나 이상의 인터페이스들을 추가로 생성할 수 있고, 하나 이상의 인터페이스들을 클라이언트 디바이스들(101A 내지 101N)로 송신할 수 있다. 이전 예로부터 계속하면, 그룹 기반 통신 플랫폼(105)은 데이터베이스 샤드(113N)에 대한 사용자 인터페이스를 생성할 수 있고, 사용자 인터페이스를 클라이언트 디바이스들(101A, 101B)로 송신할 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼(105)은 (예컨대, 공유되는 통신 채널 속성들, 보기 특권 설정들, 또는 둘 모두에 기초하여): 적절한 데이터/인터페이스만을 클라이언트 디바이스들(101A, 101B)로 전송할 수 있거나; 데이터를 클라이언트 디바이스들(101A, 101B)로 전송하기 전에 검색 및 캐싱할 수 있거나; 클라이언트 디바이스들(101A, 101B) 상의 입들의 일부로서 사용될 수 있는 인터페이스 프로그램을 컴파일할 수 있거나; 또는 임의의 다른 적합한 동작 또는 본 명세서에서 기술되는 동작들의 조합을 수행할 수 있다.The group-based communication platform 105 may further create one or more interfaces to the one or more created database shards and transmit the one or more interfaces to the client devices 101A-101N. Continuing from the previous example, the group-based communication platform 105 can create a user interface for database shard 113N and can transmit the user interface to client devices 101A, 101B. In some embodiments, the group-based communication platform 105 (eg, based on shared communication channel attributes, viewing privilege settings, or both): only appropriate data/interface to client devices 101A, 101B. can be transmitted to; data may be retrieved and cached prior to transmission to client devices 101A, 101B; can compile an interface program that can be used as part of the mouths on client devices 101A, 101B; or any other suitable operation or combination of operations described herein.

일부 실시예들에서, 메인 데이터베이스(111)에 저장된 참조 테이블은 그룹 식별과 데이터베이스 샤드들(113A 내지 113N) 중의 데이터베이스 샤드 사이의 참조 접속들을 나타낼 수 있다. 이전 예로부터 계속하면, 클라이언트 디바이스들(101A, 101C)은 둘 모두가 조직 X 식별과 연관될 수 있고, 샤드 참조 테이블은 클라이언트 디바이스들(101A, 101B) 사이의 통신과 관련된 데이터가 데이터베이스 샤드(113A)에 저장됨을 나타낼 수 있다.In some embodiments, a lookup table stored in main database 111 may represent group identification and reference connections between database shards of database shards 113A-113N. Continuing from the previous example, client devices 101A and 101C may both be associated with an organization X identification, and the shard lookup table is data related to communication between client devices 101A and 101B in database shard 113A. ) can indicate that it is stored in.

일부 실시예들에서, 그룹 기반 통신 플랫폼(105)이 하나 이상의 클라이언트 디바이스들(101A 내지 101N)로부터 하나 이상의 전자적 승인들을 수신할 때, 그룹 기반 통신 플랫폼(105)은 새로운 참조 접속을 생성함으로써 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 업데이트할 수 있다. 예를 들어, 조직 X와 조직 Y 사이에 공유되는 통신 채널을 생성하기 위해 전자적 승인을 수신한 후, 그룹 기반 통신 플랫폼(105)은 샤드 참조 테이블을 업데이트하여, 조직 X 식별, 조직 Y 식별, 및 새롭게 생성된 데이터베이스 샤드의 식별 사이의 참조 접속을 나타낼 수 있다. In some embodiments, when the group-based communication platform 105 receives one or more electronic grants from one or more client devices 101A-101N, the group-based communication platform 105 creates a new reference connection to the main database The shard lookup table stored in (111) can be updated. For example, after receiving electronic permission to create a shared communication channel between organization X and organization Y, the group-based communication platform 105 updates the shard lookup table to identify organization X, identify organization Y, and It can indicate a reference connection between the identification of the newly created database shard.

일부 실시예들에서, 그룹 기반 통신 플랫폼(105)은 외부에서 공유되는 통신 채널 내의 하나 이상의 클라이언트 디바이스들(101A 내지 101N)로부터 수신된 전자적 메시지들을, 메시지 서버(107)를 사용하여 동일한 채널 내의 다른 클라이언트 디바이스들로 증폭할 수 있다. 예를 들어, 메시지 서버(107)는 외부에서 공유되는 통신 채널과 연관하여 클라이언트 디바이스(101A)로부터 전자적 메시지를 수신할 수 있다. 메시지 서버(107)는 네트워크 애플리케이션 서버(109)에 쿼리할 수 있고, 이는, 이어서, 메인 데이터베이스(111)에 저장된 샤드 참조 테이블에 기초하여 외부에서 공유되는 통신 채널과 연관된 하나 이상의 클라이언트 디바이스들을 식별한다. 메시지 서버(107)는 전자적 메시지를 각각의 식별된 클라이언트 디바이스로 추가로 송신할 수 있다.In some embodiments, the group-based communication platform 105 transfers electronic messages received from one or more client devices 101A-101N within an externally shared communication channel to another within the same channel using the message server 107. Can be amplified by client devices. For example, message server 107 may receive an electronic message from client device 101A in association with an externally shared communication channel. Message server 107 may query network application server 109, which in turn identifies one or more client devices associated with an externally shared communication channel based on a shard lookup table stored in main database 111. . Message server 107 may further send an electronic message to each identified client device.

일부 실시예들에 대한 기초로서, 예시적인 컴퓨팅 시스템(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 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 것을 추가로 제공할 수 있다.As a basis for some embodiments, the example computing system 100 may provide for creating a shared communication channel to a group-based communication platform 105 . The group-based communication platform 105 may include a message server 107 (eg, a real-time message server), a network application server 109, a plurality of database shards 113A to 113N, and a main database 111. . Exemplary computing system 100 provides, by means of a group-based communication platform 105 over communication network 103, from a first client device 101A associated with an initiator group identification and associated with an initiator group identification and a target group identification. It can provide for receiving a shared communication channel creation query. The example computing system 100 may further provide for creating a shared communication channel shard (eg, database shard 113N) by the network application server 109 . The plurality of database shards 113A to 113N may include a shared communication channel shard. A shared communication channel shard includes a shared communication channel identification, a first set of shared communication channel attributes associated with an initiator group identification, and a second set of shared communication channel attributes associated with a target group identification (e.g., group-based communication by the platform 105, the network application server 109, or both). The example computing system 100 can further provide for generating, by the network application server 109 , a shared communication channel accept request. A shared communication channel acceptance request may be associated with a shared communication channel identification. The exemplary computing system 100 further transmits a shared communication channel accept request by the group-based communication platform 105 over the communication network 103 to the second client device 101B associated with the target group identification. can be provided with The exemplary computing system 100 further provides for receiving a communication channel acceptance notification shared by the group-based communication platform 105 over the communication network 103 from one of the client devices 101A-101N. can do. The shared communication channel acceptance notification may include an electronic authorization to associate the shared communication channel identification with the target group identification. The exemplary computing system 100, by means of the network application server 109, identifies an initiator group, identifies a target group, identifies a shared communication channel, a first set of shared communication channel attributes, and sets of shared communication channel attributes. It may further provide updating the shard lookup table stored in the main database 111 based on the second set. The example computing system 100 causes, by the network application server 109, a first outside of a shared communication channel based on a first set of shared communication channel attributes associated with a shared communication channel shard and an initiator group identification. It is possible to further provide for generating a group-based shared communication channel interface shared in The example computing system 100 may, by the network application server 109, at a second outside of the shared communication channel based on a shared communication channel shard and a second set of shared communication channel attributes associated with the target group identification. It may further provide to create a shared group based shared communication channel interface. The exemplary computing system 100 provides a group-based shared communication shared first outside of a shared communication channel by a group-based communication platform 105 over a communication network 103 to a first client device 101A. It may further provide transmitting channel interface. The exemplary computing system 100 provides a group-based shared communication shared second outside of a shared communication channel by a group-based communication platform 105 over a communication network 103 to a second client device 101B. It may further provide transmitting channel interface.

일부 실시예들에서, 복수의 데이터베이스 샤드들(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)에 저장된 샤드 참조 테이블을 업데이트하는 것을 추가로 제공할 수 있다.In some embodiments, plurality of database shards 113A-113N may include a first database shard 113A associated with an initiator group identification. The plurality of database shards may further include a second database shard 113B associated with target group identification. The shard lookup table stored in the main database 111 may include a first reference connection between the initiator group identification and the first database shard 113A. The shard lookup table may further include a second reference connection between the target group identification and the second database shard 113B. The example computing system 100 can further provide for identifying, by the network application server 109 , a first reference connection in a shard lookup table based on the initiator group identification. The example computing system 100 can further provide for identifying the second reference connection in the shard lookup table by the network application server 109 based on the target group identification. The exemplary computing system 100 may, by the network application server 109, identify a shared communication channel, a shared communication channel shard (eg, database shard 113N), a first reference connection, and a second reference connection. It may further provide generating a third reference connection of. The example computing system 100 may further provide for updating, by the network application server 109 , a shard lookup table stored in the main database 111 to include the third reference connection.

일부 실시예들에서, 예시적인 컴퓨팅 시스템(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)에게 보일 수 없음).In some embodiments, the example computing system 100 may further provide for generating general messages, stored messages, or both based on messages received from client devices 101A-101N. there is. In one illustrative example, client device 101A and client device 101B may be associated with a first group identification and shared communication channel identification, while client device 101C (not shown) and client device ( 101D) (not shown) may be associated with a second group identification and shared communication channel identification. The group-based communication platform 105 transmits, in real time over a shared communication channel from the client device 101A, a first message (e.g., a personal message) associated with a first set of viewing privilege settings including a first personal viewing privilege setting. ) can be received. The group-based communication platform 105 transmits a first general message (based on a first message received in real time by the message server 107 and a first set of viewing privilege settings including a first personal viewing privilege setting). e.g. personal general messages). The group-based communication platform 105 may transmit, in real time by the message server 107, the first general message to other client devices associated with the first group identification (e.g., the first general message is the client device 101B), where the first general message is not sent to any client device associated with the second group identification (e.g., the first general message is not sent to client device 101C or client device 101D). not). In some cases, the first generic message may be visible to any client device associated with the first group identification in the first externally shared group-based shared communication channel interface (e.g., the first generic message may be visible to the first externally shared communication channel interface). can be seen by the client device 101A and the client device 101B on a group-based shared communication channel interface shared in), where the first general message is a second externally shared group-based shared communication channel interface. It is not visible to any client device associated with the group identification (e.g., the first general message is not visible to client device 101C or client device 101D on the second externally shared group-based shared communication channel interface).

일부 실시예들에서, 그룹 기반 통신 플랫폼(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 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하지 않음).In some embodiments, the group-based communication platform 105 determines, by the network application server 109, a first message received and a first set of viewing privilege settings, including a first personal viewing privilege setting. A first stored message (eg, a personal stored message) may be created. The group-based communication platform 105 may store the first stored message in association with the first set of viewing privilege settings, by the network application server 109 in the first database shard 113A. The group-based communication platform 105 may index, by the network application server 109, the first stored message with a first distinct index associated with the first group identification, where the first distinct index is the first group identification. Accessible to any client device associated with the identification (e.g., the first distinct index is accessible to client device 101A and client device 101B), and the first distinct index is accessible to any client associated with the second group identification. It is not accessible to the device either (eg, the first distinct index is not accessible to client device 101C or client device 101D). In some cases, the first stored message is discoverable in a first externally shared group-based shared communication channel interface by any client device associated with the first group identification (e.g., the first stored message is the client device 101A and a first externally shared group-based shared communication channel by client device 101B discoverable on an interface), wherein a first stored message is seconded by any client device associated with a second group identification on the interface. not discoverable on an externally shared group-based shared communication channel (e.g., a first stored message is not discoverable on a second externally shared group-based shared communication channel interface by client device 101C or client device 101D) not navigable).

이전 예시적인 예로부터 계속하는 다른 예시적인 예에서, 그룹 기반 통신 플랫폼(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)에게 보일 수 없음).In another illustrative example continuing from the previous illustrative example, the group-based communication platform 105 provides, in real time over a shared communication channel from the client device 101B, the viewing privilege settings including the first public viewing privilege setting. A second message (eg, a public message) associated with the second set may be received. The group-based communication platform 105 sends a second general message based on the second message received in real time by the message server 107 and the second set of viewing privilege settings including the first public viewing privilege setting. e.g. public general messages). The group-based communication platform 105 may transmit, in real time by the message server 107, a second general message to other client devices associated with a shared communication channel identification (e.g., the first general message is a client device (101B), sent to client device 101C, and client device 101D). In some cases, the second general message may be visible to any client device associated with the shared communication channel identification (eg, the second general message is client device 101A, client device 101B, client device 101C ), and visible to the client device 101D). For example, the second general message may be visible to any client device associated with the first group identification in the first externally shared group-based shared communication channel interface (e.g., the second general message may be shared with the first externally). visible to the client device 101A and the client device 101B on the group-based shared communication channel interface), the second general message is a second group identification and a second group identification on the second externally shared group-based shared communication channel interface Visible to any associated client device (e.g., the second general message is not visible to client device 101C or client device 101D in the second externally shared group-based shared communication channel interface).

그룹 기반 통신 플랫폼(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 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하지 않음).The group-based communication platform 105 sends, by the network application server 109, a second stored message (e.g., based on the second message received and the second set of viewing privilege settings including the first public viewing privilege setting). , publicly stored messages). The group-based communication platform 105 may store the first stored message in association with the first set of viewing privilege settings, by the network application server 109 in the first database shard 113A. The group-based communication platform 105 may index, by the network application server 109, the second stored message with a shared index associated with the first group identification and the second group identification, where the shared index is the first group identification. Accessible to any client device associated with the group identification or second group identification (e.g., the shared index accesses client device 101A, client device 101B, client device 101C, and client device 101D). possible). In some cases, the second stored message is discoverable by the first group identification or any client device associated with the second group identification (eg, the second stored message is client device 101A, client device 101B). , discoverable by client device 101C, and client device 101D). For example, the second stored message is discoverable in a group-based shared communication channel interface that is first externally shared by any client device associated with the first group identification (e.g., the second stored message is the client device 101A ) and a group-based shared communication channel shared first externally by client device 101B discoverable in the interface), the second stored message is second externally shared by any client device associated with the second group identification in the interface. Not discoverable on a shared group-based shared communication channel (e.g., the second stored message is discoverable on a second externally shared group-based shared communication channel interface by client device 101C or client device 101D) not).

이전 예시적인 예들로부터 계속하는 또는 다른 예시적인 예에서, 그룹 기반 통신 플랫폼(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)에게 보일 수 없음).Continuing from the previous illustrative examples or in another illustrative example, the group-based communication platform 105 sets viewing privileges, including setting second personal viewing privileges, in real time over a shared communication channel from client device 101C. may receive a third message (eg, a personal message) associated with a third set of . The group-based communication platform 105 sends a third general message (based on the third message received in real time by the message server 107, and a third set of viewing privilege settings including the second personal viewing privilege setting). e.g. personal general messages). The group-based communication platform 105 may transmit, in real time by the message server 107, a third general message to other client devices associated with the second group identification (e.g., the third general message is the client device 101D), where the third general message is not sent to any client device associated with the first group identification (e.g., the third general message is not sent to client device 101A or client device 101B). not). In some cases, the third general message may be visible to any client device associated with the second group identification in the second externally shared group-based shared communication channel interface (e.g., the third general message may be visible to the second externally shared communication channel interface) can be seen by the client device 101C and the client device 101D on a group-based shared communication channel interface shared in), where the third general message is a first externally shared group-based shared communication channel interface. It is not visible to any client device associated with the group identification (e.g., the third general message is not visible to client device 101A or client device 101B in the first externally shared group-based shared communication channel interface).

그룹 기반 통신 플랫폼(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)에 의해 탐색가능하지 않음).Group-based communication platform 105 sends, by network application server 109, a third stored message (e.g. , personally stored messages). The group-based communication platform 105 may store a third stored message in association with a third set of viewing privilege settings, by the network application server 109 in the second database shard 113B. The group-based communication platform 105 may index, by the network application server 109, the third stored message with a second distinct index associated with the second group identification, where the second distinct index is associated with the second group identification. Accessible to any client device associated with the identification (e.g., the second distinct index is accessible to client device 101C and client device 101D), and the second distinct index is accessible to any client associated with the first group identification. It is not accessible to the device either (eg, the second distinct index is not accessible to client device 101A or client device 101B). In some cases, the third stored message may be discoverable by any client device associated with the second group identification in a second externally shared group-based shared communication channel interface (e.g., the third stored message may be 2 externally shared group-based shared communication channel interface discoverable by client device 101C and client device 101D), where the third stored message is stored in a first externally-shared group-based shared communication channel interface. is not discoverable by any client device associated with the first group identification (e.g., the third stored message is not discoverable by client device 101A or client device 101B on the first externally shared group-based shared communication channel interface) not navigable).

이전 예시적인 예들로부터 계속하는 또는 다른 예시적인 예에서, 그룹 기반 통신 플랫폼(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)에게 보일 수 없음).Continuing from the previous illustrative examples or in another illustrative example, the group-based communication platform 105 sets viewing privileges, including setting second public viewing privileges, in real time over a shared communication channel from client device 101D. may receive a fourth message (eg, a public message) associated with a fourth set of . The group-based communication platform 105 transmits a fourth general message based on a fourth message received in real time by the message server 107 and a fourth set of viewing privilege settings including a second public viewing privilege setting ( e.g. public general messages). The group-based communication platform 105 may transmit, in real time by the message server 107, a fourth general message to another client device associated with a shared communication channel identification (e.g., the fourth general message is a client device ( 101A), sent to client device 101B, and client device 101C). In some cases, the fourth general message may be visible to any client device associated with the shared communication channel identification (eg, the fourth general message is client device 101A, client device 101B, client device 101C ), and visible to the client device 101D). For example, the fourth general message may be visible to any client device associated with the first group identification on the first externally shared group-based shared communication channel interface (e.g., the fourth general message may be shared with the first externally shared communication channel interface). can be seen by the client device 101A and the client device 101B in the group-based shared communication channel interface), the fourth general message is a second group identification and a second group identification in the second externally shared group-based shared communication channel interface Visible to any associated client device (e.g., the fourth general message is not visible to client device 101C or client device 101D in the second externally shared group-based shared communication channel interface).

그룹 기반 통신 플랫폼(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 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하지 않음).The group-based communication platform 105 sends, by the network application server 109, a fourth stored message (eg , publicly stored messages). The group-based communication platform 105 may store a fourth stored message in association with the fourth set of viewing privilege settings, by the network application server 109 in the second database shard 113B. The group-based communication platform 105 may index, by the network application server 109, the fourth stored message with a shared index associated with the first group identification and the second group identification, where the shared index is the first group identification. Accessible to any client device associated with the group identification or second group identification (e.g., the shared index accesses client device 101A, client device 101B, client device 101C, and client device 101D). possible). In some cases, the fourth stored message is discoverable by any client device associated with the first group identification or the second group identification (eg, the fourth stored message is client device 101A, client device 101B). , discoverable by client device 101C, and client device 101D). For example, the fourth stored message is discoverable in a group-based shared communication channel interface that is first externally shared by any client device associated with the first group identification (e.g., the fourth stored message is the client device 101A ) and a group-based shared communication channel shared first externally by client device 101B discoverable in the interface), a fourth stored message is second externally shared by any client device associated with a second group identification in the interface. not discoverable in a shared group-based shared communication channel (e.g., the fourth stored message is discoverable in a second externally shared group-based shared communication channel interface by client device 101C or client device 101D) not).

위에 언급된 전자적 정보 교환은 기존 시스템들을 넘는 다양한 기술적 이점들을 제공한다. 예를 들어, 그것은 통신 네트워크(103)로 디스패치된 메시지들의 과중한 부담 없이 데이터의 정보 검색 및 발송을 허용한다. 또한, 데이터의 강건성은, 통신 네트워크(103)의 구성에 기초한 발송 속도와 함께, 메시지 서버(107) 또는 네트워크 애플리케이션 서버(109) 중 어느 하나를 활용하라는 옵션을 그룹 기반 통신 플랫폼(105)에 제공한다. 또한, 그것은, 아래에서 추가로 논의되는 바와 같이, 외부 애플리케이션들(그룹 기반 통신 플랫폼(105)을 위해 개발됨)이 웹소켓 또는 RPC API들(이들은 메시지 서버(107) 또는 네트워크 애플리케이션 서버(109)를 추가로 사용할 수 있음))을 사용하여 메시지들을 방출하도록 하는 옵션을 제공한다. The electronic information exchange mentioned above offers various technological advantages over existing systems. For example, it allows information retrieval and forwarding of data without the overburden of messages dispatched to the communication network 103. In addition, the robustness of the data provides the group-based communication platform 105 with the option to utilize either the message server 107 or the network application server 109, with the speed of delivery based on the configuration of the communication network 103. do. In addition, it allows external applications (developed for group-based communication platform 105) to use WebSocket or RPC APIs (these are Message Server 107 or Network Application Server 109), as discussed further below. can be used additionally)) to provide an option to emit messages.

본 개시내용의 실시예들을 구현하기 위한 예시적인 장치Exemplary Apparatus for Implementing Embodiments of the Present Disclosure

메시지 서버(107)는 도 2에 도시된 장치(200)와 같은 하나 이상의 컴퓨팅 시스템들에 의해 구현될 수 있다. 장치(200)는 프로세서(202), 메모리(204), 입력/출력 회로(206), 통신 회로(208), 및 메시지 증폭기 회로(210)를 포함할 수 있다. 장치(200)는 도 1과 관련하여 전술되고 도 4 내지 도 7과 관련하여 후술되는 동작들을 실행시키도록 구성될 수 있다. 이러한 컴포넌트들(202 내지 210)이 기능 제한사항들과 관련하여 기술되지만, 특정 구현예들이 특정 하드웨어의 사용을 반드시 포함한다는 것이 이해되어야 한다. 또한, 이러한 컴포넌트들(202 내지 210) 중 소정의 컴포넌트들이 유사한 또는 공통 하드웨어를 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 회로들의 2개의 세트들 둘 모두는 동일한 프로세서, 네트워크 인터페이스, 저장 매체 등의 사용을 레버리징하여 그들의 연관된 기능들을 수행하여, 회로들의 각각의 세트에 대해 복제 하드웨어가 요구되지 않게 할 수 있다.Message server 107 may be implemented by one or more computing systems, such as device 200 shown in FIG. 2 . Apparatus 200 may include processor 202 , memory 204 , input/output circuitry 206 , communication circuitry 208 , and message amplifier circuitry 210 . Apparatus 200 may be configured to perform the operations described above with respect to FIG. 1 and below with respect to FIGS. 4-7 . Although these components 202-210 are described with respect to functional limitations, it should be understood that certain implementations necessarily involve the use of specific hardware. It should also be understood that some of these components 202-210 may include similar or common hardware. For example, both sets of circuits can leverage use of the same processor, network interface, storage medium, etc. to perform their associated functions, so that duplicate hardware is not required for each set of circuits. there is.

일부 실시예들에서, 프로세서(202)(및/또는 프로세서를 보조하거나 달리 그와 연관된 코-프로세서 또는 임의의 다른 프로세싱 회로)는 장치의 컴포넌트들 사이에 정보를 전달하기 위한 버스를 통해 메모리(204)와 통신할 수 있다. 메모리(204)는 비일시적이고, 예를 들어, 하나 이상의 휘발성 및/또는 비휘발성 메모리들을 포함할 수 있다. 다시 말하면, 예를 들어, 메모리(204)는 전자적 저장 디바이스(예컨대, 컴퓨터 판독가능 저장 매체)일 수 있다. 메모리(204)는 장치가 본 개시내용의 예시적인 실시예들에 따라 다양한 기능들을 수행할 수 있게 하기 위한 정보, 데이터, 콘텐츠, 애플리케이션들, 명령어들 등을 저장하도록 구성될 수 있다.In some embodiments, the processor 202 (and/or a co-processor or any other processing circuitry that assists or is otherwise associated with the processor) connects the memory 204 via a bus to transfer information between components of the device. ) can communicate with. Memory 204 is non-transitory and may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, memory 204 may be an electronic storage device (eg, a computer-readable storage medium). Memory 204 may be configured to store information, data, content, applications, instructions, etc. for enabling a device to perform various functions in accordance with example embodiments of the present disclosure.

프로세서(202)는 다수의 상이한 방식들로 구현될 수 있고, 예를 들어, 독립적으로 수행하도록 구성된 하나 이상의 프로세싱 디바이스들을 포함할 수 있다. 일부 실시예들에서, 프로세서(202)는 명령어들, 파이프라이닝, 및/또는 멀티스레딩의 독립적인 실행을 가능하게 하기 위해 버스를 통해 나란히 구성되는 하나 이상의 프로세서들을 포함할 수 있다. 용어 "프로세싱 회로"는 단일 코어 프로세서, 멀티-코어 프로세서, 장치 내부의 다수의 프로세서들, 및/또는 원격 또는 "클라우드" 프로세서들을 포함하는 것으로 이해될 수 있다.Processor 202 can be implemented in a number of different ways and can include, for example, one or more processing devices configured to perform independently. In some embodiments, processor 202 may include one or more processors configured side by side via a bus to enable independent execution of instructions, pipelining, and/or multithreading. The term "processing circuitry" may be understood to include single core processors, multi-core processors, multiple processors within a device, and/or remote or "cloud" processors.

일부 실시예들에서, 프로세서(202)는 메모리(204)에 저장되거나 달리 프로세서(202)에 액세스가능한 명령어들을 실행시키도록 구성될 수 있다. 일부 실시예들에서, 프로세서(202)는 하드-코딩된 기능들을 실행하도록 구성될 수 있다. 이와 같이, 하드웨어 또는 소프트웨어 방법들에 의해 구성되든, 또는 이들의 조합에 의해 구성되든, 프로세서(202)는, 이에 따라 구성되는 동안 본 개시내용의 실시예에 따라 동작들을 수행할 수 있는 엔티티(예컨대, 회로에서 물리적으로 구현됨)를 표현할 수 있다. 대안으로, 다른 예로서, 프로세서(202)가 소프트웨어 명령어들의 실행으로서 구현될 때, 명령어들은, 특히, 명령어들이 실행될 때 본 명세서에 기술된 알고리즘들 및/또는 동작들을 수행하도록 프로세서(202)를 구성할 수 있다.In some embodiments, processor 202 may be configured to execute instructions stored in memory 204 or otherwise accessible to processor 202 . In some embodiments, processor 202 may be configured to execute hard-coded functions. As such, whether configured by hardware or software methods, or a combination thereof, the processor 202, while configured accordingly, is an entity capable of performing operations in accordance with an embodiment of the present disclosure (e.g., , physically implemented in the circuit). Alternatively, as another example, when processor 202 is implemented as an execution of software instructions, the instructions, in particular, when executed, configure processor 202 to perform the algorithms and/or operations described herein. can do.

일부 실시예들에서, 장치(200)는, 이어서, 프로세서(202)와 통신하여, 사용자에게 출력을 제공하고, 일부 실시예들에서, 사용자 입력의 표시를 수신할 수 있는 입력/출력 회로(206)를 포함할 수 있다. 입력/출력 회로(206)는 사용자 인터페이스를 포함할 수 있고, 디스플레이를 포함할 수 있고, 공유되는 통신 채널의 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스(예컨대, 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스, 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스), 웹 사용자 인터페이스, 모바일 애플리케이션, 클라이언트 디바이스, 키오스크 등을 포함할 수 있다. 일부 실시예들에서, 입력/출력 회로(206)는, 또한, 키보드, 마우스, 조이스틱, 터치스크린, 터치 영역들, 소프트 키들, 마이크로폰, 스피커, 또는 다른 입력/출력 메커니즘들을 포함할 수 있다. 프로세서 및/또는 프로세서를 포함하는 사용자 인터페이스 회로는 프로세서에 액세스가능한 메모리(예컨대, 메모리(204) 등) 상에 저장된 컴퓨터 프로그램 명령어들(예컨대, 소프트웨어 및/또는 펌웨어)을 통해 하나 이상의 사용자 인터페이스 요소들의 하나 이상의 기능들을 제어하도록 구성될 수 있다.In some embodiments, device 200 may then communicate with processor 202 to provide output to a user and, in some embodiments, input/output circuitry 206 that may receive an indication of user input. ) may be included. Input/output circuitry 206 may include a user interface, may include a display, and may include a group-based shared communication channel interface shared outside of a shared communication channel (e.g., a first outside-shared group-based A shared communication channel interface, a second externally shared group-based shared communication channel interface), a web user interface, a mobile application, a client device, a kiosk, and the like. In some embodiments, input/output circuitry 206 may also include a keyboard, mouse, joystick, touchscreen, touch areas, soft keys, microphone, speaker, or other input/output mechanisms. The processor and/or user interface circuitry comprising the processor may provide access to one or more user interface elements via computer program instructions (eg, software and/or firmware) stored on a memory accessible to the processor (eg, memory 204, etc.). It may be configured to control one or more functions.

통신 회로(208)는 네트워크 및/또는 장치(200)와 통신하는 임의의 다른 디바이스, 회로, 또는 모듈로부터/로 데이터를 수신하고/하거나 송신하도록 구성되는 하드웨어 또는 하드웨어와 소프트웨어의 조합 중 어느 하나로 구현되는 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 통신 회로(208)는, 예를 들어 유선 또는 무선 통신 네트워크와의 통신을 가능하게 하기 위한 네트워크 인터페이스를 포함할 수 있다. 예를 들어, 통신 회로(208)는 네트워크를 통한 통신을 가능하게 하는 데 적합한 하나 이상의 네트워크 인터페이스 카드들, 안테나들, 버스들, 스위치들, 라우터들, 모뎀들, 및 지원 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 추가로 또는 대안으로, 통신 회로(208)는 안테나/안테나들과 상호작용하여 안테나/안테나들을 통한 신호들의 송신을 야기하거나 안테나/안테나들을 통해 수신되는 신호들의 수신을 처리하기 위한 회로를 포함할 수 있다.Communication circuitry 208 is implemented in either hardware or a combination of hardware and software configured to receive and/or transmit data to/from the network and/or any other device, circuit, or module that communicates with apparatus 200. It can be any means, such as a device or circuit that becomes. In this regard, communication circuitry 208 may include, for example, a network interface to enable communication with a wired or wireless communication network. For example, communication circuitry 208 may include one or more network interface cards, antennas, buses, switches, routers, modems, and supporting hardware and/or software suitable for enabling communication over a network. can include Additionally or alternatively, communications circuitry 208 may include circuitry for interacting with the antenna/antennas to cause transmission of signals via the antenna/antennas or to process reception of signals received via the antenna/antennas. there is.

메시지 증폭기 회로(210)는 데이터베이스 샤드(들)에 기초하여 하나 이상의 클라이언트 디바이스들로부터 수신된 전자적 메시지들 및 연관된 메타데이터를 복사하고 다른 클라이언트 디바이스들로 증폭하도록(예컨대, 하나 이상의 회로들 또는 디바이스들로 송신하도록; 브로드캐스트하도록; 멀티캐스트하도록; 유니캐스트하도록) 구성된 하드웨어를 포함한다. 메시지 증폭기 회로(210)는 프로세서(202)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 그러나, 일부 실시예들에서, 메시지 증폭기 회로(210)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 본 명세서에서 기술되는 기능들을 수행하기 위한 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 메시지 증폭기 회로(210)는 이러한 계획된 기능들을 구현하기 위한 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.Message amplifier circuitry 210 is configured to copy and amplify (e.g., one or more circuits or devices) electronic messages and associated metadata received from one or more client devices to other client devices based on the database shard(s). to transmit; to broadcast; to multicast; to unicast). Message amplifier circuit 210 may utilize processing circuitry such as processor 202 to perform these actions. However, in some embodiments, the message amplifier circuit 210 may be a separate processor, a specially configured Field Programmable Gate Array (FPGA), or an application specific semiconductor device to perform the functions described herein. Specific Integrated Circuit, ASIC). The message amplifier circuit 210 may be implemented using hardware components of an apparatus configured by either hardware or software to implement these planned functions.

또한, 본 명세서에서 논의된 정보의 전부 또는 일부가 장치(200)의 하나 이상의 컴포넌트들에 의해 수신되고/되거나 생성되고/되거나 유지되는 데이터에 기초할 수 있다는 것에 유의한다. 일부 실시예들에서, (원격 클라우드 컴퓨팅 및/또는 데이터 저장 시스템과 같은) 하나 이상의 외부 시스템들은 또한 본 명세서에서 논의되는 기능의 적어도 일부를 제공하도록 레버리징될 수 있다.Also note that all or part of the information discussed herein may be based on data received, generated, and/or maintained by one or more components of apparatus 200. In some embodiments, one or more external systems (such as remote cloud computing and/or data storage systems) may also be leveraged to provide at least some of the functionality discussed herein.

네트워크 애플리케이션 서버(109)는 도 3에 도시된 장치(300)와 같은 하나 이상의 컴퓨팅 시스템들에 의해 구현될 수 있다. 장치(300)는 프로세서(301), 메모리(303), 입력/출력 회로(305), 통신 회로(307), 데이터베이스 회로(309), 인터페이스 생성 회로(311), 및 참조 테이블 생성 회로(313)를 포함할 수 있다. 장치(300)는 도 1과 관련하여 전술되고 도 4 내지 도 7과 관련하여 후술되는 동작들을 실행시키도록 구성될 수 있다. 이러한 컴포넌트들(301 내지 313)이 기능 제한사항들과 관련하여 기술되지만, 특정 구현예들이 특정 하드웨어의 사용을 반드시 포함한다는 것이 이해되어야 한다. 또한, 이러한 컴포넌트들(301 내지 313) 중 소정의 컴포넌트들이 유사한 또는 공통 하드웨어를 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 회로들의 2개의 세트들 둘 모두는 동일한 프로세서, 네트워크 인터페이스, 저장 매체 등의 사용을 레버리징하여 그들의 연관된 기능들을 수행하여, 회로들의 각각의 세트에 대해 복제 하드웨어가 요구되지 않게 할 수 있다.Network application server 109 may be implemented by one or more computing systems, such as device 300 shown in FIG. 3 . Apparatus 300 includes processor 301, memory 303, input/output circuitry 305, communication circuitry 307, database circuitry 309, interface generation circuitry 311, and lookup table generation circuitry 313. can include Apparatus 300 may be configured to perform the operations described above with respect to FIG. 1 and below with respect to FIGS. 4-7 . Although these components 301 - 313 are described with respect to functional limitations, it should be understood that particular implementations necessarily involve the use of particular hardware. It should also be understood that some of these components 301-313 may include similar or common hardware. For example, both sets of circuits can leverage use of the same processor, network interface, storage medium, etc. to perform their associated functions, so that duplicate hardware is not required for each set of circuits. there is.

일부 실시예들에서, 프로세서(301)(및/또는 프로세서를 보조하거나 달리 그와 연관된 코-프로세서 또는 임의의 다른 프로세싱 회로)는 장치의 컴포넌트들 사이에 정보를 전달하기 위한 버스를 통해 메모리(303)와 통신할 수 있다. 메모리(303)는 비일시적이고, 예를 들어, 하나 이상의 휘발성 및/또는 비휘발성 메모리들을 포함할 수 있다. 다시 말하면, 예를 들어, 메모리(303)는 전자적 저장 디바이스(예컨대, 컴퓨터 판독가능 저장 매체)일 수 있다. 메모리(303)는 장치(300)가 본 개시내용의 예시적인 실시예들에 따라 다양한 기능들을 수행할 수 있게 하기 위한 정보, 데이터, 콘텐츠, 애플리케이션들, 명령어들 등을 저장하도록 구성될 수 있다.In some embodiments, the processor 301 (and/or a co-processor or any other processing circuitry that assists or is otherwise associated with the processor) connects the memory 303 via a bus to transfer information between components of the device. ) can communicate with. Memory 303 is non-transitory and may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, memory 303 may be an electronic storage device (eg, a computer-readable storage medium). Memory 303 may be configured to store information, data, content, applications, instructions, etc. for enabling device 300 to perform various functions in accordance with example embodiments of the present disclosure.

프로세서(301)는 다수의 상이한 방식들로 구현될 수 있고, 예를 들어, 독립적으로 수행하도록 구성된 하나 이상의 프로세싱 디바이스들을 포함할 수 있다. 일부 실시예들에서, 프로세서(301)는 명령어들, 파이프라이닝, 및/또는 멀티스레딩의 독립적인 실행을 가능하게 하기 위해 버스를 통해 나란히 구성되는 하나 이상의 프로세서들을 포함할 수 있다. Processor 301 can be implemented in a number of different ways and can include, for example, one or more processing devices configured to perform independently. In some embodiments, processor 301 may include one or more processors configured side by side via a bus to enable independent execution of instructions, pipelining, and/or multithreading.

일부 실시예들에서, 프로세서(301)는 메모리(303)에 저장되거나 달리 프로세서(301)에 액세스가능한 명령어들을 실행시키도록 구성될 수 있다. 일부 실시예들에서, 프로세서(301)는 하드-코딩된 기능들을 실행하도록 구성될 수 있다. 이와 같이, 하드웨어 또는 소프트웨어 방법들에 의해 구성되든, 또는 이들의 조합에 의해 구성되든, 프로세서(301)는, 이에 따라 구성되는 동안 본 개시내용의 실시예에 따라 동작들을 수행할 수 있는 엔티티(예컨대, 회로에서 물리적으로 구현됨)를 표현할 수 있다. 대안으로, 다른 예로서, 프로세서(301)가 소프트웨어 명령어들의 실행으로서 구현될 때, 명령어들은, 특히, 명령어들이 실행될 때 본 명세서에 기술된 알고리즘들 및/또는 동작들을 수행하도록 프로세서(301)를 구성할 수 있다.In some embodiments, processor 301 may be configured to execute instructions stored in memory 303 or otherwise accessible to processor 301 . In some embodiments, processor 301 may be configured to execute hard-coded functions. As such, processor 301, whether configured by hardware or software methods, or a combination thereof, is an entity capable of performing operations in accordance with an embodiment of the present disclosure while configured accordingly (e.g., , physically implemented in the circuit). Alternatively, as another example, when processor 301 is implemented as an execution of software instructions, the instructions, in particular, when executed, configure processor 301 to perform the algorithms and/or operations described herein. can do.

일부 실시예들에서, 장치(300)는, 이어서, 프로세서(301)와 통신하여, 사용자에게 출력을 제공하고, 일부 실시예들에서, 사용자 입력의 표시를 수신할 수 있는 입력/출력 회로(305)를 포함할 수 있다. 입력/출력 회로(305)는 사용자 인터페이스를 포함할 수 있고, 디스플레이를 포함할 수 있고, 공유되는 통신 채널의 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스(예컨대, 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스, 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스), 웹 사용자 인터페이스, 모바일 애플리케이션, 클라이언트 디바이스, 키오스크 등을 포함할 수 있다. 일부 실시예들에서, 입력/출력 회로(305)는, 또한, 키보드, 마우스, 조이스틱, 터치스크린, 터치 영역들, 소프트 키들, 마이크로폰, 스피커, 또는 다른 입력/출력 메커니즘들을 포함할 수 있다. In some embodiments, device 300 may then communicate with processor 301 to provide output to a user and, in some embodiments, input/output circuitry 305 that may receive an indication of user input. ) may be included. The input/output circuitry 305 may include a user interface, may include a display, and may include a group-based shared communication channel interface shared outside of a shared communication channel (e.g., a first outside-shared group-based A shared communication channel interface, a second externally shared group-based shared communication channel interface), a web user interface, a mobile application, a client device, a kiosk, and the like. In some embodiments, input/output circuitry 305 may also include a keyboard, mouse, joystick, touchscreen, touch areas, soft keys, microphone, speaker, or other input/output mechanisms.

통신 회로(307)는 네트워크 및/또는 장치(300)와 통신하는 임의의 다른 디바이스, 회로, 또는 모듈로부터/로 데이터를 수신하고/하거나 송신하도록 구성되는 하드웨어 또는 하드웨어와 소프트웨어의 조합 중 어느 하나로 구현되는 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 통신 회로(307)는, 예를 들어 유선 또는 무선 통신 네트워크와의 통신을 가능하게 하기 위한 네트워크 인터페이스를 포함할 수 있다. 예를 들어, 통신 회로(307)는 네트워크를 통한 통신을 가능하게 하는 데 적합한 하나 이상의 네트워크 인터페이스 카드들, 안테나들, 버스들, 스위치들, 라우터들, 모뎀들, 및 지원 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 추가로 또는 대안으로, 통신 회로(307)는 안테나/안테나들과 상호작용하여 안테나/안테나들을 통한 신호들의 송신을 야기하거나 안테나/안테나들을 통해 수신되는 신호들의 수신을 처리하기 위한 회로를 포함할 수 있다.Communication circuitry 307 is implemented in either hardware or a combination of hardware and software configured to receive and/or transmit data to/from a network and/or any other device, circuit, or module that communicates with apparatus 300. It can be any means, such as a device or circuit that becomes. In this regard, communication circuitry 307 may include, for example, a network interface to enable communication with a wired or wireless communication network. For example, communication circuitry 307 may include one or more network interface cards, antennas, buses, switches, routers, modems, and supporting hardware and/or software suitable for enabling communication over a network. can include Additionally or alternatively, communications circuitry 307 may include circuitry for interacting with the antenna/antennas to cause transmission of signals via the antenna/antennas or to process reception of signals received via the antenna/antennas. there is.

일부 실시예들에서, 통신 회로(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 클라이언트 디바이스로부터 공유되는 통신 채널을 통해, 보기 특권 설정들의 세트와 연관된 메시지를 수신하도록 추가로 구성될 수 있다.In some embodiments, communication circuitry 307, communication circuitry 208, or both create a shared communication channel associated with an initiator group identification and a target group identification, from a first client device associated with an initiator group identification. Can be configured to receive queries. The communication circuitry 307 , the communication circuitry 208 , or both may be further configured to transmit a shared communication channel accept request to a second client device associated with the target group identification. Communication circuitry 307 , communication circuitry 208 , or both may be further configured to receive a shared communication channel acceptance notification. The communication circuitry 307, the communication circuitry 208, or both may be further configured to transmit, to the first client device, a group-based shared communication channel interface shared first outside of the shared communication channel. . The communication circuitry 307, the communication circuitry 208, or both may be further configured to transmit, to the second client device, a shared group-based shared communication channel interface a second outside of the shared communication channel. . The communication circuitry 307, the communication circuitry 208, or both may be further configured to receive a message associated with the set of viewing privilege settings, over the shared communication channel, from a third client device associated with the initiator group identification. can The communication circuitry 307, the communication circuitry 208, or both are further to receive, over a shared communication channel, a second message associated with a second set of viewing privilege settings from a fourth client device associated with the target group identification. may consist of The communication circuitry 307, the communication circuitry 208, or both may be further configured to receive a message associated with the set of viewing privilege settings, over the shared communication channel, from a third client device associated with the initiator group identification. can

데이터베이스 회로(309)는 데이터베이스 샤드들(113A 내지 113N) 및 메인 데이터베이스(111)를 포함하는, 하나 이상의 네트워크 데이터베이스들을 관리하도록 구성된 하드웨어를 포함한다. 데이터베이스 회로(309)는 프로세서(301)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 데이터베이스 회로(309)는 데이터를 인터페이스 생성 회로(311) 및 참조 테이블 생성 회로(313)로 송신할 수 있다. 일부 실시예들에서, 전송된 데이터는 하나 이상의 데이터베이스 샤드들(113A 내지 113N)과 연관될 수 있다.Database circuitry 309 includes hardware configured to manage one or more network databases, including database shards 113A through 113N and main database 111 . Database circuitry 309 may utilize processing circuitry such as processor 301 to perform these actions. The database circuit 309 may send data to the interface generation circuit 311 and the lookup table generation circuit 313 . In some embodiments, the transmitted data may be associated with one or more database shards 113A-113N.

일부 실시예들에서, 데이터베이스 회로(309)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 일부 구현예들에서, 후술되는 참조 테이블 생성 회로(313) 및 인터페이스 생성 회로(311)는 데이터베이스 회로(309)에 속하는 서브회로들일 수 있다. 데이터베이스 회로(309)는 본 명세서에서 기술되는 기능들을 구현하기 위해 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.In some embodiments, database circuitry 309 may include a discrete processor, a specially configured Field Programmable Gate Array (FPGA), or an Application Specific Integrated Circuit (ASIC). In some implementations, the lookup table generation circuit 313 and the interface generation circuit 311 described below may be subcircuits belonging to the database circuit 309 . Database circuitry 309 may be implemented using hardware components of an apparatus configured either by hardware or software to implement the functions described herein.

일부 실시예들에서, 데이터베이스 회로(309)는, 통신 회로(307)로부터, 공유되는 통신 채널 생성 쿼리를 수신하도록 구성될 수 있다. 데이터베이스 회로(309)는 공유되는 통신 채널 샤드를 생성하도록 추가로 구성될 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 데이터베이스 회로(309)는 공유되는 통신 채널 수락 요청을 생성하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 데이터베이스 회로(309)는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로의 송신을 위한 통신 회로(307)로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 데이터베이스 회로(309)는, 통신 회로(307)로부터, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. In some embodiments, database circuitry 309 may be configured to receive a shared communication channel creation query from communication circuitry 307 . Database circuitry 309 may be further configured to create shared communication channel shards. A plurality of database shards may include a shared communication channel shard. A shared communication channel shard may be assigned a first set of shared communication channel attributes associated with a shared communication channel identification, an initiator group identification, and a second set of shared communication channel attributes associated with a target group identification. Database circuitry 309 may be further configured to generate shared communication channel accept requests. A shared communication channel acceptance request may be associated with a shared communication channel identification. The database circuitry 309 may be further configured to transmit a shared communication channel accept request to the communication circuitry 307 for transmission to a second client device associated with the target group identification. The database circuitry 309 may be further configured to receive a shared communication channel acceptance notification from the communication circuitry 307 . The shared communication channel acceptance notification may include an electronic authorization to associate the shared communication channel identification with the target group identification.

일부 실시예들에서, 데이터베이스 회로(309)는 통신 회로(307)로부터 보기 특권 설정들의 세트와 연관된 메시지를 수신하도록 추가로 구성될 수 있다. 데이터베이스 회로(309)는 수신된 메시지 및 보기 특권 설정들의 세트에 기초하여 저장 메시지를 생성하도록 추가로 구성될 수 있다. 데이터베이스 회로(309)는 제1 데이터베이스 샤드에 보기 특권 설정들의 세트와 연관하여 저장 메시지를 저장하도록 추가로 구성될 수 있다. 보기 특권 설정들의 세트가 개인적 보기 특권 설정을 포함하는 실시예들에서, 데이터베이스 회로(309)는 개시자 그룹 식별과 연관된 별개의 인덱스로 저장 메시지를 인덱싱하도록 추가로 구성될 수 있으며, 여기서 별개의 인덱스는 개시자 그룹 식별과 연관된 어떠한 클라이언트 디바이에도 액세스가능하지 않고, 별개의 인덱스는 타깃 그룹 식별과 연관된 어떠한 클라이언트 디바이스에도 액세스가능하지 않다. 보기 특권 설정들의 세트가 공개적 보기 특권 설정을 포함하는 실시예들에서, 데이터베이스 회로(309)는 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 인덱스로 저장 메시지를 인덱싱하도록 추가로 구성될 수 있으며, 여기서 공유되는 인덱스는 제1 클라이언트 디바이스 및 제2 클라이언트 디바이스에 액세스가능하다.In some embodiments, database circuitry 309 may be further configured to receive a message associated with a set of viewing privilege settings from communication circuitry 307 . Database circuitry 309 may be further configured to generate a store message based on the received message and the set of viewing privilege settings. The database circuitry 309 may be further configured to store a store message in association with the set of view privilege settings in the first database shard. In embodiments where the set of view privilege settings includes a personal view privilege setting, database circuitry 309 may be further configured to index the store message with a separate index associated with the initiator group identification, where the separate index is not accessible to any client device associated with the initiator group identity, and the separate index is not accessible to any client device associated with the target group identity. In embodiments where the set of viewing privilege settings includes a public viewing privilege setting, database circuitry 309 may be further configured to index the store message with a shared index associated with an initiator group identification and a target group identification; The index shared here is accessible to the first client device and the second client device.

참조 테이블 생성 회로(313)는 메인 데이터베이스(111)에 샤드 참조 테이블 스토어를 생성 및 업데이트하도록 구성된 하드웨어를 포함한다. 참조 테이블 생성 회로(313)는 프로세서(301)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 그러나, 일부 실시예들에서, 참조 테이블 생성 회로(313)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 본 명세서에서 기술되는 기능들을 수행하기 위한 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 참조 테이블 생성 회로(313)는 이러한 계획된 기능들을 구현하기 위한 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.The lookup table creation circuitry 313 includes hardware configured to create and update a shard lookup table store in the main database 111 . Lookup table generation circuitry 313 may utilize processing circuitry such as processor 301 to perform these actions. However, in some embodiments, the lookup table generation circuit 313 may be a separate processor, a specially configured Field Programmable Gate Array (FPGA), or an application specific semiconductor (API) for performing the functions described herein. Application Specific Integrated Circuit (ASIC). The look-up table generation circuit 313 may be implemented using hardware components of an apparatus configured by either hardware or software to implement these planned functions.

일부 실시예들에서, 참조 테이블 생성 회로(313)는 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하도록 구성될 수 있다. 참조 테이블 생성 회로(313)는 개시자 그룹 식별에 기초하여 샤드 참조 테이블에서 제1 참조 접속을 식별하도록 추가로 구성될 수 있다. 참조 테이블 생성 회로(313)는 타깃 그룹 식별에 기초하여 샤드 참조 테이블에서 제2 참조 접속을 식별하도록 추가로 구성될 수 있다. 참조 테이블 생성 회로(313)는 공유되는 통신 채널 식별, 공유되는 통신 채널 샤드, 제1 참조 접속, 및 제2 참조 접속 사이의 제3 참조 접속을 생성하도록 추가로 구성될 수 있다. 참조 테이블 생성 회로(313)는 제3 참조 접속을 포함하기 위해 샤드 참조 테이블을 업데이트하도록 추가로 구성될 수 있다.In some embodiments, the lookup table generation circuitry 313 is configured to identify an initiator group, identify a target group, identify a shared communication channel, a first set of shared communication channel attributes, and a second set of shared communication channel attributes. It may be configured to update the shard reference table based on The lookup table creation circuitry 313 may be further configured to identify the first reference connection in the shard lookup table based on the initiator group identification. The lookup table creation circuitry 313 may be further configured to identify the second reference connection in the shard lookup table based on the target group identification. The lookup table creation circuitry 313 may be further configured to create a third reference connection between the shared communication channel identification, the shared communication channel shard, the first reference connection, and the second reference connection. The lookup table generation circuitry 313 may be further configured to update the shard lookup table to include the third reference connection.

인터페이스 생성 회로(311)는 클라이언트 디바이스들(101A 내지 101N)에 대한 통신 채널 인터페이스들을 생성하도록 구성된 하드웨어를 포함한다. 인터페이스 생성 회로(311)는 프로세서(301)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 그러나, 일부 실시예들에서, 인터페이스 생성 회로(311)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 본 명세서에서 기술되는 기능들을 수행하기 위한 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 인터페이스 생성 회로(311)는 이러한 계획된 기능들을 구현하기 위한 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.Interface generation circuitry 311 includes hardware configured to create communication channel interfaces for client devices 101A-101N. Interface generation circuitry 311 may utilize processing circuitry such as processor 301 to perform these actions. However, in some embodiments, the interface generation circuit 311 may be a separate processor, a specially configured Field Programmable Gate Array (FPGA), or an application specific semiconductor (Application Specific Integrated Circuit, ASIC). The interface generation circuit 311 may be implemented using hardware components of a device configured by either hardware or software to implement these planned functions.

일부 실시예들에서, 인터페이스 생성 회로(311)는 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 구성될 수 있다. 인터페이스 생성 회로(311)는 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 추가로 구성될 수 있다. 인터페이스 생성 회로(311)는, 제1 클라이언트 디바이스로의 송신을 위한 통신 회로(307)로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 인터페이스 생성 회로(311)는, 제2 클라이언트 디바이스로의 송신을 위한 통신 회로(307)로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 일부 실시예들에서, 인터페이스 생성 회로(311)에 의해 생성 및 송신된 제1 및 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스들은 본 명세서에 기술되는 바와 같은 "일방적 보기"를 제공할 수 있다.In some embodiments, the interface generation circuitry 311 is based on a group shared outside of the first shared communication channel based on the shared communication channel shard and a first set of shared communication channel attributes associated with the initiator group identification. It can be configured to create a shared communication channel interface. Interface creation circuitry 311 generates a shared group-based shared communication channel interface second outside of the shared communication channel based on the shared communication channel shard and a second set of shared communication channel attributes associated with the target group identification. It may be further configured to do so. The interface generation circuitry 311 may be further configured to transmit a group-based shared communication channel interface shared first outside of the shared communication channel to the communication circuitry 307 for transmission to the first client device. there is. The interface generation circuitry 311 may be further configured to transmit the shared group-based shared communication channel interface a second outside of the shared communication channel to the communication circuitry 307 for transmission to the second client device. there is. In some embodiments, the first and second externally shared group-based shared communication channel interfaces generated and transmitted by interface generation circuitry 311 may provide a “one-way view” as described herein. there is.

일부 실시예들에서, 장치(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 일반 메시지를 개시자 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들 및 타깃 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있다.In some embodiments, the communication circuitry 307 of the device 300 can be configured to transmit a first message associated with the first set of viewing privilege settings to the communication circuitry 208 of the device 200 . Message amplifier circuitry 210 may be configured to receive a first message associated with a first set of viewing privilege settings from communication circuitry 208 . The message amplifier circuit 210 may be further configured to generate a first general message based on the received first message and the first set of viewing privilege settings. The message amplifier circuit 210 may be further configured to transmit a first general message to a first plurality of client devices over the shared communication channel based on the first set of viewing privilege settings. In some embodiments where the first set of viewing privilege settings includes a first personal viewing privilege setting, the message amplifier circuit 210 directs the first general message over the shared communication channel to the first plurality associated with the initiator group identification. of client devices, where the first generic message is not sent by the message amplifier circuit 210 to any client device associated with the target group identification. In some embodiments where the first set of viewing privilege settings includes a first public viewing privilege setting, the message amplifier circuit 210 directs the first general message over the shared communication channel to one or more clients associated with the initiator group identification. devices and one or more client devices associated with the target group identification.

일부 실시예들에서, 장치(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 일반 메시지를 개시자 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들 및 타깃 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있다.In some embodiments, the communication circuitry 307 of the device 300 can be configured to transmit a second message associated with the second set of viewing privilege settings to the communication circuitry 208 of the device 200 . Message amplifier circuitry 210 may be further configured to receive a second message associated with a second set of viewing privilege settings from the communication circuitry. Message amplifier circuitry 210 may be further configured to generate a second general message based on the received second message and the second set of viewing privilege settings. The message amplifier circuit 210 may be further configured to transmit a second general message to a second plurality of client devices over the shared communication channel based on the second set of viewing privilege settings. In some embodiments where the second set of viewing privilege settings includes a second personal viewing privilege setting, the message amplifier circuit 210 may send the second general message over the shared communication channel to a second plurality of viewing privilege settings associated with the target group identification. It may be further configured to transmit to client devices, where the second general message is not transmitted by message amplifier circuitry 210 to any client device associated with the initiator group identification. In some embodiments where the second set of viewing privilege settings includes a second public viewing privilege setting, the message amplifier circuit 210 may send the second general message over the shared communication channel to one or more clients associated with the initiator group identification. devices and one or more client devices associated with the target group identification.

또한, 본 명세서에서 논의된 정보의 전부 또는 일부가 장치(300)의 하나 이상의 컴포넌트들에 의해 수신되고/되거나 생성되고/되거나 유지되는 데이터에 기초할 수 있다는 것에 유의한다. 일부 실시예들에서, (원격 클라우드 컴퓨팅 및/또는 데이터 저장 시스템과 같은) 하나 이상의 외부 시스템들은 또한 본 명세서에서 논의되는 기능의 적어도 일부를 제공하도록 레버리징될 수 있다.Also note that all or part of the information discussed herein may be based on data received, generated, and/or maintained by one or more components of apparatus 300. In some embodiments, one or more external systems (such as remote cloud computing and/or data storage systems) may also be leveraged to provide at least some of the functionality discussed herein.

용어 "회로"는 하드웨어, 및 일부 실시예들에서 하드웨어를 구성하기 위한 소프트웨어를 포함하는 것으로 널리 이해되어야 한다. 따라서, 장치의 컴포넌트들에 대해, 본 명세서에서 사용되는 바와 같은 용어 "회로"는 본 명세서에서 기술되는 바와 같은 특정 회로와 연관된 기능들을 수행하도록 구성된 특정 하드웨어를 포함하는 것으로 이해되어야 한다. 예를 들어, 일부 실시예들에서, "회로"는 프로세싱 회로, 저장 미디어, 네트워크 인터페이스, 입력/출력 디바이스 등을 포함할 수 있다. 일부 실시예들에서, 장치(200)의 다른 요소들은 특정 회로의 기능을 제공하거나 보완할 수 있다. 예를 들어, 프로세서(202)는 프로세싱 기능을 제공할 수 있고, 메모리(204)는 저장 기능을 제공할 수 있고, 통신 회로(208)는 네트워크 인터페이스 기능을 제공할 수 있고, 등등이다. 유사하게, 장치(300)의 다른 요소들은 특정 회로의 기능을 제공하거나 보완할 수 있다. 예를 들어, 프로세서(301)는 프로세싱 기능을 제공할 수 있고, 메모리(303)는 저장 기능을 제공할 수 있고, 통신 회로(307)는 네트워크 인터페이스 기능을 제공할 수 있고, 등등이다. The term “circuitry” should be broadly understood to include hardware and, in some embodiments, software for making up the hardware. Thus, for components of an apparatus, the term “circuitry” as used herein should be understood to include specific hardware configured to perform functions associated with the specific circuitry as described herein. For example, in some embodiments, “circuitry” may include processing circuitry, storage media, network interfaces, input/output devices, and the like. In some embodiments, other elements of device 200 may provide or supplement the functionality of a particular circuit. For example, processor 202 may provide processing functions, memory 204 may provide storage functions, communication circuitry 208 may provide network interface functions, and the like. Similarly, other elements of device 300 may provide or supplement the functionality of a particular circuit. For example, processor 301 may provide a processing function, memory 303 may provide a storage function, communication circuitry 307 may provide a network interface function, and the like.

인식되는 바와 같이, 임의의 그러한 컴퓨터 프로그램 명령어들 및/또는 다른 유형의 코드는 컴퓨터, 프로세서, 또는 다른 프로그래밍가능 장치의 회로 상으로 로딩되어 머신을 생성함으로써, 머신 상에서 코드를 실행하는 컴퓨터, 프로세서 또는 다른 프로그래밍가능 회로가 본 명세서에 기술된 것들을 포함하는 다양한 기능들을 구현하기 위한 수단을 생성하게 할 수 있다.As will be appreciated, any such computer program instructions and/or other types of code may be loaded onto circuitry of a computer, processor, or other programmable device to create a machine, thereby executing the code on the computer, processor, or other programmable device. Other programmable circuitry may enable creating means for implementing various functions, including those described herein.

전술된 바와 같이, 그리고 이러한 개시내용에 기초하여 인식되는 바와 같이, 본 개시내용의 실시예들은 방법들, 모바일 디바이스들, 백엔드 네트워크 디바이스들 등으로서 구성될 수 있다. 따라서, 실시예들은, 하드웨어 또는 소프트웨어와 하드웨어의 임의의 조합을 전체적으로 포함할 수 있다. 또한, 실시예들은 저장 매체에서 구현되는 컴퓨터 판독가능 프로그램 명령어들(예컨대, 컴퓨터 소프트웨어)을 갖는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체 상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 비일시적 하드 디스크들, CD-ROM들, 플래시 메모리, 광학 저장 디바이스들, 또는 자기 저장 디바이스들을 포함한 임의의 적합한 컴퓨터 판독가능 저장 매체가 활용될 수 있다.As described above, and as will be appreciated based on this disclosure, embodiments of the present disclosure may be configured as methods, mobile devices, backend network devices, and the like. Accordingly, embodiments may include entirely hardware or any combination of software and hardware. Further, embodiments may take the form of a computer program product on at least one non-transitory computer readable storage medium having computer readable program instructions (eg, computer software) embodied in the storage medium. Any suitable computer readable storage medium may be utilized including non-transitory hard disks, CD-ROMs, flash memory, optical storage devices, or magnetic storage devices.

외부에서 공유되는 통신 채널들을 생성하기 위한 예시적인 데이터 흐름들Exemplary Data Flows for Creating Externally Shared Communication Channels

도 4, 도 5, 도 6, 및 도 7은 공유되는 통신 채널 생성 쿼리의 개시자 및 타깃이 그룹의 관리자인지의 여부에 기초하여 외부에서 공유되는 통신 채널을 생성함에 있어서 하나 이상의 클라이언트 디바이스들(101A 내지 101N)과 그룹 기반 통신 플랫폼(105) 사이의 다양한 상호작용들을 예시한다. 4, 5, 6, and 7 show one or more client devices in creating a communication channel shared externally based on whether an initiator and a target of a shared communication channel creation query are group managers. 101A to 101N) and the various interactions between the group-based communication platform 105.

용어 “관리자”는, 통신 채널을 관리하고 다양한 유지보수 태스크들에 관하여 다른 가입자들 대신에 결정을 행하기 위한 권한을 갖는 통신 채널의 가입자를 지칭한다. 예를 들어, 그룹 관리자는 "공개적" 또는 "개인적" 중 어느 하나로서 통신 채널을 설정하기 위한 권한을 가질 수 있다. 다른 예로서, 외부에서 공유되는 통신 채널을 생성하라는 요청을 수신할 때, 그룹 관리자만이 그룹 대신에 요청을 수락하기 위한 권한을 갖는다. 일부 실시예들에서, 시스템은 사용자와 연관된 데이터 상의 플래그를 사용하여 사용자가 그룹의 구성원인지의 여부를 나타낸다.The term “administrator” refers to a subscriber of a communication channel who has the authority to manage the communication channel and make decisions on behalf of other subscribers regarding various maintenance tasks. For example, a group manager may have the authority to establish a communication channel as either "Public" or "Private". As another example, when receiving a request to create an externally shared communication channel, only a group manager has the authority to accept the request on behalf of the group. In some embodiments, the system uses a flag on data associated with a user to indicate whether the user is a member of a group.

이제 도 4를 참조하면, 프로세스(400)는 그룹 A의 비관리자가 그룹 B의 비관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.Referring now to FIG. 4 , process 400 is an exemplary process for creating an externally shared communication channel when a non-administrator in group A submits a request to create a shared communication channel targeted to a non-administrator in group B. exemplify

프로세스(400)는 단계(402)에서 시작되며, 여기서 그룹 A의 비관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 비관리자에 대한 초대를 자동으로 생성하고, 단계(404)에서 그룹 B의 비관리자와 초대를 공유한다. 여기서, 개인은 외부에서 공유되는 통신 채널을 생성하라는 요청의 전자적 표시이다. 예를 들어, 초대는 요청의 세부사항들을 포함하는 웹페이지에 링크하는 URL(Uniform Resource Locator)의 형태를 취할 수 있다. 일부 실시예들에서, URL 링크는 URL 링크가 송신된 이후에 미리결정된 시간 양이 경과한 후에 만료할 수 있다. 예를 들어, 사용자는 송신 24시간 후에 만료하도록 URL을 설정할 수 있다.Process 400 begins at step 402, where a non-administrator of group A submits a request to create an externally shared communication channel. The system automatically creates an invitation for non-administrators in group A, and shares the invitation with non-administrators in group B in step 404 . Here, an individual is an electronic indication of a request to create an externally shared communication channel. For example, the invitation may take the form of a Uniform Resource Locator (URL) linking to a web page containing details of the request. In some embodiments, a URL link may expire after a predetermined amount of time has elapsed since the URL link was sent. For example, a user can set a URL to expire 24 hours after sending.

그룹 B의 비관리자는 단계(406)에서 초대를 수신한다. 단계(408)에서, 그룹 B의 비관리자는 채널을 추가할지의 여부에 대해 초기 결정을 행한다. 그룹 B의 비관리자가 채널을 추가하지 않기로 결정하는 경우, 그룹 A의 비관리자는 단계(410)에서 요청이 거절되었다는 전자적 표시를 수신한다. Non-administrators of group B receive an invitation in step 406 . At step 408, the non-administrator of group B makes an initial decision whether or not to add a channel. If the non-administrator of group B decides not to add the channel, the non-administrator of group A receives an electronic indication at step 410 that the request has been denied.

그룹 B의 비관리자가 채널을 추가하기로 결정하는 경우, 시스템은 단계(412) 및 단계(414)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 그룹 A의 관리자 및 그룹 B의 관리자에 각각 자동으로 포워딩한다. 그룹 A의 관리자가 단계(416)에서 요청을 승인하지 않는 경우, 그룹 A 및 그룹 B의 비관리자들은 단계(420)에서 요청이 거절되었다는 전자적 표시들을 수신한다. 유사하게, 그룹 B의 관리자가 단계(418)에서 요청을 승인하지 않는 경우, 그룹 A 및 그룹 B의 비관리자들은 단계(420)에서 요청이 거절되었다는 전자적 표시들을 수신한다. If the non-manager of group B decides to add the channel, the system automatically sends a request to create an externally shared communication channel to the manager of group A and the manager of group B, respectively, in steps 412 and 414. forward to If the manager of group A does not approve the request at step 416, the non-administrators of group A and group B receive electronic indications at step 420 that the request has been denied. Similarly, if the manager of group B does not approve the request at step 418, the non-administrators of group A and group B receive electronic indications at step 420 that the request has been denied.

그룹 A의 관리자 및 그룹 B의 관리자 둘 모두가 요청을 승인할 때, 시스템은 단계(422)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다. When both the manager of group A and the manager of group B approve the request, the system proceeds in step 422 to creation of an externally shared communication channel.

이제 도 5를 참조하면, 프로세스(500)는 그룹 A의 비관리자가 그룹 B의 관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.Referring now to FIG. 5 , process 500 illustrates an exemplary process for creating an externally shared communication channel when a non-administrator of group A submits a request to create a shared communication channel targeted to an manager of group B. foreshadow

프로세스(500)는 단계(501)에서 시작되며, 여기서 그룹 A의 비관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 비관리자에 대한 초대를 자동으로 생성하고, 단계(503)에서 그룹 B의 관리자와 초대를 공유한다. Process 500 begins at step 501, where a non-administrator of group A submits a request to create an externally shared communication channel. The system automatically creates invitations for non-managers of group A, and shares the invitations with the administrators of group B in step 503 .

그룹 B의 관리자와 초대를 공유할 시, 시스템은 단계(505)에서 승인을 위한 요청을 자동으로 생성한다. 이어서, 그룹 B의 관리자는 단계507)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 승인할지의 여부를 결정한다. 그룹 B의 관리자가 요청을 승인하지 않는 경우, 그룹 A의 비관리자는 단계(509)에서 요청이 거절되었다는 전자적 표시를 수신한다. Upon sharing the invitation with the manager of group B, the system automatically generates a request for approval at step 505 . Subsequently, the manager of group B determines whether to approve the request to create a communication channel shared externally in step 507). If the manager of group B does not approve the request, the non-administrator of group A receives an electronic indication at step 509 that the request has been denied.

그룹 B의 관리자가 요청을 승인하는 경우, 시스템은 단계(511)에서 요청을 그룹 A의 관리자에게 자동으로 포워딩한다. 그룹 A의 관리자가 단계(513)에서 요청을 승인하지 않는 경우, 그룹 B의 관리자 및 비관리자 둘 모두는 단계(515)에서 요청이 거절되었다는 전자적 표시들을 수신한다. If the manager of group B approves the request, the system automatically forwards the request to the manager of group A at step 511 . If the manager of group A does not approve the request at step 513, both the manager and non-administrator of group B receive electronic indications at step 515 that the request has been denied.

그룹 A의 관리자가 단계(513)에서 요청을 승인하는 경우, 시스템은 단계(517)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다. If the manager of group A approves the request in step 513, the system proceeds in step 517 to create an externally shared communication channel.

이제 도 6을 참조하면, 프로세스(600)는 그룹 A의 관리자가 그룹 B의 비관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.Referring now to FIG. 6 , process 600 illustrates an exemplary process for creating an externally shared communication channel when an administrator of group A submits a request to create a shared communication channel targeted to non-administrators of group B. foreshadow

프로세스(600)는 단계(602)에서 시작되며, 여기서 그룹 A의 관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 관리자에 대한 초대를 자동으로 생성하고, 단계(604)에서 그룹 B의 비관리자와 초대를 공유한다. Process 600 begins at step 602, where an administrator of group A submits a request to create an externally shared communication channel. The system automatically creates an invitation to the manager of group A, and shares the invitation with non-administrators of group B in step 604 .

그룹 B의 비관리자는 단계(606)에서 초대를 수신한다. 단계(608)에서, 그룹 B의 비관리자는 채널을 추가할지의 여부에 대해 초기 결정을 행한다. 그룹 B의 비관리자가 채널을 추가하지 않기로 결정하는 경우, 그룹 A의 관리자는 단계(610)에서 요청이 거절되었다는 전자적 표시를 수신한다. Non-administrators of group B receive an invitation in step 606 . At step 608, the non-administrator of group B makes an initial decision as to whether or not to add a channel. If the non-administrator of group B decides not to add the channel, the manager of group A receives an electronic indication at step 610 that the request has been denied.

그룹 B의 비관리자가 채널을 추가하기로 결정하는 경우, 시스템은 단계(612) 및 단계(614)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 그룹 A의 관리자 및 그룹 B의 관리자에 각각 자동으로 포워딩한다. 그룹 A의 관리자가 단계(616)에서 요청을 승인하지 않는 경우, 그룹 B의 비관리자들은 단계(620)에서 요청이 거절되었다는 전자적 표시를 수신한다. 유사하게, 그룹 B의 관리자가 단계(618)에서 요청을 승인하지 않는 경우, 그룹 B의 비관리자는 단계(620)에서 요청이 거절되었다는 전자적 표시를 수신한다. If the non-manager of group B decides to add the channel, the system automatically sends a request to create an externally shared communication channel to the manager of group A and the manager of group B, respectively, in steps 612 and 614. forward to If the manager of group A does not approve the request at step 616, the non-administrators of group B receive an electronic indication at step 620 that the request has been denied. Similarly, if the manager of group B does not approve the request at step 618, the non-administrator of group B receives an electronic indication at step 620 that the request has been denied.

그룹 A의 관리자 및 그룹 B의 관리자 둘 모두가 요청을 승인할 때, 시스템은 단계(622)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다. When both the manager of group A and the manager of group B approve the request, the system proceeds in step 622 to creation of an externally shared communication channel.

이제 도 7을 참조하면, 프로세스(700)는 그룹 A의 관리자가 그룹 B의 관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.Referring now to FIG. 7 , process 700 illustrates an exemplary process for creating an externally shared communication channel when an administrator of group A submits a request to create a shared communication channel targeted to an administrator of group B. do.

프로세스(700)는 단계(701)에서 시작되며, 여기서 그룹 A의 관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 관리자에 대한 초대를 자동으로 생성하고, 단계(703)에서 그룹 B의 관리자와 초대를 공유한다. Process 700 begins at step 701, where an administrator of group A submits a request to create an externally shared communication channel. The system automatically creates an invitation to the manager of group A, and shares the invitation with the manager of group B in step 703 .

그룹 B의 관리자와 초대를 공유할 시, 시스템은 단계(705)에서 승인을 위한 요청을 자동으로 생성한다. 이어서, 그룹 B의 관리자는 단계707)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 승인할지의 여부를 결정한다. 그룹 B의 관리자가 요청을 승인하지 않는 경우, 그룹 A의 관리자는 단계(709)에서 요청이 거절되었다는 전자적 표시를 수신한다.Upon sharing the invitation with the manager of group B, the system automatically generates a request for approval at step 705 . Subsequently, the administrator of group B determines whether to approve the request to create a communication channel shared externally in step 707). If the manager of group B does not approve the request, the manager of group A receives an electronic indication at step 709 that the request has been denied.

그룹 B의 관리자가 요청을 승인하는 경우, 시스템은 단계(711)에서 요청을 그룹 A의 관리자에게 자동으로 포워딩한다. 그룹 A의 관리자가 단계(713)에서 요청을 승인하지 않는 경우, 그룹 B의 관리자는 단계(715)에서 요청이 거절되었다는 전자적 표시를 수신한다. 그룹 A의 관리자가 요청을 승인하는 경우, 시스템은 단계(717)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다. If the manager of group B approves the request, the system automatically forwards the request to the manager of group A at step 711 . If the manager of group A does not approve the request in step 713, the manager of group B receives an electronic indication in step 715 that the request has been denied. If the administrator of group A approves the request, the system proceeds in step 717 to creation of an externally shared communication channel.

외부에서 공유되는 통신 채널들에 대한 예시적인 구현Exemplary Implementation for Externally Shared Communication Channels

도 8a, 도 8b, 도 8c, 및 도 8d는 본 개시내용의 일부 실시예들에 따른 예시적인 통신 채널 인터페이스들의 다양한 요소들을 예시한다. 8A, 8B, 8C, and 8D illustrate various elements of example communication channel interfaces in accordance with some embodiments of the present disclosure.

이제 도 8a를 참조하면, 예시적인 통신 채널 인터페이스(800A)가 도시되어 있다. 통신 채널 인터페이스(800A)는 사용자명 박스(802)를 포함하여, 통신 채널 인터페이스(800A)와 연관된 현재 사용자 계정을 나타낸다. Referring now to FIG. 8A , an exemplary communication channel interface 800A is shown. The communication channel interface 800A includes a username box 802 to indicate the current user account associated with the communication channel interface 800A.

통신 채널 인터페이스(800A)는 또한 채널 목록 패널(pane)을 또한 포함할 수 있는데, 이는 외부에서 공유되는 통신 채널 목록 서브패널(804)을 포함할 수 있다. 외부에서 공유되는 통신 채널 목록 서브패널(804)은 사용자가, 사용자가 가입한 모든 외부에서 공유되는 통신 채널들을 빠르고 쉽게 내비게이팅할 수 있게 한다. 예를 들어, 도 8a에 도시된 바와 같이, 사용자 토니는 외부에서 공유되는 통신 채널들 C1, C2, C3, 및 C4에 가입했는데, 이는 각각의 채널명의 우측에 중첩되는 사각형 심볼로 나타내진다. 각각의 그룹은 외부에서 공유되는 통신 채널 목록 서브패널(804) 내의 외부에서 공유되는 통신 채널의 명칭에 대한 그의 선호도를 설정할 수 있다. The communication channel interface 800A may also include a channel list panel, which may include an externally shared communication channel list subpanel 804 . The externally shared communication channel list subpanel 804 allows the user to quickly and easily navigate through all externally shared communication channels to which the user has subscribed. For example, as shown in FIG. 8A, user Tony has subscribed to externally shared communication channels C1, C2, C3, and C4, which are indicated by overlapping square symbols to the right of each channel name. Each group can set its preference for the name of an externally shared communication channel in the externally shared communication channel list subpanel 804 .

통신 채널 인터페이스(800A)의 채널 목록 패널은 내부에서 공유되는 통신 채널 목록 서브패널(806)을 추가로 포함할 수 있는데, 이는 사용자가 가입한 모든 내부에서 공유되는 통신 채널들을 열거한다. 외부에서 공유되는 통신 채널 목록 서브패널(804)에서 열거된 것들과는 대조적으로, 내부에서 공유되는 통신 채널 목록 서브패널(806) 내의 모든 채널들은 동일한 그룹 또는 조직 내의 다른 사용자들과 공유된다. The channel list panel of the communication channels interface 800A may further include an internally shared communication channel list subpanel 806, which lists all internally shared communication channels to which the user has subscribed. In contrast to those listed in Externally Shared Communication Channels List subpanel 804, all channels in Internally Shared Communications Channels List subpanel 806 are shared with other users within the same group or organization.

외부에서 공유되는 통신 채널 목록 서브패널(804) 또는 내부에서 공유되는 통신 채널 목록 서브패널(806)은 개인적 채널 또는 공개적 채널일 수 있다. 채널의 상태는 채널명의 좌측에 아이콘으로 나타내질 수 있다. 예를 들어, 도 8a의 내부에서 공유되는 통신 채널 목록 서브패널(806)에서 나타낸 바와 같이, 채널들 C5 및 C6 각각은 그의 명칭 옆에 파운드 부호를 갖는데, 이는 그들이 공개적 채널들임을 나타내고; 채널 C7 및 C8 각각은 그의 명칭 옆에 자물쇠 부호를 갖는데, 이는 그들이 개인적 채널들임을 나타낸다.The externally shared communication channel list subpanel 804 or the internally shared communication channel list subpanel 806 can be a private channel or a public channel. The state of the channel may be indicated by an icon to the left of the channel name. For example, as shown in Internal Shared Communications Channel List subpanel 806 of FIG. 8A, channels C5 and C6 each have a pound sign next to their names, indicating that they are public channels; Channels C7 and C8 each have a lock symbol next to their names, indicating that they are private channels.

통신 채널 인터페이스(800A)는 채널 제목 박스(810) 및 직접 메시지 패널(808)을 추가로 포함한다. 직접 메시지 패널(808)은 사용자와 동일한 채널을 공유하는 모든 구성원들을 열거한다. 예를 들어, 도 9a의 직접 메시지 패널(808)에서 나타낸 바와 같이, 사용자는 사용자와 동일한 채널 C1을 공유하는 베스(Beth) 또는 칼(Carl)에게 직접 메시지를 전송할 수 있다. 직접 메시지 패널(808)과 관련하여, 통신 채널 인터페이스(800A)는 그룹의 구성원 디렉토리와 같은 정보를 디스플레이할 수 있는 플렉스패널(816)을 추가로 포함할 수 있다. 구성원 디렉토리는 플렉스패널(816)을 통해 브라우징가능, 탐색가능, 및 필터링가능할 수 있다. The communication channel interface 800A further includes a channel title box 810 and a direct message panel 808. The direct message panel 808 lists all members sharing the same channel as the user. For example, as shown in the direct message panel 808 of FIG. 9A, the user can send a direct message to Beth or Carl who share the same channel C1 as the user. In conjunction with the direct message panel 808, the communication channel interface 800A may further include a flexpanel 816 capable of displaying information such as a directory of members of a group. Member directories can be browseable, searchable, and filterable via the flexpanel 816.

일부 실시예들에서, 구성원 디렉토리의 디스플레이는 보유 설정들에 기초하여 결정될 수 있다. 보유 설정은 어느 애플리케이션들이 채널 상에 설치되는지, 어느 특징부들이 채널에 대해 인에이블되는지, 그리고 채널을 제어하도록 허용되는 사용자들에 관한 다른 선호도들을 추가로 결정할 수 있다. In some embodiments, display of a member directory may be determined based on retention settings. Retention settings may further determine which applications are installed on the channel, which features are enabled for the channel, and other preferences regarding users who are allowed to control the channel.

추가로, 통신 채널 인터페이스(800A)는 텍스트, 이미지들, 및 통신 채널과 연관된 다른 이력 데이터를 디스플레이하는 채널 메시징 패널(812)을 포함한다. 일부 실시예들에서, 이력 데이터는, 예컨대 사용자가 채널에 합류하거나 채널을 떠날 때, 애플리케이션이 설치되거나 채널로부터 제거될 대, 멤버십에 대한 변경들을 포함할 수 있다. Additionally, the communication channel interface 800A includes a channel messaging panel 812 that displays text, images, and other historical data associated with the communication channel. In some embodiments, historical data may include changes to membership, such as when a user joins or leaves a channel, when an application is installed or removed from a channel.

일부 실시예들에서, 채널 메시징 패널(812) 내의 일부 콘텐츠의 보기 특권 설정들(즉, 이러한 콘텐츠들을 볼 수 있는 누군가)은 사용자에게 특정적일 수 있고, 공개적 뷰로부터 은닉될 수 있다. 예를 들어, 사용자가 커맨드를 사용하여 애플리케이션 또는 봇과 개인적으로 상호작용할 때, 그러한 활동들은 공개적 뷰로부터 은닉될 수 있다. 사용자는 또한 대중에 의해 그러한 활동들을 보기가능하게 만들도록 선택할 수 있다. In some embodiments, the viewing privilege settings of some content within the channel messaging panel 812 (ie, who can view such content) may be user-specific and hidden from public view. For example, when a user interacts privately with an application or bot using commands, those activities may be hidden from public view. Users may also choose to make those activities viewable by the public.

일부 실시예들에서, 보기 특권 설정들은 팀 및/또는 팀 상에 설치된 애플리케이션들에 특정적일 수 있다. 예를 들어, 조직 X로부터의 토니가 커맨드를 사용하기를 원할 때, 커맨드 메뉴는 조직 X 상에 설치된 애플리케이션들로부터의 커맨드들만을 보여줄 것이다.In some embodiments, viewing privilege settings may be specific to a team and/or applications installed on the team. For example, when Tony from organization X wants to use a command, the command menu will only show commands from applications installed on organization 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의 크기를 가질 수 있다. A user can contribute to a communication channel using the channel entry box 814, which will be displayed in the channel messaging panel 812. The channel input box 814 may provide an autocomplete function, which automatically recognizes the user name, channel name, and other information as user types in the channel input box 814. In some embodiments, the autocomplete bot can also recognize the names of applications and other bots to further interact with the channel. The channel entry box 814 also provides message entry alerts when the user is within an externally shared communication channel, so that any information he or she has contributed to will be visible to the user by members of other groups or organizations. You can be warned that there may be. Referring now to FIG. 8B , an exemplary user icon 800B is shown. The user icon 800B may include a user avatar 801 and a group icon 803 . A user avatar 801 may represent a user's identity, and a group icon 803 may represent a group to which the user is associated. In some embodiments, user avatar 801 may have dimensions of 72 px by 72 px with 4px rounded corners. The group icon 803 may have dimensions of 22 px x 22 px with 4 px rounded corners, 1 px inner border, and 3 px outer border.

이제 도 8c를 참조하면, 예시적인 통신 채널 인터페이스(800C)가 도시되어 있다. 통신 채널 인터페이스(800C)는 그룹 구성원 프로파일 카드(818)를 포함할 수 있는데, 이는 그룹 구성원의 프로파일 사진(820), 그룹 식별 박스(822), 및 기능 버튼들(824)을 추가로 포함할 수 있다. 그룹 식별 박스(822)는 그룹 구성원이 연관되는 그룹의 명칭과 같은 정보를 포함할 수 있다. 기능 버튼들(824)은 직접 메시지를 그룹 구성원으로 전송하는 것과 같은 다양한 기능들을 사용자가 수행할 수 있게 할 수 있다.Referring now to FIG. 8C , an exemplary communication channel interface 800C is shown. The communication channel interface 800C may include a group member profile card 818, which may further include a group member's profile picture 820, a group identification box 822, and function buttons 824. there is. The group identification box 822 may include information such as the name of a group to which group members are associated. Function buttons 824 may allow a user to perform various functions, such as sending a direct message to a group member.

이제 도 8d를 참조하면, 사용자 인터페이스(800D)는 그룹 구성원과의 직접 메시징을 위한 예시적인 인터페이스를 예시한다. 사용자 인터페이스(800D)는 구성원 이름 박스(810')를 포함할 수 있는데, 이는 사용자가 직접 메시징하고 있는 그룹 구성원의 이름을 나타낸다. 통신 패널(812')은 사용자와 그룹 구성원 사이의 직접 메시징 이력을 보여준다. 사용자 인터페이스(800D)는 직접 메시지 프로파일 패널(826)을 추가로 포함할 수 있는데, 이는 사용자 정보 섹션(828) 및 관련 정보 섹션(830)을 포함할 수 있다. 직접 메시지 프로파일 패널(826)은 사용자가 직접 메시징하고 있는 그룹 구성원에 관한 기본 정보를 사용자가 빠르고 쉽게 인식할 수 있게 한다. Referring now to FIG. 8D , user interface 800D illustrates an example interface for direct messaging with group members. User interface 800D may include a member name box 810', which indicates the name of the group member the user is directly messaging. The communication panel 812' shows the history of direct messaging between the user and group members. User interface 800D may further include a direct message profile panel 826 , which may include a user information section 828 and a related information section 830 . The direct message profile panel 826 allows the user to quickly and easily recognize basic information about group members with whom the user is directly messaging.

본 개시내용의 실시예들을 구현하기 위한 예시적인 애플리케이션 프로그래밍 인터페이스(API) 설계Exemplary Application Programming Interface (API) Design for Implementing Embodiments of the Disclosure

일부 실시예들에서, 본 개시내용의 실시예들에 따라 구조화된 시스템들은 애플리케이션들 및 봇들의 구성가능성을 외부에서 공유되는 통신 채널에서 인에이블시키는 애플리케이션 프로그래밍 인터페이스(API)들을 제공할 수 있다. In some embodiments, systems structured according to embodiments of the present disclosure may provide application programming interfaces (APIs) that enable configurability of applications and bots over an externally shared communication channel.

기존 시스템들은 기술적 제한사항들에 의해 어려움을 겪는다. 예를 들어, 일부 기존 시스템들은 외부에서 공유되는 통신 채널 내의 구성원 팀들을 롤업하지 못하는 반면, 다른 것들은 그룹 기반 통신 채널들이 동일한 샤드 상에 저장되지 않는 사용자들에게 이벤트들을 방출하지 못한다. Existing systems suffer from technical limitations. For example, some existing systems fail to roll up member teams within externally shared communication channels, while others fail to emit events to users whose group-based communication channels are not stored on the same shard.

본 개시내용의 다양한 실시예들은 기존 시스템들을 넘는 기술적 개선들을 제공한다. 전술된 바와 같이, 공유되는 통신 채널 샤드는 외부에서 공유되는 통신 채널에 관련된 데이터를 저장하도록 생성될 수 있다. 본 개시내용의 일부 실시예들에서, 이벤트 가입 테이블(예컨대, “event_subscriptions_types”)은 공유되는 통신 채널 샤드에 저장될 수 있다. 이벤트 가입 테이블은 외부에서 공유되는 통신 채널 내의 구성원들로 이벤트들을 방출할지의 여부에 관한 정보를 저장한다. 위에서 확인된 기술적 어려움들을 해결하기 위해, 이벤트 가입 테이블은 “resource_id” 컬럼 및 “resource_type” 컬럼을 포함하도록 업데이트될 수 있다. “resource_id” 컬럼은 리소스의 식별(예컨대, 이벤트)을 저장하고, “resource_type” 컬럼은 리소스의 유형(예컨대, 이벤트가 그룹 기반 통신 채널들이 상이한 샤드들 상에 저장되는 팀들에 의해 가입되는지의 여부)을 식별한다. 이러한 2개의 컬럼들을 활용함으로서, 본 개시내용의 실시예들은 그룹 기반 통신 채널 상에 설치된 애플리케이션들에 대한 통합된 이벤트 등록 정보를 어디에 그리고 어떻게 저장할 지의 이슈들을 해결한다. “토니 대 프랭크” 예로부터 계속하면, 외부에서 공유되는 통신 채널은 “resource_type” 컬럼 및 “resource_id” 컬럼을 활용하여, 조직 X 및/또는 조직 Y가 특정 리소스에 가입되어 있는지의 여부에 관한 정보(즉, 이벤트)를 저장할 수 있다. Various embodiments of the present disclosure provide technical improvements over existing systems. As described above, a shared communication channel shard may be created to store data related to an externally shared communication channel. In some embodiments of the present disclosure, an event subscription table (eg, “event_subscriptions_types”) may be stored in a shared communication channel shard. The event subscription table stores information about whether to emit events to members in an externally shared communication channel. To address the technical difficulties identified above, the event subscription table can be updated to include a “resource_id” column and a “resource_type” column. The “resource_id” column stores the identification of the resource (eg, event), and the “resource_type” column stores the type of resource (eg, whether the event is subscribed by teams whose group-based communication channels are stored on different shards). identify By utilizing these two columns, embodiments of the present disclosure address the issues of where and how to store consolidated event registration information for applications installed on a group-based communication channel. Continuing from the “Tony vs. Frank” example, the externally shared communication channel utilizes the “resource_type” column and the “resource_id” column to provide information about whether organization X and/or organization Y are subscribed to a specific resource ( That is, events) can be stored.

아래의 프로그래밍 코드는 “resource_type” 및 “resource_id” 컬럼들을 포함하도록 “event_subscriptions_types” 테이블의 변경을 제공한다:The programming code below provides for altering the "event_subscriptions_types" table to include the "resource_type" and "resource_id" columns:

ALTER TABLE event_subscriptions_types ADD COLUMN resource_type varchar(25) NOT NULL AFTER team_idALTER 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_typeALTER 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_idALTER 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)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 각각이 어떤 이벤트들에 가입했는지에 관한 정보를 저장한다. In some embodiments of the present disclosure, the “channel_id” column and the “event_subscription_id” column may be added to the “event_subscriptions_types” table. The “channel_id” column identifies a group-based communication channel, and “event_subscription_id” identifies events to which each group-based communication channel is subscribed. Continuing from the "Tony vs. Frank" example, the "channel_id" column and the "event_subscription_id" column store information about which events each organization X and organization Y have subscribed to.

또한, 본 개시내용의 일부 실시예들은, 또한, “event_subscriptions_ext_shared”와 같은, 공유되는 통신 채널 샤드에 새로운 테이블을 생성하여, 각각의 팀에 대한 이벤트 가입 정보를 개별적으로 저장할 수 있다. 아래의 프로그래밍 코드는 “event_subscriptions_ext_shared” 테이블의 생성을 제공한다. Additionally, some embodiments of the present disclosure may also create a new table in a shared communication channel shard, such as “event_subscriptions_ext_shared”, to store event subscription information for each team individually. The programming code below provides for the creation of the “event_subscriptions_ext_shared” table.

CREATE TABLE 'event_subscriptions_ext_shared' ( CREATE TABLE 'event_subscriptions_ext_shared' (

'subscription_team_id' bigint(20) UNSIGNED NOT NULL, 'subscription_team_id' bigint(20) UNSIGNED NOT NULL,

'channel_id' bigint(20) UNSIGNED NOT NULL, 'channel_id' bigint(20) UNSIGNED NOT NULL,

'api_app_id' bigint(20) UNSIGNED NOT NULL,'api_app_id' bigint(20) UNSIGNED NOT NULL,

'event_type' varchar(255) NOT NULL'event_type' varchar(255) NOT NULL

PRIMARY KEY ('subscription_t_team_id', 'channel_id', 'event_type')PRIMARY KEY ('subscription_t_team_id', 'channel_id', 'event_type')

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

추가 구현 세부사항들Additional implementation details

예시적인 프로세싱 시스템들이 도 2 및 도 3에서 기술되었지만, 본 명세서에서 기술되는 주제 및 기능 동작들의 구현들은 다른 유형들의 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서, 또는 이들 중 하나 이상의 것들의 조합들에서 구현될 수 있다.Although exemplary processing systems are described in FIGS. 2 and 3 , implementations of the subject matter and functional operations described herein may occur in other types of digital electronic circuitry, or in computer software, including the structures disclosed herein and their structural equivalents. , firmware, or hardware, or in combinations of one or more of these.

본 명세서에서 기술되는 주제 및 동작들의 실시예들은 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서, 또는 이들 중 하나 이상의 것들의 조합들에서 구현될 수 있다. 본 명세서에서 기술되는 주제의 실시예들은 정보/데이터 프로세싱 장치에 의한 실행을 위해, 또는 그의 동작을 제어하기 위해, 컴퓨터 판독가능 저장 매체 상에 인코딩된 하나 이상의 컴퓨터 프로그램들, 즉 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 대안으로, 또는 추가로, 프로그램 명령어들은, 정보/데이터 프로세싱 장치에 의한 실행을 위한 적합한 수신기 장치로의 송신을 위해 정보/데이터를 인코딩하도록 생성되는 인공적으로 생성된 전파되는 신호, 예컨대 기계적 생성된 전기적, 광학적, 또는 전자기적 신호 상에 인코딩될 수 있다. 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기재, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 것의 조합일 수 있거나 이들에 포함될 수 있다. 더욱이, 컴퓨터 판독가능 저장 매체가 전파되는 신호가 아닌 한편, 컴퓨터 판독가능 저장 매체는 인공적으로 생성된 전파되는 신호에서 인코딩되는 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 판독가능 저장 매체는, 또한, 하나 이상의 별개의 물리적 컴포넌트들 또는 매체들(예컨대, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)일 수 있거나 이들에 포함될 수 있다.Embodiments of the subject matter and operations described herein may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations of one or more of these. can be implemented Embodiments of the subject matter described herein are one or more computer programs, i.e. one of computer program instructions, encoded on a computer readable storage medium for execution by, or for controlling the operation of, an information/data processing apparatus. It can be implemented as the above modules. Alternatively, or in addition, the program instructions may be an artificially generated propagated signal, such as a mechanically generated electrical signal, generated to encode information/data for transmission to a suitable receiver device for execution by the information/data processing device. , can be encoded onto an optical or electromagnetic signal. A computer readable storage medium may be or be included in a computer readable storage device, a computer readable storage medium, a random or serial access memory array or device, or a combination of one or more of these. Moreover, while a computer readable storage medium is not a propagated signal, a computer readable storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer-readable storage medium can also be or be included in one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).

본 명세서에서 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들 상에 저장되거나 다른 소스들로부터 수신된 정보/데이터에 대해 정보/데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.The operations described herein may be implemented as operations performed by an information/data processing apparatus on information/data stored on one or more computer readable storage devices or received from other sources.

용어 "데이터 프로세싱 장치"는, 예로서, 프로그래밍가능 프로세서, 컴퓨터, 시스템-온-칩, 또는 전술한 사항의 다수의 것들 또는 이들의 조합들을 포함한, 데이터를 프로세싱하기 위한 모든 종류들의 장치, 디바이스들, 및 머신들을 포괄한다. 장치는, 특수 목적 논리 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(Application Specific Integrated Circuit)를 포함할 수 있다. 장치는, 또한, 하드웨어에 더하여, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 것들의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산형 컴퓨팅 및 그리드 컴퓨팅 인프라구조들과 같은 다양한 상이한 컴퓨팅 모델 인프라구조들을 실현할 수 있다.The term "data processing apparatus" refers to all kinds of apparatus, devices for processing data, including, by way of example, a programmable processor, computer, system-on-chip, or any number of the foregoing or combinations thereof. , and machines. The device may include a special purpose logic circuit, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC). The device may also include, in addition to hardware, code that creates an execution environment for the computer program in question, such as firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or one or more of these. It can contain the code that makes up the combination. The device and execution environment may realize a variety of different computing model infrastructures such as web services, distributed computing and grid computing infrastructures.

컴퓨터 프로그램(본 명세서에서 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로도 지칭됨)은, 컴파일 또는 해석 언어들, 선언 또는 절차 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 그것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 유닛으로서를 포함한, 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만, 그러할 필요는 없다. 프로그램은, 다른 프로그램들 또는 정보/데이터를 보유하는 파일의 일부분(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)에, 당해 프로그램에 전용되는 단일 파일에, 또는 다수의 조정된 파일들(예컨대, 하나 이상의 모듈들, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 상에서, 또는 하나의 사이트에 위치되거나 다수의 사이트들에 걸쳐서 분산되고 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.A computer program (also referred to herein as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, which may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program can, but need not, correspond to a file in a file system. A program may be part of a file holding other programs or information/data (e.g. one or more scripts stored in a markup language document), in a single file dedicated to that program, or in multiple coordinated files (e.g. , files that store one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

본 명세서에서 기술된 프로세스들 및 논리 흐름들은 입력 정보/데이터 상에서 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능 프로세서들에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리, 랜덤 액세스 메모리, 또는 둘 모두로부터 명령어들 및 정보/데이터를 수신할 것이다. 일부 경우들에 있어서, 컴퓨터는 명령어들에 따라 액션들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다. 일반적으로, 컴퓨터는, 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대 자기, 자기-광학 디스크, 또는 광학 디스크들을 포함할 것이고, 또는 그들로부터 정보/데이터를 수신하거나 그들로 정보/데이터를 전달하거나 둘 모두를 하도록 동작가능하게 커플링될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 컴퓨터 프로그램 명령어들 및 정보/데이터를 저장하는 데 적합한 디바이스들은, 예로서 반도체 모바일 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드디스크들, 예컨대 내부 하드 디스크들 또는 탈착가능 디스크들; 자기-광학 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는, 비휘발성 메모리, 매체들, 및 메모리 디바이스들의 모든 형태들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 포함될 수 있다.The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input information/data and generating output. Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and information/data from read only memory, random access memory, or both. In some cases, a computer may include a processor for performing actions in accordance with the instructions and one or more memory devices for storing the instructions and data. Generally, a computer will also include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or receiving information/data from or receiving information/data from them. will be operably coupled to deliver or both. However, a computer need not have such devices. Devices suitable for storing computer program instructions and information/data include, by way of example, semiconductor mobile devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, eg internal hard disks, eg internal hard disks or removable disks; magneto-optical disks; and all forms of non-volatile memory, media, and memory devices, including CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by or included in special purpose logic circuitry.

사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예들은, 사용자가 컴퓨터에 입력을 제공할 수 있게 하는, 정보/데이터를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예컨대 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 키보드 및 포인팅 디바이스, 예컨대 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들은 마찬가지로 사용자와의 상호작용을 제공하는 데 사용될 수 있는데; 예를 들어 사용자에게 제공되는 피드백은 임의의 형태의 센서 피드백, 예컨대 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 그로부터 문서들을 수신함으로써; 예를 들어 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상에서 웹 페이지들을 웹 브라우저로 전송함으로써, 사용자와 상호작용할 수 있다.To provide interaction with a user, embodiments of the subject matter described herein may include a display device, such as a cathode ray (CRT) device, for displaying information/data to a user that enables the user to provide input to a computer. tube) or LCD (liquid crystal display) monitor, and a keyboard and pointing device, such as a mouse or trackball. Other types of devices can be used to provide interaction with the user as well; For example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; Input from the user may be received in any form including acoustic, speech, or tactile input. Also, the computer can transmit documents to and receive documents from a device used by a user; It may interact with the user, for example by sending web pages to the web browser on the user's client device in response to requests received from the web browser.

본 명세서에서 기술된 주제의 실시예들은, 예컨대 정보/데이터 서버로서, 백엔드 컴포넌트를 포함하거나, 미들웨어 컴포넌트, 예컨대 애플리케이션 서버를 포함하거나, 프론트엔드 컴포넌트, 예컨대 사용자가 본 명세서에서 기술되는 주제의 구현과 상호작용할 수 있게 하는 웹 브라우저 또는 그래픽 사용자 인터페이스를 갖는 클라이언트 디바이스를 포함하거나, 하나 이상의 그러한 백엔드, 미들웨어, 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 정보/데이터 통신, 예컨대 컴퓨터 네트워크에 의해 상호접속될 수 있다. 통신 네트워크들의 예들은 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예컨대, 인터넷), 및 피어-투-피어 네트워크들(예컨대, 애드혹(ad hoc) 피어-투-피어 네트워크들)을 포함한다.Embodiments of the subject matter described herein may include a back-end component, such as an information/data server, or may include a middleware component, such as an application server, or may include a front-end component, such as a user, with an implementation of the subject matter described herein. It may be implemented in a computing system that includes a web browser or a client device having a graphical user interface that enables interaction, or includes any combination of one or more such backend, middleware, or frontend components. The components of the system may be interconnected by any form or medium of digital information/data communication, such as a computer network. Examples of communication networks are local area networks ("LAN") and wide area networks ("WAN"), inter-networks (eg, Internet), and peer-to-peer networks (eg, ad hoc peer-to-peer). peer networks).

컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이고, 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각자의 컴퓨터들 상에서 실행되고 서로에 대한 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 실시예들에서, 서버는 (예컨대, 클라이언트 디바이스와 상호작용하는 사용자에게 정보/데이터를 디스플레이하고 그로부터 사용자 입력을 수신할 목적으로) 정보/데이터(예컨대, HTML 페이지)를 클라이언트 디바이스로 송신한다. 클라이언트 디바이스에서 생성된 정보/데이터(예컨대, 사용자 상호작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.A computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by means of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends information/data (eg, an HTML page) to a client device (eg, for purposes of displaying the information/data to and receiving user input from a user interacting with the client device). Information/data generated at the client device (eg, results of user interactions) may be received from the client device at the server.

본 명세서가 많은 특정 구현 세부사항들을 포함하지만, 이들은 임의의 실시예들 또는 청구될 수 있는 것의 범주에 대한 제한사항으로 해석되어서는 안 되고, 오히려, 특정 실시예들에 특정적인 특징들의 설명으로서 해석되어야 한다. 별개의 실시예들의 콘텍스트에서 본 명세서에서 기술되는 소정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 콘텍스트에서 기술되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 서브조합으로 구현될 수 있다. 더욱이, 특징들이 소정 조합들에서 작용하는 것으로서 기술되고 이와 같이 심지어 초기에 주장될 수 있지만, 주장되는 조합으로부터의 하나 이상의 특징들은 일부 경우들에 있어서 조합으로부터 삭제될 수 있고, 주장되는 조합은 서브조합 또는 서브조합의 변형에 관한 것일 수 있다.Although this specification contains many specific implementation details, these should not be construed as limitations on any embodiments or the scope of what may be claimed, but rather as a description of features specific to particular embodiments. do. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, while features may be described as acting in certain combinations and thus even initially asserted, one or more features from the asserted combination may in some cases be excised from the combination, and the asserted combination may be a subcombination. Or it may be about a variation of a subcombination.

유사하게, 동작들이 도면에서 특정 순서로 묘사되어 있지만, 이는, 달리 기술되지 않는 한, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하는 것을 요구하는 것, 또는 모든 예시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 소정 환경들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 전술된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안 되고, 기술된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품에서 함께 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.Similarly, while actions are depicted in a particular order in the figures, this does not require, unless stated otherwise, that such acts be performed in the particular order shown or in a sequential order in order to achieve desirable results; or that all illustrated operations must be performed. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and that the described program components and systems are generally integrated together in a single software product or It should be understood that it may be packaged into multiple software products.

이와 같이, 주제의 특정 실시예들이 기술되었다. 다른 실시예들이 다음의 청구범위의 범주 내에 있다. 일부 경우들에 있어서, 청구범위에서 인용되는 액션들은 상이한 순서로 수행될 수 있고, 여전히, 바람직한 결과들을 달성할 수 있다. 또한, 첨부 도면에 묘사된 프로세스들은, 달리 기술되지 않는 한, 바람직한 결과들을 달성하기 위해, 반드시, 도시된 특정 순서 또는 순차적인 순서를 요구하지는 않는다. 소정 구현예들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.As such, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. Further, the processes depicted in the accompanying drawings do not necessarily require the specific order shown or sequential order in order to achieve desirable results, unless otherwise stated. In certain implementations, multitasking and parallel processing may be advantageous.

결론conclusion

본 명세서에 개시된 원리들에 따른 다양한 실시예들이 도시되고 위에서 기술되었지만, 본 개시내용의 교시로부터 벗어나지 않고서 당업자에 의해 이들의 수정들이 이루어질 수 있다. 본 명세서에서 기술되는 실시예들은 대표적인 것일 뿐이며, 제한하는 것으로 의도되지 않는다. 많은 변형들, 조합들, 및 수정들이 가능하고, 개시내용의 범주 내에 있다. 실시예들)의 특징들을 조합, 통합, 및/또는 생략하는 것으로부터 생성된 대안의 실시예들이 또한 개시내용의 범주 내에 있다. 따라서, 보호의 범주는 위에 제시된 설명에 의해 제한되는 것이 아니라 다음에 오는 청구범위에 의해 정의되며, 그 범주는 청구범위의 주제의 모든 등가물들을 포함한다. 각각의 그리고 모든 청구항은 추가 개시내용으로서 명세서 내에 통합되고, 청구항들은 본 개시내용의 실시예(들)이다. 더욱이, 위에서 설명된 임의의 이점들 및 특징들은 특정 실시예들에 관한 것일 수 있지만, 그러한 주장되는 청구항들의 적용을, 위의 이점들 중 임의의 것 또는 모두를 달성하거나 위의 특징들 중 임의의 것 또는 모두를 갖는 프로세스들 및 구조들로 제한하지 않을 것이다.Although various embodiments in accordance with the principles disclosed herein have been shown and described above, modifications thereof may be made by those skilled in the art without departing from the teachings of the present disclosure. The embodiments described herein are representative only and are not intended to be limiting. Many variations, combinations, and modifications are possible and within the scope of the disclosure. Alternate embodiments resulting from combining, integrating, and/or omitting features of the embodiments are also within the scope of the disclosure. Accordingly, the scope of protection is not limited by the description given above, but is defined by the claims that follow, which scope includes all equivalents of the subject matter of the claims. Each and every claim is incorporated into the specification as further disclosure, and the claims are an embodiment(s) of the disclosure. Moreover, any advantages and features described above may be directed to particular embodiments, but application of such claimed claims to achieve any or all of the above advantages or to any of the above features It will not be limited to processes and structures having one or all.

또한, 본 명세서에서 사용되는 섹션 제목들은 37 C.F.R. §1.77 하의 제안들과의 일치를 위해 또는 달리 조직적 신호들을 제공하기 위해 제공된다. 이러한 제목들은 이러한 개시내용으로부터 발표될 수 있는 임의의 청구항들에서 제시되는 개시내용을 제한하거나 특징화하지 않을 것이다. 예를 들어, "배경기술"에서의 기술의 설명은 소정 기술이 본 개시내용 중 임의의 개시내용에 대한 종래 기술이라는 시인으로서 이해되어서는 안 된다. 어느 것도 청구되는 청구항들에서 설명되는 개시내용의 제한하는 특성으로 간주되어야 하는 "발명의 내용"이 아니다. 더욱이, 본 개시내용에서 단수형의 "개시내용" 또는 "실시예"에 대한 임의의 언급은 본 개시내용에서 신규성의 단일 포인트만이 있음을 주장하는 데 사용되어서는 안 된다. 본 개시내용의 다수의 실시예들은 본 개시내용으로부터 주장되는 다수의 청구항들의 제한에 따라 설명될 수 있고, 그러한 청구항들은 그에 따라 개시내용, 및 이에 의해 보호되는 그들의 등가물들을 정의한다. 모든 경우들에 있어서, 청구범위의 범주는 본 개시내용에 비추어 그들 자신의 장점들에 대해 고려될 것이지만, 본 명세서에서 설명되는 제목들에 의해 제약되어서는 안 된다.In addition, section headings used herein refer to 37 C.F.R. It is provided for compliance with proposals under §1.77 or otherwise to provide organizational signals. These headings are not intended to limit or characterize the disclosure presented in any claims that may be issued from this disclosure. For example, a description of a technology in the "Background" is not to be construed as an admission that certain technology is prior art to any of the disclosures herein. None of this is "inventive subject matter" which should be regarded as a limiting character of the disclosure set forth in the claimed claims. Moreover, any reference to “disclosure” or “embodiments” in the singular in this disclosure should not be used to assert that there is only a single point of novelty in this disclosure. Many embodiments of this disclosure may be described in accordance with the limitations of a number of claims asserted from this disclosure, which claims thus define the disclosure, and their equivalents protected thereby. In all cases, the scope of the claims is to be considered on their own merits in light of this disclosure, but should not be limited by the headings set forth herein.

또한, 다양한 실시예들에서 별개 또는 개별로서 설명 및 예시된 기법들, 시스템들, 서브시스템들, 및 방법들은 본 개시내용의 범주로부터 벗어나지 않고서 다른 시스템들, 모듈들, 기법들, 또는 방법들과 조합 또는 통합될 수 있다. 서로 커플링되거나 통신하는 것으로 도시 또는 논의된 다른 디바이스들 또는 컴포넌트들은, 전기적으로든, 기계적으로든, 또는 다른 방식으로든, 일부 중간 디바이스 또는 컴포넌트를 통해 간접적으로 커플링될 수 있다. 변경들, 치환들, 및 변형들의 다른 예들은 당업자에 의해 확인가능하고, 본 명세서에 개시된 범주로부터 벗어나지 않고서 행해질 수 있다.Also, the techniques, systems, subsystems, and methods described and illustrated as separate or separate in the various embodiments may be combined with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. may be combined or incorporated. Other devices or components shown or discussed as being coupled or in communication with each other may be indirectly coupled, whether electrically, mechanically, or otherwise, through some intermediate device or component. Other examples of alterations, substitutions, and variations are discernible to those skilled in the art and can be made without departing from the scope disclosed herein.

본 개시내용의 많은 수정들 및 다른 실시예들은 이러한 실시예들이 전술한 설명들 및 연관된 도면들에서 제시된 교시들의 이익을 갖는 것에 관련된 당업자에게 생각날 것이다. 도면들이 본 명세서에서 설명되는 장치 및 시스템들의 소정 컴포넌트들만을 보여주지만, 다양한 다른 컴포넌트들이 본 명세서에 개시된 그룹 기반 통신 플랫폼과 함께 사용될 수 있다는 것이 이해된다. 따라서, 개시내용은 개시된 특정 실시예들로 제한되어서는 안 되고, 수정들 및 다른 실시예들이 첨부된 청구범위의 범주 내에 포함되는 것으로 의도된다는 것이 이해되어야 한다. 예를 들어, 다양한 요소들 또는 컴포넌트들이 다른 시스템에서 조합, 재배열, 또는 통합될 수 있고, 또는 소정 특징들이 생략되거나 구현되지 않을 수 있다. 더욱이, 위에 설명된 임의의 방법에서의 단계들은 반드시, 첨부한 도면에 묘사된 순서로 발생하지는 않을 수도 있고, 일부 경우들에 있어서, 묘사된 단계들 중 하나 이상은 실질적으로 동시에 발생할 수 있고, 또는 추가 단계들이 수반될 수 있다. 특정 용어들이 본 명세서에서 채용되어 있지만, 그들은 제한의 목적을 위해서가 아니라 일반적 및 설명적 관점에서 사용된다.Many modifications and other embodiments of the present disclosure will occur to those skilled in the art with the benefit of these embodiments having the benefit of the teachings presented in the foregoing descriptions and associated drawings. Although the drawings show only certain components of the apparatus and systems described herein, it is understood that various other components may be used with the group-based communication platform disclosed herein. Accordingly, it should be understood that the disclosure is not to be limited to the specific embodiments disclosed, but that modifications and other embodiments are intended to be included within the scope of the appended claims. For example, various elements or components may be combined, rearranged, or integrated in other systems, or certain features may be omitted or not implemented. Moreover, the steps in any method described above may not necessarily occur in the order depicted in the accompanying drawings, and in some cases, one or more of the depicted steps may occur substantially simultaneously; or Additional steps may be involved. Although specific terms are employed herein, they are used in a general and descriptive sense and not for purposes of limitation.

Claims (36)

컴퓨터 구현 방법으로서,
그룹 기반 통신 플랫폼 상에 제1 채널 식별과 연관된 제1 통신 채널을 생성하라는 명령어를 수신하는 단계 - 상기 제1 통신 채널은 제1 조직과 연관되고, 상기 제1 조직에 대응하는 제1 그룹 식별과 연관된 하나 이상의 제1 사용자들만 상기 제1 통신 채널과 연관된 제1 채널 데이터에 액세스하도록 허용됨 -;
상기 하나 이상의 제1 사용자들 중의 사용자와 연관된 제1 클라이언트 디바이스로부터, 상기 그룹 기반 통신 플랫폼 상에 제2 채널 식별과 연관된 제2 통신 채널을 생성하라는 명령어를 수신하는 단계;
제2 조직의 제2 클라이언트 디바이스에, 상기 제2 조직과 상기 제2 통신 채널의 연관성을 인가하기 위해 요청을 송신하는 단계;
상기 제2 조직의 상기 제2 클라이언트 디바이스로부터 상기 요청의 인가를 수신하는 것에 응답하여, 상기 제2 조직을 상기 제2 통신 채널과 연관시키는 단계 - 상기 제2 통신 채널은 상기 제1 조직 및 상기 제1 조직과는 상이한 적어도 2개의 다른 조직들과 연관되고, 상기 제2 조직과 연관된, 상기 적어도 2개의 다른 조직들의 하나 이상의 제2 사용자들은 상기 제2 조직에 대응하는 제2 그룹 식별과 연관되고, 제3 조직과 연관된, 상기 적어도 2개의 다른 조직들의 하나 이상의 제3 사용자들은 상기 제3 조직에 대응하는 제3 그룹 식별과 연관되고, 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 및 상기 하나 이상의 제3 사용자들은 상기 제2 통신 채널과 연관된 제2 채널 데이터에 액세스하도록 허용됨 -;
상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 또는 상기 하나 이상의 제3 사용자들 중 하나와 연관된 제3 클라이언트 디바이스로부터 메시지를 수신하는 단계 - 상기 메시지는 상기 제2 채널 식별과 연관됨 -; 및
상기 메시지가 상기 제2 채널 식별과 연관된다는 결정에 적어도 부분적으로 기초하여, 상기 메시지를 상기 제2 채널 데이터와 연관시키는 단계 - 상기 메시지를 상기 제2 채널 데이터와 연관시킨 것에 적어도 부분적으로 기초하여, 상기 메시지는 상기 그룹 기반 통신 플랫폼과 연관된 채널 기반 사용자 인터페이스를 통해 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 및 상기 하나 이상의 제3 사용자들에 의해 보일 수 있음 - 를 포함하는, 컴퓨터 구현 방법.
As a computer implemented method,
Receiving an instruction to create a first communication channel associated with a first channel identification on a group-based communication platform, wherein the first communication channel is associated with a first organization and includes a first group identification corresponding to the first organization. only one or more associated first users are permitted to access first channel data associated with the first communication channel;
receiving, from a first client device associated with a user of the one or more first users, an instruction to create a second communication channel associated with a second channel identification on the group-based communication platform;
sending a request to a second client device of a second organization to authorize an association of the second communication channel with the second organization;
in response to receiving authorization of the request from the second client device of the second organization, associating the second organization with the second communication channel, the second communication channel comprising the first organization and the second communication channel; associated with at least two other organizations different from the first organization, wherein one or more second users of the at least two other organizations associated with the second organization are associated with a second group identification corresponding to the second organization; Associated with a third organization, one or more third users of the at least two other organizations are associated with a third group identification corresponding to the third organization, the one or more first users, the one or more second users, and the one or more third users are permitted to access second channel data associated with the second communication channel;
receiving a message from a third client device associated with one of the one or more first users, the one or more second users, or the one or more third users, the message being associated with the second channel identification; -; and
associating the message with the second channel data based at least in part on a determination that the message is associated with the second channel identification - based at least in part on associating the message with the second channel data; wherein the message is viewable by the one or more first users, the one or more second users, and the one or more third users via a channel-based user interface associated with the group-based communication platform. computer implemented method.
제1항에 있어서,
상기 메시지는 상기 채널 기반 사용자 인터페이스를 통해 상기 제2 통신 채널과 연관하여 제시되는, 컴퓨터 구현 방법.
According to claim 1,
wherein the message is presented in association with the second communication channel via the channel-based user interface.
제2항에 있어서,
상기 채널 기반 사용자 인터페이스는 상기 제2 통신 채널이 적어도 하나의 외부 엔티티와 연관된다는 표시를 포함하는, 컴퓨터 구현 방법.
According to claim 2,
wherein the channel-based user interface includes an indication that the second communication channel is associated with at least one external entity.
제2항에 있어서,
상기 제2 통신 채널은 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 또는 상기 하나 이상의 제3 사용자들 중 적어도 하나에 의해 포스트되는 하나 이상의 메시지들을 포함하는 메시징 패널(pane)과 연관되고, 상기 메시지는 상기 메시징 패널을 통해 제시되는, 컴퓨터 구현 방법.
According to claim 2,
The second communication channel is associated with a messaging pane comprising one or more messages posted by at least one of the one or more first users, the one or more second users, or the one or more third users. and wherein the message is presented via the messaging panel.
제1항에 있어서,
상기 요청은 제1 요청을 포함하고, 상기 인가는 제1 인가를 포함하며,
적어도 상기 제3 조직을 상기 제2 통신 채널과 연관시키는 것 이전에:
상기 제3 조직과 상기 제2 통신 채널의 연관성을 인가하기 위해 제2 요청을 상기 제3 조직의 제4 클라이언트 디바이스로 송신하는 단계; 및
상기 제3 조직의 상기 제4 클라이언트 디바이스로부터 상기 제2 요청의 제2 인가를 수신하는 단계; 및
상기 제2 인가를 수신한 것에 적어도 부분적으로 기초하여 상기 제3 조직을 상기 제2 통신 채널과 연관시키는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
According to claim 1,
the request comprises a first request, the authorization comprises a first authorization;
At least prior to associating the third organization with the second communication channel:
sending a second request to a fourth client device of the third organization to authorize association of the second communication channel with the third organization; and
receiving a second authorization of the second request from the fourth client device of the third organization; and
associating the third organization with the second communication channel based at least in part on receiving the second authorization.
제1항에 있어서,
상기 하나 이상의 제1 사용자들은 상기 제1 조직과 연관된 허가들의 제1 세트와 연관되고;
상기 하나 이상의 제2 사용자들은 상기 제2 조직과 연관된 허가들의 제2 세트와 연관되고;
상기 하나 이상의 제3 사용자들은 상기 제3 조직과 연관된 허가들의 제3 세트와 연관되는, 컴퓨터 구현 방법.
According to claim 1,
the one or more first users are associated with a first set of permissions associated with the first organization;
the one or more second users are associated with a second set of permissions associated with the second organization;
wherein the one or more third users are associated with a third set of permissions associated with the third organization.
제1항에 있어서,
상기 제1 그룹 식별, 상기 제2 그룹 식별, 및 상기 제3 그룹 식별은 상기 그룹 기반 통신 플랫폼에 의해 사용가능하여, 개별 메시지들의 액세스 제어를 용이하게 하는 것 또는 상기 개별 메시지들에 대한 콘텍스트를 결정하는 것 중 적어도 하나를 행하는, 컴퓨터 구현 방법.
According to claim 1,
The first group identification, the second group identification, and the third group identification are usable by the group-based communication platform to facilitate access control of individual messages or to determine a context for the individual messages. A computer implemented method that does at least one of:
제1항에 있어서,
상기 하나 이상의 제1 사용자들 중 하나와 연관된 제4 클라이언트 디바이스로부터 다른 메시지를 수신하는 단계 - 상기 다른 메시지는 상기 제1 채널 식별과 연관됨 -; 및
상기 다른 메시지가 상기 제1 채널 식별과 연관된다는 결정에 적어도 부분적으로 기초하여, 상기 메시지를 상기 제1 그룹 식별과 연관된 각각의 클라이언트 디바이스로 송신하는 단계 - 상기 메시지는 그룹 기반 통신 플랫폼과 연관된 상기 채널 기반 사용자 인터페이스를 통해 상기 하나 이상의 제1 사용자들에 의해 보기가능하고, 상기 하나 이상의 제2 사용자들 또는 상기 하나 이상의 제3 사용자들에 의해 보기가능하지 않음 - 를 추가로 포함하는, 컴퓨터 구현 방법.
According to claim 1,
receiving another message from a fourth client device associated with one of the one or more first users, the another message associated with the first channel identification; and
based at least in part on a determination that the other message is associated with the first channel identification, transmitting the message to each client device associated with the first group identification, the message being sent to the channel associated with the group-based communication platform. viewable by the one or more first users via a base user interface and not viewable by the one or more second users or the one or more third users.
제1항에 있어서,
상기 하나 이상의 제2 사용자들 및 상기 하나 이상의 제3 사용자들은 상기 제1 통신 채널과 연관된 상기 제1 채널 데이터에 액세스하도록 허용되지 않는, 컴퓨터 구현 방법.
According to claim 1,
wherein the one or more second users and the one or more third users are not permitted to access the first channel data associated with the first communication channel.
시스템으로서,
하나 이상의 프로세서들;
명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체들을 포함하고, 상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 시스템으로 하여금:
그룹 기반 통신 플랫폼 상에 제1 채널 식별과 연관된 제1 통신 채널을 생성하라는 명령어를 수신하는 동작 - 상기 제1 통신 채널은 제1 조직과 연관되고, 상기 제1 조직에 대응하는 제1 그룹 식별과 연관된 하나 이상의 제1 사용자들만 상기 제1 통신 채널과 연관된 제1 채널 데이터에 액세스하도록 허용됨 -;
상기 하나 이상의 제1 사용자들 중의 사용자와 연관된 제1 클라이언트 디바이스로부터, 상기 그룹 기반 통신 플랫폼 상에 제2 채널 식별과 연관된 제2 통신 채널을 생성하라는 명령어를 수신하는 동작;
제2 조직의 제2 클라이언트 디바이스에, 상기 제2 조직과 상기 제2 통신 채널의 연관성을 인가하기 위해 요청을 송신하는 동작;
상기 제2 조직의 상기 제2 클라이언트 디바이스로부터 상기 요청의 인가를 수신하는 것에 응답하여, 상기 제2 조직을 상기 제2 통신 채널과 연관시키는 동작 - 상기 제2 통신 채널은 상기 제1 조직 및 상기 제1 조직과는 상이한 적어도 2개의 다른 조직들과 연관되고, 상기 제2 조직과 연관된, 상기 적어도 2개의 다른 조직들의 하나 이상의 제2 사용자들은 상기 제2 조직에 대응하는 제2 그룹 식별과 연관되고, 제3 조직과 연관된, 상기 적어도 2개의 다른 조직들의 하나 이상의 제3 사용자들은 상기 제3 조직에 대응하는 제3 그룹 식별과 연관되고, 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 및 상기 하나 이상의 제3 사용자들은 상기 제2 통신 채널과 연관된 제2 채널 데이터에 액세스하도록 허용됨 -;
상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 또는 상기 하나 이상의 제3 사용자들 중 하나와 연관된 제3 클라이언트 디바이스로부터 메시지를 수신하는 동작 - 상기 메시지는 상기 제2 채널 식별과 연관됨 -; 및
상기 메시지가 상기 제2 채널 식별과 연관된다는 결정에 적어도 부분적으로 기초하여, 상기 메시지를 상기 제2 채널 데이터와 연관시키는 동작 - 상기 메시지를 상기 제2 채널 데이터와 연관시킨 것에 적어도 부분적으로 기초하여, 상기 메시지는 상기 그룹 기반 통신 플랫폼과 연관된 채널 기반 사용자 인터페이스를 통해 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 및 상기 하나 이상의 제3 사용자들에 의해 보일 수 있음 - 을 포함하는 동작들을 수행하게 하는, 시스템.
As a system,
one or more processors;
one or more computer readable media storing instructions, which, when executed by the one or more processors, cause the system to:
Receiving an instruction to create a first communication channel associated with a first channel identification on a group-based communication platform, the first communication channel being associated with a first organization and comprising: a first group identification corresponding to the first organization; only one or more associated first users are permitted to access first channel data associated with the first communication channel;
receiving, from a first client device associated with a user of the one or more first users, an instruction to create a second communication channel associated with a second channel identification on the group-based communication platform;
sending a request to a second client device of a second organization to authorize an association of the second communication channel with the second organization;
in response to receiving authorization of the request from the second client device of the second organization, associating the second organization with the second communication channel, the second communication channel comprising the first organization and the second communication channel; associated with at least two other organizations different from the first organization, wherein one or more second users of the at least two other organizations associated with the second organization are associated with a second group identification corresponding to the second organization; Associated with a third organization, one or more third users of the at least two other organizations are associated with a third group identification corresponding to the third organization, the one or more first users, the one or more second users, and the one or more third users are permitted to access second channel data associated with the second communication channel;
Receiving a message from a third client device associated with one of the one or more first users, the one or more second users, or the one or more third users, the message being associated with the second channel identification. -; and
associating the message with the second channel data based at least in part on a determination that the message is associated with the second channel identification - based at least in part on associating the message with the second channel data; the message is viewable by the one or more first users, the one or more second users, and the one or more third users via a channel-based user interface associated with the group-based communication platform; A system that makes them do things.
제10항에 있어서,
상기 동작들은,
상기 제1 조직에 대한 상기 제2 통신 채널과 연관된 제어부들의 제1 세트, 상기 제2 조직에 대한 상기 제2 통신 채널과 연관된 제어부들의 제2 세트, 및 상기 제3 조직에 대한 상기 제2 통신 채널과 연관된 제어부들의 제3 세트를 결정하는 동작을 추가로 포함하고,
상기 제어부들의 제1 세트는 상기 제어부들의 제2 세트와는 상이하고, 상기 제어부들의 제3 세트는 상기 제어부들의 제1 세트 또는 상기 제어부들의 제2 세트 중 적어도 하나와는 상이하고, 및
상기 제어부들의 제1 세트, 상기 제어부들의 제2 세트, 또는 상기 제어부들의 제3 세트 중 적어도 하나는 액세스 제어부들 또는 보기 특권 설정들 중 적어도 하나를 포함하는, 시스템.
According to claim 10,
These actions are
The first set of controls associated with the second communication channel to the first organization, the second set of controls associated with the second communication channel to the second organization, and the second communication channel to the third organization. further comprising determining a third set of controls associated with;
the first set of controls is different from the second set of controls, the third set of controls is different from at least one of the first set of controls or the second set of controls, and
and wherein at least one of the first set of controls, the second set of controls, or the third set of controls includes at least one of access controls or viewing privilege settings.
제10항에 있어서,
상기 동작들은,
상기 제1 조직에 대한 상기 제2 통신 채널과 연관된 속성들의 제1 세트, 상기 제2 조직에 대한 상기 제2 통신 채널과 연관된 속성들의 제2 세트, 및 상기 제3 조직에 대한 상기 제2 통신 채널과 연관된 속성들의 제3 세트를 결정하는 동작을 추가로 포함하고,
상기 속성들의 제1 세트는 상기 속성들의 제2 세트와는 상이하고, 상기 속성들의 제3 세트는 상기 속성들의 제1 세트 또는 상기 속성들의 제2 세트 중 적어도 하나와는 상이한, 시스템.
According to claim 10,
These actions are
A first set of attributes associated with the second communication channel to the first organization, a second set of attributes associated with the second communication channel to the second organization, and the second communication channel to the third organization. Further comprising determining a third set of attributes associated with
wherein the first set of attributes is different from the second set of attributes, and wherein the third set of attributes is different from at least one of the first set of attributes or the second set of attributes.
제12항에 있어서,
상기 속성들의 제1 세트, 상기 속성들의 제2 세트, 또는 상기 속성들의 제3 세트 중 적어도 하나는 상기 제2 통신 채널의 명칭, 상기 제2 통신 채널의 목적, 또는 상기 제2 통신 채널과 연관된 주제 중 적어도 하나를 포함하는, 시스템.
According to claim 12,
At least one of the first set of attributes, the second set of attributes, or the third set of attributes may be a name of the second communication channel, a purpose of the second communication channel, or a subject associated with the second communication channel. A system comprising at least one of
제10항에 있어서,
상기 제1 조직과 연관된 상기 채널 기반 사용자 인터페이스의 제1 인스턴스는 상기 제2 조직과 연관된 상기 채널 기반 사용자 인터페이스의 제2 인스턴스 또는 상기 제3 조직과 연관된 상기 채널 기반 사용자 인터페이스의 제3 인스턴스 중 적어도 하나와는 상이한, 시스템.
According to claim 10,
The first instance of the channel-based user interface associated with the first organization is at least one of a second instance of the channel-based user interface associated with the second organization or a third instance of the channel-based user interface associated with the third organization. different from the system.
제10항에 있어서,
상기 제1 클라이언트 디바이스를 통해 제시된 상기 채널 기반 사용자 인터페이스의 인스턴스는 상기 제1 통신 채널의 표시 및 상기 제2 통신 채널의 표시를 포함하고, 상기 메시지는 상기 제2 통신 채널의 표시와 연관하여 제시되는, 시스템.
According to claim 10,
wherein the instance of the channel-based user interface presented via the first client device includes an indication of the first communication channel and an indication of the second communication channel, and wherein the message is presented in association with the indication of the second communication channel. , system.
명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체들로서, 상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
그룹 기반 통신 플랫폼 상에 제1 채널 식별과 연관된 제1 통신 채널을 생성하라는 명령어를 수신하는 동작 - 상기 제1 통신 채널은 제1 조직과 연관되고, 상기 제1 조직에 대응하는 제1 그룹 식별과 연관된 하나 이상의 제1 사용자들만 상기 제1 통신 채널과 연관된 제1 채널 데이터에 액세스하도록 허용됨 -;
상기 하나 이상의 제1 사용자들 중의 사용자와 연관된 제1 클라이언트 디바이스로부터, 상기 그룹 기반 통신 플랫폼 상에 제2 채널 식별과 연관된 제2 통신 채널을 생성하라는 명령어를 수신하는 동작;
제2 조직의 제2 클라이언트 디바이스에, 상기 제2 조직과 상기 제2 통신 채널의 연관성을 인가하기 위해 요청을 송신하는 동작;
상기 제2 조직의 상기 제2 클라이언트 디바이스로부터 상기 요청의 인가를 수신하는 것에 응답하여, 상기 제2 조직을 상기 제2 통신 채널과 연관시키는 동작 - 상기 제2 통신 채널은 상기 제1 조직 및 상기 제1 조직과는 상이한 적어도 2개의 다른 조직들과 연관되고, 상기 제2 조직과 연관된, 상기 적어도 2개의 다른 조직들의 하나 이상의 제2 사용자들은 상기 제2 조직에 대응하는 제2 그룹 식별과 연관되고, 제3 조직과 연관된, 상기 적어도 2개의 다른 조직들의 하나 이상의 제3 사용자들은 상기 제3 조직에 대응하는 제3 그룹 식별과 연관되고, 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 및 상기 하나 이상의 제3 사용자들은 상기 제2 통신 채널과 연관된 제2 채널 데이터에 액세스하도록 허용됨 -;
상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 또는 상기 하나 이상의 제3 사용자들 중 하나와 연관된 제3 클라이언트 디바이스로부터 메시지를 수신하는 동작 - 상기 메시지는 상기 제2 채널 식별과 연관됨 -; 및
상기 메시지가 상기 제2 채널 식별과 연관된다는 결정에 적어도 부분적으로 기초하여, 상기 메시지를 상기 제2 채널 데이터와 연관시키는 동작 - 상기 메시지를 상기 제2 채널 데이터와 연관시킨 것에 적어도 부분적으로 기초하여, 상기 메시지는 상기 그룹 기반 통신 플랫폼과 연관된 채널 기반 사용자 인터페이스를 통해 상기 하나 이상의 제1 사용자들, 상기 하나 이상의 제2 사용자들, 및 상기 하나 이상의 제3 사용자들에 의해 보일 수 있음 - 을 포함하는 동작들을 수행하게 하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
One or more non-transitory computer readable media storing instructions that, when executed by one or more processors, cause the one or more processors to:
Receiving an instruction to create a first communication channel associated with a first channel identification on a group-based communication platform, the first communication channel being associated with a first organization and comprising: a first group identification corresponding to the first organization; only one or more associated first users are permitted to access first channel data associated with the first communication channel;
receiving, from a first client device associated with a user of the one or more first users, an instruction to create a second communication channel associated with a second channel identification on the group-based communication platform;
sending a request to a second client device of a second organization to authorize an association of the second communication channel with the second organization;
in response to receiving authorization of the request from the second client device of the second organization, associating the second organization with the second communication channel, the second communication channel comprising the first organization and the second communication channel; associated with at least two other organizations different from the first organization, wherein one or more second users of the at least two other organizations associated with the second organization are associated with a second group identification corresponding to the second organization; Associated with a third organization, one or more third users of the at least two other organizations are associated with a third group identification corresponding to the third organization, the one or more first users, the one or more second users, and the one or more third users are permitted to access second channel data associated with the second communication channel;
Receiving a message from a third client device associated with one of the one or more first users, the one or more second users, or the one or more third users, the message being associated with the second channel identification. -; and
associating the message with the second channel data based at least in part on a determination that the message is associated with the second channel identification - based at least in part on associating the message with the second channel data; the message is viewable by the one or more first users, the one or more second users, and the one or more third users via a channel-based user interface associated with the group-based communication platform; One or more non-transitory computer readable media that cause
제16항에 있어서,
상기 채널 기반 사용자 인터페이스는, 상기 제1 클라이언트 디바이스를 통해 제시될 때, 상기 제1 통신 채널 및 상기 제2 통신 채널을 포함하고, 상기 채널 기반 사용자 인터페이스는, 상기 하나 이상의 제2 사용자들 또는 상기 하나 이상의 제3 사용자들 중 하나와 연관된 제4 클라이언트 디바이스를 통해 제시될 때, 상기 제2 통신 채널을 포함하고 상기 제1 통신 채널을 배제하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
According to claim 16,
The channel-based user interface, when presented via the first client device, includes the first communication channel and the second communication channel, the channel-based user interface being directed to the one or more second users or the one One or more non-transitory computer-readable media, when presented via a fourth client device associated with one of the above third users, including the second communication channel and excluding the first communication channel.
제17항에 있어서,
상기 채널 기반 사용자 인터페이스는 상기 제2 통신 채널이 적어도 하나의 외부 엔티티와 연관된다는 표시를 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
According to claim 17,
wherein the channel-based user interface includes an indication that the second communication channel is associated with at least one external entity.
제16항에 있어서,
상기 동작들은,
상기 제1 조직에 대한 상기 제2 통신 채널과 연관된 제어부들의 제1 세트, 상기 제2 조직에 대한 상기 제2 통신 채널과 연관된 제어부들의 제2 세트, 및 상기 제3 조직에 대한 상기 제2 통신 채널과 연관된 제어부들의 제3 세트를 결정하는 동작을 추가로 포함하고,
상기 제어부들의 제1 세트는 상기 제어부들의 제2 세트와는 상이하고, 상기 제어부들의 제3 세트는 상기 제어부들의 제1 세트 또는 상기 제어부들의 제2 세트 중 적어도 하나와는 상이하고, 및
상기 제어부들의 제1 세트, 상기 제어부들의 제2 세트, 또는 상기 제어부들의 제3 세트 중 적어도 하나는 액세스 제어부들 또는 보기 특권 설정들 중 적어도 하나를 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
According to claim 16,
These actions are
The first set of controls associated with the second communication channel to the first organization, the second set of controls associated with the second communication channel to the second organization, and the second communication channel to the third organization. further comprising determining a third set of controls associated with;
the first set of controls is different from the second set of controls, the third set of controls is different from at least one of the first set of controls or the second set of controls, and
wherein at least one of the first set of controls, the second set of controls, or the third set of controls includes at least one of access controls or viewing privilege settings.
제16항에 있어서,
상기 요청은 제1 요청을 포함하고, 상기 인가는 제1 인가를 포함하며,
상기 동작들은:
적어도 상기 제3 조직을 상기 제2 통신 채널과 연관시키는 것 이전에:
상기 제3 조직과 상기 제2 통신 채널의 연관성을 인가하기 위해 제2 요청을 상기 제3 조직의 제4 클라이언트 디바이스로 송신하는 단계; 및
상기 제3 조직의 상기 제4 클라이언트 디바이스로부터 상기 제2 요청의 제2 인가를 수신하는 단계; 및
상기 제2 인가를 수신한 것에 적어도 부분적으로 기초하여 상기 제3 조직을 상기 제2 통신 채널과 연관시키는 단계를 추가로 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체들.
According to claim 16,
the request comprises a first request, the authorization comprises a first authorization;
The above actions are:
At least prior to associating the third organization with the second communication channel:
sending a second request to a fourth client device of the third organization to authorize association of the second communication channel with the third organization; and
receiving a second authorization of the second request from the fourth client device of the third organization; and
and associating the third organization with the second communication channel based at least in part on receiving the second authorization.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020217011092A 2018-11-30 2019-11-29 Method, apparatus, and computer program product for creating externally shared communication channels KR102561557B1 (en)

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 US11586584B2 (en) 2017-07-20 2019-06-12 Method, apparatus and computer program product for generating externally shared communication channels
US16/438,957 2019-06-12
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 KR20210046082A (en) 2021-04-27
KR102561557B1 true KR102561557B1 (en) 2023-08-01

Family

ID=75589262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217011092A KR102561557B1 (en) 2018-11-30 2019-11-29 Method, apparatus, and computer program product for creating externally shared communication channels

Country Status (2)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244793B (en) * 2021-11-30 2023-11-24 泰康保险集团股份有限公司 Information processing method, device, equipment and storage medium
CN114189488B (en) * 2021-12-09 2023-10-03 青岛聚看云科技有限公司 Message sharing method and server

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 (en) * 1999-03-19 2005-04-27 富士通株式会社 Display control method and apparatus
CN1849000A (en) * 2005-04-14 2006-10-18 华为技术有限公司 Group Communication method in CDMA system
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 (en) * 2012-12-03 2018-07-06 中兴通讯股份有限公司 A kind of cluster access net, terminal device and the method for adding in cluster group
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
CN112740622B (en) 2023-01-31
KR20210046082A (en) 2021-04-27
CN112740622A (en) 2021-04-30

Similar Documents

Publication Publication Date Title
US11881959B2 (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
US20240129319A1 (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
US20210311620A1 (en) Organization of channel labels associated with a plurality of group-based communication channels in a communication platform
KR102561557B1 (en) Method, apparatus, and computer program product for creating externally shared communication channels
AU2021101081A4 (en) Method, apparatus and computer program product for generating externally shared communication channels
US11588914B2 (en) Maintaining minimum interface functionality in an absence of a push-based communications connection in a group-based communication system
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