KR102336694B1 - 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법 - Google Patents

실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102336694B1
KR102336694B1 KR1020210043395A KR20210043395A KR102336694B1 KR 102336694 B1 KR102336694 B1 KR 102336694B1 KR 1020210043395 A KR1020210043395 A KR 1020210043395A KR 20210043395 A KR20210043395 A KR 20210043395A KR 102336694 B1 KR102336694 B1 KR 102336694B1
Authority
KR
South Korea
Prior art keywords
entity
change request
entity change
received
request
Prior art date
Application number
KR1020210043395A
Other languages
English (en)
Other versions
KR20210103987A (ko
Inventor
이승원
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Publication of KR20210103987A publication Critical patent/KR20210103987A/ko
Priority to KR1020210171154A priority Critical patent/KR102405220B1/ko
Application granted granted Critical
Publication of KR102336694B1 publication Critical patent/KR102336694B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Mathematical Physics (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템은, 네트워크를 거쳐서 제1 외부 시스템으로부터, 제1 외부 시스템과 관련된 엔터티 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하도록 구성된 하나 이상의 프로세서를 포함한다. 제1 엔터티 변경 요청은 엔터티 저장소에 저장된다. 수신된 엔터티 변경 요청은, 엔터티 저장소로부터, 스트리밍 서비스에 전달하기 위한 이벤트 퍼블리셔(event publisher)로 푸쉬된다. 제1 엔터티 변경 요청은 분류되어, 스트리밍 서비스로부터, 검색 인덱스 데이터베이스로 전달된다. 이어서, 검색 인덱스는 분류된 엔터티 변경 요청에 기초하여 업데이트된다.

Description

실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR RECEIVING AND PROPAGATING EFFICIENT SEARCH UPDATES IN REAL TIME}
본 개시의 실시예는 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법에 관한 것이다. 보다 구체적으로, 본 개시의 실시예는 사용자 디바이스에 실시간으로 효율적인 검색 업데이트를 수신 및 전파함으로써, 사용자가 온라인으로 물품을 주문하고 물품을 배송할 수 있게 하는 것에 관한 것이다.
사용자(예를 들어, 온라인 고객, 온라인 판매자, 배송 인원)는 물품을 주문하기 위해(예를 들어, 음식, 식료품 주문) 종종 온라인 웹사이트 포털 또는 모바일 어플리케이션을 사용한다. 예시로서, 사용자는 온라인 웹사이트에서 그들의 정보(예를 들어, 위치 정보, 메뉴 이름)를 포함하는 프로필(profiles)을 유지한다. 사용자가 그들의 프로필 정보를 수정하는 상황에서는, 수정이 이루어진 때부터 온라인 웹사이트 포털에 수정이 반영될 때까지 상당한 시간 지연 또는 시간 차이가 있다. 결과적으로 수정을 반영하는 것의 지연은 사용자에게 불편을 초래한다.
예시로서, 식당이 음식 주문 웹사이트를 위한 온라인 웹사이트 포털을 사용함으로써 그들의 온라인 메뉴 내용(예를 들어, 요리 이름, 요리의 가격, 식당 시간 등)을 업데이트할 때, 온라인 메뉴의 변경은 상당한 시간 지연 후에 음식 주문 웹사이트에 반영될 것이다. 이러한 업데이트 프로세스에 활용되는 현재의 솔루션(solutions)은 이들 업데이트 요청이 일괄적으로 처리되므로 실시간(real time)이 아니다. 요청은 정기적인 시간 주기로 네트워크 서버에 의해 처리되어, 이들 시간 주기 동안 수신된 요청은 시간 주기가 끝날 때 일괄적으로 함께 처리된다. 네트워크 서버에 의한 업데이트의 일괄 처리는 사용자에게 업데이트를 반영하는데 상당한 시간 지연을 야기한다. 따라서, 현재의 솔루션은 비효율적이고 지연을 발생시키므로, 업데이트를 실시간으로 반영할 필요가 있다.
본 개시의 실시예에 따라, 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템이 제공되고, 시스템은: 명령어를 저장하는 메모리; 및 네트워크를 거쳐서 제1 외부 시스템으로부터, 제1 외부 시스템과 관련된 엔터티 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하고; 수신된 제1 엔터티 변경 요청을 엔터티 저장소에 저장하고; 수신된 엔터티 변경 요청을 엔터티 저장소로부터 스트리밍 서비스에 전달하기 위한 이벤트 퍼블리셔(event publisher)로 푸쉬(push)하고; 제1 엔터티 변경 요청을 분류하고; 스트리밍 서비스로부터, 분류된 엔터티 변경 요청을 검색 인덱스 데이터베이스로 전달하고; 그리고 분류된 엔터티 변경 요청에 기초하여 검색 인덱스를 업데이트하기 위해 명령어를 실행하도록 구성된 적어도 하나의 프로세서를 포함한다.
본 개시의 실시예에 따라, 효율적인 검색 업데이트를 수신 및 전파하기 위한 컴퓨터 구현된 방법이 또한 제공되고, 방법은: 네트워크를 거쳐서 제1 외부 시스템으로부터 제1 외부 시스템과 관련된 엔터티 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하는 것; 수신된 제1 엔터티 변경 요청을 엔터티 저장소에 저장하는 것; 수신된 엔터티 변경 요청을 엔터티 저장소로부터 스트리밍 서비스에 전달하기 위한 이벤트 퍼블리셔로 푸쉬하는 것; 제1 엔터티 변경 요청을 분류하는 것; 스트리밍 서비스로부터, 분류된 엔터티 변경 요청을 검색 인덱스 데이터베이스로 전달하는 것; 및 분류된 엔터티 변경 요청에 기초하여 검색 인덱스를 업데이트하는 것을 포함한다.
본 개시의 실시예에 따라, 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템이 제공되고, 시스템은: 명령어를 저장하는 메모리; 및 네트워크를 거쳐서 제1 외부 시스템으로부터, 제1 외부 시스템과 관련된 엔터티 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하고; 수신된 제1 엔터티 변경 요청을 이벤트 저장소에 저장하고; 수신된 엔터티 변경 요청을 이벤트 저장소로부터 스트리밍 서비스에 전달하기 위한 이벤트 퍼블리셔로 푸쉬하고; 수신된 엔터티 변경 요청을 이벤트 저장소로부터 캐시 데이터베이스(cache database) 내 저장을 위한 제2 이벤트 퍼블리셔로 푸쉬하고 - 수신된 이벤트 변경 요청을 이벤트 저장소로부터 이벤트 퍼블리셔 및 제2 이벤트 퍼블리셔로 푸쉬하는 것은 수신된 엔터티 변경 요청을 스냅샷(snapshot)으로 포맷(formatting)하는 것을 포함함 - ; 이벤트 저장소로부터 수신된 엔터티 변경 요청을 푸쉬하는 것에 응답하여, 이벤트 저장소에서 모든 엔터티 변경 요청을 클리어(clear)하고; 제1 엔터티 변경 요청을 분류하고; 스트리밍 서비스로부터, 분류된 엔터티 변경 요청을 검색 인덱스 데이터베이스로 전달하고; 그리고 분류된 엔터티 변경 요청에 기초하여 검색 인덱스를 업데이트하기 위해 명령어를 실행하도록 구성된 적어도 하나의 프로세서를 포함한다.
본 명세서에 포함되고 그의 일부를 구성하는 첨부 도면은 개시된 실시예를 도시하고, 서술과 함께, 개시된 실시예를 설명하는 역할을 한다. 도면에서:
도 1은 개시된 실시예와 일치하는, 예시적인 시스템의 블록도이고;
도 2는 개시된 실시예와 일치하는, 예시적인 서버 시스템의 블록도이고;
도 3은 개시된 실시예와 일치하는, 예시적인 사용자 디바이스의 블록도이고;
도 4a 및 4b는 개시된 실시예와 일치하는, 실시간으로 효율적인 검색 업데이트를 수신 및 전파하는 예시적인 프로세스의 상세한 흐름도를 포함하고;
도 5는 개시된 실시예와 일치하는, 도 4a 및 4b의 예시적인 프로세스를 도시하는 흐름도를 포함하고; 그리고
도 6은 개시된 실시예와 일치하는, 도 4a 및 4b의 예시적인 프로세스를 도시하는 도 5의 대안적인 실시예를 도시하는 흐름도를 포함한다.
이제, 개시된 실시예에 대한 참조가 상세히 이루어질 것이며, 이의 예시는 첨부 도면에 도시된다. 어디서든 편리하다면, 동일하거나 유사한 부분을 지칭하기 위해 도면 전체에 걸쳐 동일한 참조 부호가 사용될 것이다.
다음의 서술이 실시간으로 효율적인 검색 업데이트를 수신 및 전파하는 것에 관련되지만, 이들 실시예는 단지 예시만으로 이루어진다. 본 개시가 특정한 개시된 실시예 및 세부사항으로 제한되지 않고, 이는 단지 예시임이 인식되어야 한다. 알려진 시스템 및 방법에 비추어 통상의 기술자에게, 특정한 설계 및 다른 요구에 의존하여, 임의의 수의 대안적인 실시예에서 그의 의도된 목적 및 이익을 위해 본 개시의 실시예의 사용을 인식할 것이라는 점이 더 이해된다.
도 1은 개시된 실시예와 일치하는 하나 이상의 동작을 수행하기 위한 예시적인 시스템(100)의 블록도이다. 일부 실시예에서, 시스템(100)은 각각 대응하는 고객 위치(104(1), ... 104(n))에 위치된 하나 이상의 고객 디바이스(102(1), ... 102(n)), 각각 대응하는 배송 수송 수단(108(1), ... 108(n))에 위치된 하나 이상의 물품 배송 제공자 디바이스(106(1), .... 106(n)), 대응하는 판매자 상점(112(1), ... 112(n))에 위치된 하나 이상의 물품 서비스 제공자 디바이스(110(1), ... 110(n))를 포함한다. 또한, 시스템(100)은 통합 서버 시스템(116), 원격 데이터베이스(120) 및 통신 네트워크(114)를 포함한다. 시스템(100)은 또한, 서로 직접적으로 통신하고, 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n))와 통신 네트워크(114)를 통해 더 통신하는 복수의 통합 서버 시스템(116)(도면에 도시되지 않음) 및 복수의 원격 데이터베이스(120)(도면에 도시되지 않음)를 포함할 수 있다. 시스템(100)에 포함된 구성요소 및 구성요소의 배열은 다양할 수 있다. 따라서, 시스템(100)은 개시된 실시예와 일치하는 하나 이상의 동작을 수행하거나 이의 수행을 보조하는 다른 구성요소를 포함할 수 있다.
이하에 더 상세히 서술되는 바와 같이, 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n)), 통합 서버 시스템(116) 및 원격 데이터베이스(120)는 하나 이상의 컴퓨팅 디바이스(예를 들어, 컴퓨터(들), 서버(들) 등), 데이터 및/또는 소프트웨어 명령어를 저장하는 메모리(예를 들어, 데이터베이스(들), 메모리 디바이스 등), 및 다른 알려진 컴퓨팅 구성요소를 포함할 수 있다. 일부 실시예에서, 하나 이상의 컴퓨팅 디바이스는 개시된 실시예와 일치하는 하나 이상의 동작을 수행하기 위해 메모리에 저장된 소프트웨어 명령어를 실행하도록 구성될 수 있다. 고객 디바이스(들)(102(1)-102(n)), 물품 배송 제공자 디바이스(들)(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n)), 통합 서버 시스템(116) 및 원격 데이터베이스(120)의 양상은 예를 들어, 통신 네트워크(114)를 통해 시스템(100)의 하나 이상의 다른 구성요소와 통신하도록 구성될 수 있다. 특정한 양상에서, 개시된 실시예와 일치하는 통신을 전송하고 수신하거나, 동작을 개시하거나, 및/또는 하나 이상의 동작에 대한 입력을 제공함으로써 시스템(100)의 하나 이상의 구성요소와 상호작용하기 위해, 고객 위치(104(1)-104(n))와 관련된 고객은 고객 디바이스(102(1)-102(n))와 각각 관련되고 이를 동작시키고, 배송 수송 수단(108(1)-108(n))과 관련된 운전자는 물품 배송 제공자 디바이스(106(1)-106(n))와 각각 관련되고 이를 동작시키며, 판매자 상점(112(1)-112(n))과 관련된 판매자는 물품 서비스 제공자 디바이스(110(1)-110(n))와 각각 관련되고 이를 동작시킨다.
통합 서버 시스템(116)은 물품에 대한 주문 서비스를 수신하거나, 처리하거나, 관리하거나 또는 다른 방식으로 제공하는 온라인 주문 엔터티와 관련될 수 있다. 예를 들어, 온라인 주문 엔터티를 통해 주문될 수 있는 물품은 준비된 음식, 식료품, 가구, 서적, 컴퓨터 및/또는 의류를 포함할 수 있지만, 임의의 다른 타입의 물품도 또한, 주문될 수 있다. 예를 들어, 통합 서버 시스템(116)은 고객 디바이스(102(1)-102(n))를 사용하는 고객으로부터 주문 요청을 수신하고, 주문된 물품을 제공할 판매자 상점(112(1)-112(n))과 관련된 물품 서비스 제공자 디바이스(110(1)-110(n))에 요청을 송신함으로써, 수신된 주문 요청을 처리할 수 있다. 통합 서버 시스템(116)은 물품 서비스 제공자 디바이스(110(1)-110(n))로부터 주문 확인 통신을 수신한다. 물품 서비스 제공자 디바이스(110(1)-110(n))로부터 주문 확인을 수신할 시, 통합 서버 시스템(116)은 판매자 상점(112(1)-112(n))으로부터 주문을 수집하고 주문을 고객 위치(104(1)-104(n))에 배송하라는 요청을 물품 배송 제공자 디바이스(106(1)-106(n))에 송신한다. 물품 배송 제공자 디바이스(106(1)-106(n))는 요청을 수락하고 요청된 물품을 수집하며, 이를 고객 위치(104(1)-104(n))로 배송한다.
시스템(100)의 원격 데이터베이스(120)는 직접적으로 또는 통신 네트워크(114)를 통해 통합 서버 시스템(116)에 통신 가능하게 결합될 수 있다. 또한, 시스템(100)의 원격 데이터베이스(120)는 통신 네트워크(114)를 통해 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)) 및 물품 서비스 제공자 디바이스(110(1)-110(n))에 통신 가능하게 결합될 수 있다. 원격 데이터베이스(120)는 정보를 저장하고 시스템(100)의 하나 이상의 구성요소에 의해 액세스되거나 및/또는 관리되는 하나 이상의 메모리 디바이스를 포함할 수 있다. 예시로서, 원격 데이터베이스(120)는 OracleTM 데이터베이스, SybaseTM 데이터베이스, 또는 다른 관계형 데이터베이스 또는 하둡(Hadoop) 시퀀스 파일, HBase 또는 Cassandra와 같은 비관계형 데이터베이스를 포함할 수 있다. 원격 데이터베이스(120)는 원격 데이터베이스(120)의 메모리 디바이스에 저장된 데이터에 대한 요청을 수신하고 처리하며, 원격 데이터베이스(120)로부터 데이터를 제공하도록 구성된 컴퓨팅 구성요소(예를 들어, 데이터베이스 관리 시스템, 데이터베이스 서버 등)를 포함할 수 있다.
원격 데이터베이스(120)는 그 중에서도, 판매자 상점(112(1)-112(n))에 위치된 물품 서비스 제공자 디바이스(110(1)-110(n))와 관련된 판매자에 대한 판매자 프로필 정보, 고객 위치(104(1)-104(n))에 위치된 고객 디바이스(102(1)-102(n))와 관련된 고객에 대한 고객 프로필 정보 및 물품 배송 제공자 디바이스(106(1)-106(n))와 관련된 운전자에 대한 운전자 프로필 정보를 저장하도록 구성된다. 일부 실시예에서, 원격 데이터베이스(120)는 예를 들어, 판매자 프로필 정보, 고객 프로필 정보 및 운전자 프로필 정보를 포함하는 데이터 엔트리를 저장한다.
판매자 상점(112(1)-112(n))은 식당, 커피숍, 서점, 의류 상점을 포함할 수 있지만, 임의의 다른 타입의 상점도 또한 포함될 수 있다. 또한, 판매자 프로필 정보는 판매자 상점 이름, 상점 메뉴, 판매자에 의해 제공된 물품의 목록, 음식의 사진, 상점의 사진, 물품의 카테고리, 음식의 카테고리, 판매자 주소, 판매자 상점 시간 및/또는 판매자의 전화번호를 포함하지만, 판매자와 관련된 임의의 다른 타입의 정보도 또한 포함될 수 있다. 고객 위치(104(1)-104(n))는 주거 위치, 사무실 건물, 아파트를 포함할 수 있지만, 임의의 다른 타입의 거주지도 또한 포함될 수 있다. 또한, 원격 데이터베이스(120)에서의 고객 프로필 정보는 고객 이름, 고객의 집 주소, 고객의 사진 및/또는 고객의 전화번호를 포함할 수 있지만, 판매자와 관련된 임의의 다른 타입의 정보도 또한 포함될 수 있다. 배송 수송 수단(108(1)-108(n))은 자동차, 자전거, 트럭, 버스를 포함할 수 있지만, 임의의 다른 타입의 배송 수송 수단도 또한 포함될 수 있다. 또한, 운전자 프로필 정보는 운전자 이름, 운전자 집 주소, 운전자의 사진 및/또는 운전자의 전화번호, 운전자가 운전하는 배송 수송 수단의 제품(make) 및 모델을 포함하지만, 운전자와 관련된 임의의 다른 타입의 정보도 또한 포함될 수 있다.
일 양상에서, 통합 서버 시스템(116)은 도 4a 및 4b 및 도 5에 관련하여 아래에 더욱 상세히 서술된 바와 같이 개시된 실시예와 일치하는 하나 이상의 동작을 수행하도록 구성된 하나 이상의 컴퓨팅 디바이스를 포함할 수 있다. 일 양상에서, 통합 서버 시스템(116)은 하나 이상의 서버 또는 서버 시스템을 포함할 수 있다. 통합 서버 시스템(116)은 메모리 또는 다른 저장 디바이스에 저장된 소프트웨어 명령어를 실행하도록 구성된 하나 이상의 프로세서를 포함할 수 있다. 하나 이상의 프로세서는 인터넷 관련 통신, 온라인 주문 기반 프로세스, 및 효율적인 검색 업데이트를 실시간으로 수신하고 전파하는 것을 수행하기 위해 저장된 소프트웨어 명령어를 실행하도록 구성될 수 있다. 통합 서버 시스템(116)의 하나 이상의 컴퓨팅 디바이스는 고객 프로필 정보, 판매자 프로필 정보 및/또는 운전자 프로필 정보를 수정하고 저장하도록 구성될 수 있다. 통합 서버 시스템(116)의 하나 이상의 컴퓨팅 디바이스는 또한, 효율적인 검색 업데이트를 실시간으로 수신하고 전파하기 위해 시스템(100)의 다른 구성요소와 통신하도록 구성될 수 있다. 일부 실시예에서, 통합 서버 디바이스(116)는 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n))에 의해 통신 네트워크(114)를 통해 액세스 가능한 하나 이상의 모바일 애플리케이션, 웹 사이트 또는 온라인 포털을 제공할 수 있다. 개시된 실시예는 통합 서버 시스템(116)의 임의의 특정한 구성으로 제한되지 않는다.
통신 네트워크(114)는 시스템(100)의 구성요소 사이에서 통신을 제공하거나 또는 데이터를 교환하거나 또는 이들 양자를 위해 구성된 임의의 타입의 컴퓨터 네트워킹 배열을 포함할 수 있다. 예를 들어, 통신 네트워크(114)는 시스템(100)의 다양한 구성요소 중 정보 교환을 가능하게 할 수 있는 인터넷, 개인용 데이터 네트워크, 공용 네트워크를 이용한 가상 개인용 네트워크, LAN 또는 WAN 네트워크, Wi-FiTM 네트워크 및/또는 다른 적합한 연결과 같이, 통신을 제공하거나, 정보를 교환하거나 및/또는 정보의 교환을 용이하게 하는 (인프라구조를 포함하는) 임의의 타입의 네트워크를 포함할 수 있다. 통신 네트워크(114)는 또한, 공중 교환 전화 네트워크("public switched telephone network, PSTN") 및/또는 무선 셀룰러 네트워크를 포함할 수 있다. 통신 네트워크(114)는 보안 네트워크 또는 비보안 네트워크일 수 있다. 일부 실시예에서, 시스템(100)의 하나 이상의 구성요소는 전용 통신 링크(들)를 통해 직접적으로 통신할 수 있다.
고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n))는 도 2에 관련하여 아래에서 더욱 상세히 서술되는 바와 같이, 개시된 실시예와 일치하는 하나 이상의 동작을 수행하도록 구성된 하나 이상의 컴퓨팅 디바이스일 수 있다. 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n))는 고객 디바이스(102(1)-102(n))에 포함되거나 이에 연결된 디스플레이 상에, 물품의 배송을 위한 온라인 주문을 하고, 주문을 받으며, 주문된 물품을 배송하기 위한 온라인 포털을 디스플레이하는 브라우저 또는 관련된 모바일 디스플레이 소프트웨어를 실행할 수 있다. 고객 디바이스(102(1)-102(n))는 또한 고객, 판매자 및/또는 운전자가 통합 서버 시스템(116)에 의해 제공되는 온라인 포털과 상호 작용할 수 있게 하는 다른 모바일 애플리케이션을 저장하고 실행할 수 있다.
시스템(100)의 기능 블록의 구성은 서술의 편의를 위해 본원에서 정의되었다는 것이 이해될 것이다. 시스템(100)에 포함된 구성요소 및 구성요소의 배열은 변할 수 있다. 예를 들어, 일부 실시예에서, 시스템(100)은 개시된 방법과 일치하는 하나 이상의 프로세스를 수행하거나 또는 이의 수행을 보조하는 다른 구성요소를 포함할 수 있다. 시스템(100)은 일반적으로 컴퓨팅 디바이스로서 서술된 다수의 구성요소를 포함한다. 컴퓨팅 디바이스의 각각은 본원에 개시된 기능을 수행하기 위해 특수 목적 컴퓨팅 디바이스(special purpose computing device)로서 특별히 구성된 임의의 수의 컴퓨팅 구성요소를 포함할 수 있다. (본원에 서술된 것의 등가물, 확장, 변형, 편차 등을 포함하는) 대안은 본원에 포함된 교시를 기초로 관련 기술(들)의 기술자에게 명백할 것이다. 이러한 대안은 개시된 실시예의 범주 및 사상 내에 속한다.
도 2는 개시된 실시예와 일치하는 예시적인 서버 디바이스(200)를 도시한다. 예시적인 서버 디바이스(200)의 변형은 통합 서버 시스템(116)의 하나 이상의 구성요소를 구성할 수 있다. 일 실시예에서, 서버 디바이스(200)는 버스(234)를 통해 통신하는 하나 이상의 메모리(202), 하나 이상의 I/O 디바이스(206) 및 하나 이상의 프로세서(208)를 포함한다. 일부 실시예에서, 서버 디바이스(200)는 통합 서버 시스템(116)의 일부일 수 있다. 일부 실시예에서, 서버 디바이스(200)는 통합 서버 시스템(116)의 완전한 기능을 수행하기 위해 통합 서버 시스템(116)에 의해 사용되는 특수하게 프로그래밍된 서버 또는 컴퓨팅 시스템의 형태를 취할 수 있다. 일부 실시예에서, 서버 디바이스(200)는 개시된 실시예와 일치하는 하나 이상의 동작을 수행하는 소프트웨어 명령어의 저장, 실행 및/또는 구현에 기초하여 장치, 내장 시스템, 전용 회로 등으로서 구성될 수 있다.
메모리(202)는 개시된 실시예에 관련된 기능을 수행하기 위해 프로세서(208)에 의해 사용되는 명령어를 저장하도록 구성된 하나 이상의 저장 디바이스를 포함할 수 있다. 예를 들어, 메모리(202)는 프로세서(208)에 의해 실행될 때 하나 이상의 동작을 수행할 수 있는 프로그램(들)(204)과 같은 하나 이상의 소프트웨어 명령어로 구성될 수 있다. 개시된 실시예는 전용 작업을 수행하도록 구성된 별도의 프로그램 또는 컴퓨터로 제한되지 않는다. 예를 들어, 메모리(202)는 서버 디바이스(200)의 기능을 수행하는 단일 프로그램(204)을 포함할 수 있거나, 또는 프로그램(204)은 다수의 프로그램을 포함할 수 있다. 특정한 실시예에서, 메모리(202)는 통합 서버 시스템(116)의 기능을 수행하기 위한 명령어의 세트 또는 프로그램(204)을 저장할 수 있다. 이들 명령어의 세트는 개시된 실시예와 일치하는 통신 및/또는 프로세스를 수행하기 위해 프로세서(208)에 의해 실행될 수 있다.
특정한 실시예에서, 서버 디바이스(200)가 통합 서버 시스템(116)의 구성요소 중 하나 이상을 구성할 때, 메모리(202)는 아래에 상세히 서술되는 바와 같이, 도메인 서비스 모듈(domain services module, 210), 엔터티 변경 리스너 모듈(entity change listener module, 212), 트랜잭션 리스너 모듈(214), 캐시 이벤트 퍼블리셔 모듈(cache event publisher module, 216), 검색 이벤트 퍼블리셔 모듈(218), 검색 인덱스 데이터베이스(220), 엔터티 변경 저장 장치(222) 및 캐시 데이터베이스(224)를 포함한다.
다른 실시예에서, 도메인 서비스 모듈(210), 엔터티 변경 리스너 모듈(212), 트랜잭션 리스너 모듈(214), 캐시 이벤트 퍼블리셔 모듈(216), 검색 이벤트 퍼블리셔 모듈(218), 검색 인덱스 데이터베이스(220), 엔터티 변경 저장 장치(222) 및 캐시 데이터베이스(224)의 각각은 서로, 원격 데이터베이스(120) 및 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n))와 통신 네트워크(114)를 통해 통신하는 별도의 개별적인 서버로 구현될 수 있다. 다른 예시에서, 검색 인덱스 데이터베이스(220), 엔터티 변경 저장 장치 및 캐시 데이터베이스는 원격 데이터베이스(120)에서 호스팅될 수 있다.
입/출력(I/O)(206)은 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)) 및/또는 물품 서비스 제공자 디바이스(110(1)-110(n))에 의해 조작될 수 있는 키보드, 마우스-타입 디바이스, 제스처 센서, 활동 센서, 물리적인 버튼, 스위치, 마이크, 터치 스크린 패널, 스타일러스(stylus) 등과 같은 다양한 입/출력 디바이스를 포함할 수 있다. I/O 디바이스(206)는 또한, 오디오 출력 디바이스를 포함할 수 있다. I/O 디바이스(206)의 예시적인 통신 모듈은 예를 들어, 단거리 또는 근거리 무선 통신 모뎀(short-range or near field wireless communication modem), Wi-FiTM 통신 모뎀 또는 셀룰러 통신 모뎀을 포함할 수 있다. I/O 디바이스(206)는 제한 없이, 셀룰러(예를 들어, 3G, 4G 등) 기술, Wi-FiTM 핫스팟 기술, RFID, 근거리 통신(NFC) 또는 BLUETOOTH® 기술 등을 포함할 수 있는 하나 이상의 무선 기술/프로토콜을 사용하여 통신하도록 구성된 트랜스시버(transceiver) 또는 송신기를 포함할 수 있다. 더욱 일반적으로, 통상의 기술자에게 알려진 임의의 단방향 또는 양방향 통신 기술은 통신 네트워크(114)를 통해, 통합 서버 시스템(116), 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)), 물품 서비스 제공자 디바이스(110(1)-110(n)) 또는 원격 데이터베이스(120)와 정보를 교환하기 위해 서버 디바이스(200)에서 구현될 수 있다.
프로세서(208)는 예를 들어, IntelTM에 의해 제조된 PentiumTM 또는 XeonTM 패밀리, 또는 AMDTM에 의해 제조된 TurionTM 패밀리로부터의 마이크로프로세서와 같은 하나 이상의 알려진 처리 디바이스를 포함할 수 있다. 개시된 실시예는 시스템(100)의 상이한 구성요소에 필요한 컴퓨팅 요구를 충족시키도록 다른 방식으로 구성된 임의의 타입의 프로세서(들)에 제한되지 않는다.
도 3은 개시된 실시예와 일치하는, 사용자 디바이스(300)의 예시적인 구성을 도시한다. 도 3의 사용자 디바이스(300)는 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)) 및 물품 서비스 제공자 디바이스(110(1)-110(n)) 각각의 예시적인 구성을 나타낸다.
사용자 디바이스(300)는 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)) 및 물품 서비스 제공자 디바이스(110(1)-110(n))와 관련된 관련 고객, 운전자 및 판매자가 각각, 예를 들어, 통합 서버 시스템(116)과의 원격 상호작용 또는 모바일 트랜잭션(mobile transactions)을 수행하거나 또는 통합 서버 시스템(116)으로부터 정보를 수신하는 것을 가능하게 할 수 있다. 일부 실시예에서, 사용자 디바이스(300)는 개인용 컴퓨팅 디바이스일 수 있다. 예를 들어, 사용자 디바이스(300)는 스마트폰, 랩탑 또는 노트북 컴퓨터, 태블릿, 다기능 시계(multifunctional watch), 한 쌍의 다기능 안경, 또는 컴퓨팅 능력을 갖는 임의의 모바일 또는 웨어러블 디바이스, 또는 이들 컴퓨터 및/또는 연계된 구성요소의 임의의 조합일 수 있다.
사용자 디바이스(300)는 메모리(312)와 같은 메모리에 저장된 소프트웨어 명령어를 실행하도록 구성된 하나 이상의 프로세서(308)를 포함한다. 메모리(312)는 프로세서(308)에 의해 실행될 때 고객, 운전자 및/또는 판매자에 대해 알려진 인터넷 관련 통신, 콘텐츠 디스플레이 프로세스 및 다른 대화형 프로세스를 수행하는 하나 이상의 소프트웨어 프로그램(314)을 저장할 수 있다. 예를 들어, 사용자 디바이스(300)는 사용자 디바이스(300)에 포함되거나 이와 통신하는 디스플레이 디바이스(302) 상에 콘텐츠를 포함하는 인터페이스를 생성하고 디스플레이하는 브라우저 또는 관련된 모바일 디스플레이 소프트웨어를 실행할 수 있다. 사용자 디바이스(300)는 디스플레이 디바이스(302)를 통해 인터페이스에 콘텐츠를 생성하고 디스플레이하기 위해, 사용자 디바이스(300)가 통신 네트워크(114)를 통해 통합 서버 시스템(116) 및 다른 구성요소와 통신하는 것을 허용하는, 프로그램(314)에 포함된 모바일 디바이스 애플리케이션 및/또는 모바일 디바이스 통신 소프트웨어를 실행하는 모바일 디바이스일 수 있다. 개시된 실시예는 사용자 디바이스(300)의 임의의 특정한 구성으로 제한되지 않는다. 사용자 디바이스(300)는 개시된 실시예와 일치하는, 하나 이상의 동작을 수행하도록 구성된 하나 이상의 컴퓨팅 디바이스의 임의의 배열을 포함할 수 있다.
사용자 디바이스(300)는 프로세서(308)에 의해 실행될 때 알려진 운영체제 기능을 수행하는 하나 이상의 운영체제를 메모리(312)에 저장하도록 구성될 수 있다. 예시로서, 운영체제는 Microsoft WindowsTM, UnixTM, LinuxTM, AndroidTM, AppleTM Mac OS 운영체제, iOS, Chrome OS 또는 다른 타입의 운영체제를 포함할 수 있다. 따라서, 개시된 실시예는 임의의 타입의 운영체제를 실행하는 컴퓨터 시스템을 통해 동작하고 기능할 수 있다. 사용자 디바이스(300)는 또한, 프로세서(308)에 의해 실행될 때, 웹 브라우저 소프트웨어, 태블릿 또는 스마트 핸드헬드 디바이스 네트워킹 소프트웨어 등과 같이 통신 네트워크(114)와의 통신을 제공하는, 메모리(312)에 저장된 통신 소프트웨어를 포함할 수 있다.
디스플레이 디바이스(302)는 예를 들어, 액정 디스플레이(LCD), 발광 다이오드 스크린(LED), 유기 발광 다이오드 스크린(OLED), 터치 스크린 및 다른 알려진 디스플레이 디바이스를 포함할 수 있다. 디스플레이 디바이스(302)는 고객, 운전자 및 판매자에 다양한 정보를 디스플레이할 수 있다. 예를 들어, 디스플레이 디바이스(302)는 고객, 운전자 및 판매자가 개시된 방법의 특정한 양상을 수행하기 위해 사용자 디바이스(300)를 동작시키는 것을 가능하게 하는 대화형 인터페이스를 디스플레이할 수 있다. 디스플레이 디바이스(302)는 고객, 운전자 및 판매자가 선택하기 위한 터치 가능하거나 또는 선택 가능한 옵션을 디스플레이할 수 있고, 터치 스크린을 통해 고객의 옵션 선택을 수신할 수 있다.
사용자 디바이스(300)는 정보를 전송 및 수신하고 고객, 운전자 및 판매자 또는 다른 디바이스와 상호작용하는 것을 허용하는 I/O 디바이스(304)를 포함한다. 예를 들어, I/O 디바이스(304)는 사용자 디바이스(300)를 사용하여 정보를 입력하기 위해 고객, 운전자 및 판매자에 의해 조작될 수 있는 키보드, 마우스-타입 디바이스, 제스처 센서, 활동 센서, 물리적 버튼, 스위치, 마이크, 터치스크린 패널, 스타일러스 등과 같은 다양한 입/출력 디바이스를 포함할 수 있다. I/O 디바이스(304)는 또한, 사용자 디바이스(300)를 동작시키는 고객, 운전자 및 판매자에게 사운드(sound) 및 오디오(audio) 피드백을 제공하도록 구성된 스피커와 같은 오디오 출력 디바이스를 포함할 수 있다. 일부 실시예에서, I/O 디바이스(304)는 고객, 운전자 및 판매자에 가시광선 신호를 제공할 수 있는 LED 또는 다른 구성요소와 같은 발광 구성요소를 포함할 수 있다. I/O 디바이스(304)는 또한, 고객, 운전자 및 판매자에 햅틱 피드백을 제공하기 위해 햅틱 출력 디바이스를 포함할 수 있다. I/O 디바이스(304)는 또한 예를 들어, 사용자 디바이스(300)와 통신 네트워크(114) 사이에 유선 또는 무선 연결을 확립함으로써, 시스템(100)에서의 다른 구성요소로부터 정보를 전송하고 수신하기 위한 하나 이상의 통신 모듈(미도시)을 포함할 수 있다. I/O 디바이스(304)는 통신 네트워크(114)와 관련된 다른 디바이스와 통신하기 위해, 무선 주파수(radio frequency), 적외선 또는 다른 근거리 통신 인터페이스를 포함할 수 있다. I/O 디바이스(304)의 예시적인 통신 모듈은 예를 들어, 단거리 또는 근거리 무선 통신 모뎀, Wi-FiTM 통신 모뎀 또는 셀룰러 통신 모뎀을 포함할 수 있다. I/O 디바이스(304)는 제한 없이, 셀룰러(예를 들어, 3G, 4G 등) 기술, Wi-FiTM 핫스팟 기술, RFID, 근거리 통신(NFC) 또는 BLUETOOTH® 기술 등을 포함할 수 있는 하나 이상의 무선 기술/프로토콜을 사용하여 통신하도록 구성된 트랜스시버 또는 송신기를 포함할 수 있다. 더욱 일반적으로, 통상의 기술자에게 알려진 임의의 단방향 또는 양방향 통신 기술은 통신 네트워크(114)를 통해 통합 서버 시스템(116) 또는 원격 데이터베이스(120)와 정보를 교환하기 위해 사용자 디바이스(300)에서 구현될 수 있다.
앞서 서술된 바와 같이, 사용자 디바이스(300)는 개시된 실시예와 일치하는 동작을 수행하기 위한 모바일 애플리케이션을 실행하는 디바이스일 수 있다. 따라서, 일부 실시예에서, 사용자 디바이스(300) 상에 저장된 프로그램(314)은 사용자 디바이스(300)가 통신 네트워크(114)를 통해 통합 서버 시스템(116)과 통신하고 개시된 방법의 양상을 수행하는 것을 가능하게 하는, 그 상에 설치된 하나 이상의 소프트웨어 애플리케이션(316)을 포함할 수 있다. 예를 들어, 사용자 디바이스(300)는 정보에 액세스하고 이를 수신하거나, 또는 인터넷 서비스 제공자와 관련된 다른 동작을 수행하기 위해 브라우저 소프트웨어를 사용함으로써 통합 서버 시스템(116)에 연결할 수 있다.
예시적인 실시예에 따라, 통합 서버 시스템(116)과 관련된 소프트웨어 애플리케이션(316)은 도 3에 도시된 바와 같이 사용자 디바이스(300) 상에 설치될 수 있다. 예를 들어, 통합 서버 시스템(116)은 고객 디바이스(102(1))로부터 하나 이상의 소프트웨어 애플리케이션(316)을 사용자 고객 디바이스(102(1))로 다운로드시키기 위한 요청을 수신할 수 있다. 일 실시예에서, 통합 서버 시스템(116)은 고객 디바이스(102(1)) 상에 각각 설치된 웹 브라우저 애플리케이션을 사용하여 고객 디바이스(102(1))와 관련된 고객으로부터 요청을 수신할 수 있다. 다른 실시예에서, 통합 서버 시스템(116)은 예를 들어, 고객 디바이스(102(1))를 통해 액세스되는 통합 서버 시스템(116)과 관련된 웹 페이지 또는 다른 포털로부터 통합 서버 시스템(116)과 관련된 하나 이상의 소프트웨어 애플리케이션(316)을 고객 디바이스(102(1)) 상에 다운로드시키기 위한 요청을 수신할 수 있다. 이 실시예에서, 통합 서버 시스템(116)은 원격 데이터베이스(120)에서 하나 이상의 소프트웨어 애플리케이션(316)에 대응하는 소프트웨어 명령어를 저장할 수 있다. 다운로드 요청에 응답하기 위해, 통합 서버 시스템(116)은 고객 디바이스(102(1))가 특정한 사양(specifications)에 대응하는 소프트웨어 명령어를 다운로드하는 것을 가능하게 하도록 고객 디바이스(102(1))의 특정한 디바이스 사양에 관한 추가적인 정보를 고객 디바이스(102(1))로부터 수신할 수 있다. 대안적으로, 통합 서버 시스템(116)은 고객 디바이스(102(1))로 다운로드 요청 링크를 푸쉬(push)하거나 또는 하나 이상의 소프트웨어 애플리케이션(316)에 대응하는 소프트웨어 코드를 예를 들어 이메일, 문자 또는 단문 메시지 서비스(short message service, SMS) 메시지, 앱을 통한 프롬프트(prompt) 또는 다른 적합한 방법으로 고객 디바이스(102(1))에 직접적으로 송신할 수 있다. 고객 디바이스(102(1))는 소프트웨어 코드를 다운로드하고 설치하기 위해, 가령 통신 네트워크(114)를 통해 하나 이상의 소프트웨어 애플리케이션(316)과 관련된 소프트웨어 코드를 수신할 수 있다. 유사하게, 다른 예시에서, 통합 서버 시스템(116)은 물품 배송 제공자 디바이스(106(1)) 상에 하나 이상의 소프트웨어 애플리케이션(316)을 다운로드시키기 위해 물품 배송 제공자 디바이스(106(1))와 관련된 운전자로부터 요청을 수신할 수 있다. 또한, 유사하게, 다른 예시에서, 통합 서버 시스템(116)은 물품 서비스 제공자 디바이스(110(1)) 상에 하나 이상의 소프트웨어 애플리케이션(316)을 다운로드시키기 위해 물품 서비스 제공자 디바이스(110(1))와 관련된 판매자로부터 요청을 수신할 수 있다.
도 4a 및 4b는 개시된 실시예와 일치하는, 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위해 통합 서버 시스템(116)에 의해 구현된 예시적인 프로세스(400)의 흐름도를 포함한다. 통합 서버 시스템(116)은 프로세스(400)의 동작들 중 하나 이상을 수행하는 소프트웨어 명령어를 실행하기 위해 도 2의 서버 디바이스(200)로서 구현된다. 프로세스(400)의 동작은 도 5와 관련하여 설명된다.
도 5는 도 4a 및 4b의 예시적인 프로세스를 도시하는 흐름도(500)를 포함한다. 도 5는 이벤트 처리 시스템(502)으로서 구현되는 이 예시의 서버 디바이스(200)의 도메인 서비스 모듈(210), 엔터티 변경 리스너 모듈(212), 엔터티 변경 저장 장치(222), 트랜잭션 리스너 모듈(214)을 도시한다. 또한, 이 예시의 서버 디바이스(200)의 캐시 데이터베이스(224), 캐시 이벤트 퍼블리셔 모듈(216), 검색 이벤트 퍼블리셔 모듈(218) 및 검색 인덱스 데이터베이스(220)는 데이터베이스 시스템(504)으로서 구현된다. 일부 실시예에서, 이벤트 처리 시스템(502) 및 데이터베이스 시스템(504)은 통합 서버 시스템(116)의 일부이다.
프로세스(400)에 따라, 단계 402에서, 통합 서버 시스템(116)의 도메인 서비스 모듈(210)은 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n))에 의한 엔트리의 수정을 결정하기 위해 원격 데이터베이스(120)를 모니터링한다. 예시로서, 도 5를 참조하여, 도메인 서비스 모듈(210)은 원격 데이터베이스(120) 내에 데이터 엔트리로서 저장된 판매자 프로필 정보, 고객 프로필 정보 및 운전자 프로필 정보가 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)) 및/또는 물품 서비스 제공자 디바이스(110(1)-110(n))에 의해 수정되는지 결정하기 위해 원격 데이터베이스(120)(미도시)를 모니터링한다. 도메인 서비스 모듈(210)은 원격 데이터베이스(120) 내의 수정을 탐지(detect)하도록 구성될 수 있다. 도메인 서비스 모듈(210)은 원격 데이터베이스(120) 내의 임의의 기록을 탐지한다.
예시로서, 판매자 상점(112(1))에서의 물품 서비스 제공자 디바이스(110(1))와 관련된 판매자는 온라인 웹사이트 포털을 통해 그들의 판매자 프로필 정보에 액세스한다. 물품 서비스 제공자 디바이스(110(1))와 관련된 판매자는 물품 서비스 제공자 디바이스(110(1)) 상의 디스플레이를 통해 판매자 프로필 정보를 본다(views). 또한, 원격 데이터베이스(120)는 판매자 프로필 정보와 같은 데이터를 계층 구조(hierarchical structure)로 저장할 수 있다. 예를 들어, 판매자 상점(112(1))의 이름은 부모 엔터티(parent entity)일 수 있고, 반면 상점 시간, 메뉴 이름, 사진 앨범, 주소 위치 등은 부모 엔터티 아래에 저장된 자식 엔터티(child entity)이다. 또한, 메뉴 정보는 애피타이저, 샐러드, 멕시칸 요리, 앙트레(Entr
Figure 112021039087868-pat00001
e), 디저트 등을 포함하는 복수의 카테고리를 포함하고, 이들 엔트리는 메뉴 이름 자식 엔터티 아래에 자식 서브 엔터티(child sub entities)로서 분류될 것이다. 예를 들어, 판매자 프로필 정보는 판매자 상점(112(1))에 대한 상점 시간을 오전 8:00부터 오후 5:00까지로 포함할 수 있다. 물품 서비스 제공자 디바이스(110(1))의 판매자는 상점 시간을 오전 8:00부터 오후 5:00에서 오전 9:00부터 오후 6:00까지의 새로운 타이밍(timings)으로 수정한다. 이 수정은 판매자 상점(112(n))에 대한 원격 데이터베이스(120)의 상점 시간 엔트리의 업데이트를 야기한다. 원격 데이터베이스(120)의 상점 시간 엔트리의 이 업데이트는 원격 데이터베이스(120)의 모니터링에 기초하여 도메인 서비스 모듈(210)에 의해 결정된다. 유사하게, 다수의 수정이 복수의 판매자, 고객 및/또는 운전자 각각에 의해 그들의 대응하는 판매자 프로필 정보, 고객 프로필 정보 및/또는 운전자 프로필 정보에 대하여 수행되어 다수의 엔터티 변경 요청이 생성되도록 할 수 있다.
계층 구조를 제공함으로써 이 기술은 데이터 오버헤드(data overhead)를 감소시키는 최적화된 프로세스의 기술적 이점을 제공한다. 계층 구조를 제공함으로써 이 기술은 수정이 이루어지는 특정한 위치를 식별하고, 따라서 추가의 데이터 오버헤드를 요구하는, 자식 서브 엔터티의 변경에 따라 전체 메뉴 정보를 업데이트하기 위해 엔터티 변경 요청을 생성하는 대신에, 오직 수정된 그 부모 엔터티, 자식 엔터티 및/또는 자식 서브 엔터티와 관련된 검색 인덱스 데이터베이스(220) 정보를 업데이트하는 것에 관한 정보를 포함하는 엔터티 변경 요청을 생성한다.
단계 404에서, 통합 서버 시스템(116)의 엔터티 변경 리스너 모듈(212)은 원격 데이터베이스(120) 내의 엔트리의 수정에 따른 제1 엔터티 변경 요청을 수신한다. 단계 402에서 엔트리의 수정을 결정하면, 도메인 서비스 모듈(210)은 제1 엔터티 변경 요청을 송신한다. 제1 엔터티 변경 요청은 수정된 엔터티에 대응하는 정보를 포함한다. 예시로서, 메뉴의 애피타이저 카테고리 내의 물품과 관련된 가격이 수정되면, 제1 엔터티 변경 요청은 애피타이저 카테고리의 자식 서브 엔터티와 관련된 엔터티 식별자 및 이 예시에서 애피타이저 카테고리 내의 물품과 관련된 가격인 수정 정보를 포함할 것이다. 또한, 엔터티 식별자는 검색 인덱스 데이터베이스(220) 내에 저장된 룩업 테이블(lookup table) 내의 주소일 수 있다. 이는 도 5의 단계 502에 도시된다.
다른 예시에서, 판매자가 판매자 상점(112(1))에 대한 상점 시간 정보를 수정할 때, 도메인 서비스 모듈(210)은 (단계 402에서 설명한 바와 같이) 원격 데이터베이스(120)를 모니터링하고 데이터 엔트리의 수정을 결정하면, 도메인 서비스 모듈(210)은 제1 엔터티 변경 요청을 송신한다. 제1 엔터티 변경 요청은 상점 시간의 자식 엔터티와 관련된 식별자 및 이 예시에서 오전 8:00부터 오후 5:00까지에서 오전 9:00부터 오후 6:00까지의 새로운 타이밍으로의 시간의 변경인 수정 정보를 포함한다. 유사하게, 트랜잭션 리스너 모듈(214)에 푸쉬되고 엔터티 변경 저장 장치(222) 내에 저장된 데이터는 트랜잭션 리스너 모듈(214)이 엔터티 변경 저장 장치(222)로부터 데이터를 수신하는 기간 동안 복수의 판매자, 고객 및/또는 운전자에 의해 각각 대응하는 판매자 프로필 정보, 고객 프로필 정보 및/또는 운전자 프로필 정보에 대해 이루어진 복수의 수정을 포함할 수 있다. 고객 디바이스(102(1)-102(n)), 물품 배송 제공자 디바이스(106(1)-106(n)), 물품 서비스 제공자 디바이스(110(1)-110(n)) 및 원격 데이터베이스(120)는 외부 시스템으로서 지칭될 수 있다.
단계 406에서, 통합 서버 시스템(116)의 엔터티 변경 리스너 모듈(212)은 엔터티 변경 저장 장치(222) 내의 엔트리에 이루어진 수정을 저장한다. 저장은 또한 엔터티 변경 저장 장치(222) 내의 엔트리에 이루어진 수정을 저장하는 것으로도 지칭된다. 제1 엔터티 변경 요청을 수신할 때, 통합 서버 시스템(116)은 수정된 엔트리와 관련된 식별자 및 제1 엔터티 변경 요청에 포함된 수정 정보를 저장한다. 예시로서, 제1 엔터티 변경 요청이 메뉴의 애피타이저 카테고리 내의 물품의 가격으로서 수정될 엔트리를 식별하면, 통합 서버 시스템(116)은 애피타이저 카테고리의 자식 서브 엔터티와 관련된 엔터티 식별자 및 이 예시에서 엔터티 변경 저장 장치(222)의 애피타이저 카테고리 내의 물품과 관련된 가격인 수정 정보를 저장한다. 유사하게, 수정된 엔트리와 관련된 식별자 및 복수의 판매자, 고객 및/또는 운전자에 의해 그들의 대응하는 판매자 프로필 정보, 고객 프로필 정보 및/또는 운전자 프로필 정보에 대해서 수행된 다수의 수정에 기초하여 생성된 엔터티 변경 요청 내의 수정 정보는 또한 엔터티 변경 저장 장치(222) 내에 저장된다. 이는 도 5의 단계 504에 도시된다.
단계 408에서, 통합 서버 시스템(116)의 도메인 서비스 모듈(210)은 트랜잭션 리스너 모듈(214)에서 트랜잭션 리스닝 모드(transaction listening mode)를 초기화하기 위해 커밋 이벤트 요청(commit event request)을 송신한다. 도메인 서비스 모듈(210)은 단계 402에서 제1 엔터티 변경 요청의 송신에 따른 커밋 이벤트 요청을 생성한다. 이는 도 5의 단계 506에 도시된다.
단계 410에서, 통합 서버 시스템(116)의 엔터티 변경 저장 장치(222)는 트랜잭션 리스너 모듈(214)로 단계 406에서 저장된 데이터를 푸쉬한다. 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 도메인 서비스 모듈(210)로부터 커밋 이벤트 요청을 수신함에 따라 트랜잭션 리스닝 모드를 초기화한다. 트랜잭션 리스닝 모드를 초기화할 때, 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222)로부터 수신될 데이터를 청취하기 위해 대기한다. 엔터티 변경 저장 장치(222)는 트랜잭션 리스너 모듈(214)로 단계 406에서 저장된 데이터를 푸쉬한다. 트랜잭션 리스너 모듈(214)은 수신된 데이터로부터 엔터티 식별자 및 대응하는 수정 정보를 식별한다. 엔터티 변경 저장 장치(222)로부터 데이터를 푸쉬하는 것은 실시간으로 수행된다. 일부 실시예에서, 데이터가 엔터티 변경 저장 장치(222) 내에 저장되자 마자, 데이터는 즉시 트랜잭션 리스너 모듈(214)로 푸쉬된다. 변경되는 엔트리와 관련된 복수의 식별자 및 이들 엔트리와 관련된 대응하는 수정은 엔터티 변경 저장 장치(222)에 의해 푸쉬된다. 유사하게, 도 5의 단계 508에 도시된 바와 같이, 트랜잭션 리스너 모듈(214)에 푸쉬되고 엔터티 변경 저장 장치(222) 내에 저장된 데이터는 트랜잭션 리스너 모듈(214)이 엔터티 변경 저장 장치(222)로부터 데이터를 수신하는 기간 동안 복수의 판매자, 고객 및/또는 운전자에 의해 각각 대응하는 판매자 프로필 정보, 고객 프로필 정보 및/또는 운전자 프로필 정보에 대해 이루어진 복수의 수정을 포함할 수 있다.
다른 예시에서, 엔터티 변경 저장 장치(222)로부터 데이터를 푸쉬하는 것은 일정한 간격의 시간 주기로 수행된다. 시간 주기는 1 마이크로 초(microsecond), 1초, 5초, 5분, 1시간 및/또는 24시간을 포함할 수 있지만, 임의의 다른 시간 주기 또한 포함될 수 있다. 엔터티 변경 저장 장치(222)로부터 푸쉬된 데이터는 시간 주기 동안 변경된 엔트리와 관련된 복수의 식별자 및 이들 엔트리와 관련된 대응하는 수정을 포함한다.
다른 예시에서, 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222)에 단계 406에서 저장된 데이터를 불러온다(fetches). 불러온 데이터는 수정된 엔트리와 관련된 식별자 및 제1 엔터티 변경 요청에 포함된 수정 정보를 포함할 수 있다. 예를 들어, 불러온 데이터는 애피타이저 카테고리의 자식 서브 엔터티와 관련된 엔터티 식별자 및 이 예시에서 엔터티 변경 저장 장치(222)의 애피타이저 카테고리 내의 물품과 관련된 가격인 수정 정보를 포함할 수 있다.
트랜잭션 리스너 모듈(214)은 트랜잭션 리스너 모듈(214)로 엔터티 변경 저장 장치(222)에 의해 단계 406에서 저장된 데이터를 푸쉬하거나 또는 트랜잭션 리스너 모듈(214)에 의해 엔터티 변경 저장 장치(222)에 단계 406에서 저장된 데이터를 불러옴으로써, 엔터티 변경 저장 장치(222)로부터 엔터티 식별자를 수신함에 따라, 엔터티 식별자와 관련된 이벤트 타입(event type)을 식별한다. 식별된 이벤트 타입은 계층 구조 내의 엔터티 식별자와 관련된 위치를 포함한다. 예시로서, 이벤트 타입은 오직 수정된 그 부모 엔터티, 자식 엔터티 및/또는 자식 서브 엔터티와만 관련된 위치를 포함할 수 있다.
단계 412에서, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222) 내에 저장된 데이터를 수신하는 것에 응답하여 파이어 이벤트(fire event)를 식별한다. 파이어 이벤트는 엔터티 변경 저장 장치(222)로부터 수신된 데이터의 복수의 스냅샷을 생성하는 이벤트이다. 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222) 내에 저장된 데이터를 수신하는 것에 응답하여 파이어 이벤트의 초기화를 식별한다. 파이어 이벤트의 초기화는 트랜잭션 리스너 모듈(214)이 단계 410에서 엔터티 변경 저장 장치(222)로부터 수신된 데이터의 복수의 스냅샷을 생성하도록 한다. 파이어 이벤트를 식별할 때, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222)에 의해 푸쉬된 데이터의 스냅샷을 생성한다. 예시로서, 스냅샷은 단계 410에서 트랜잭션 리스너 모듈(214)에 의해 엔터티 변경 저장 장치(222)로부터 수신된 데이터의 카피(copy)이다. 다른 예시에서, 스냅샷은 엔터티 변경 저장 장치(222) 내에 저장된 데이터에 대한 참조 지표(reference indicators)를 포함하는 데이터베이스 테이블일 수 있다. 도 5, 단계 510에 도시된 바와 같이, 두 개의 스냅샷이 경로 514 및 경로 516을 통해 송신되고 있다. 이들 스냅샷은 송신되고 있는 동일한 데이터 내용을 갖는다.
단계 414에서, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222)를 클리어하라는 요청을 송신한다. 엔터티 변경 저장 장치(222)에 의해 푸쉬된 데이터를 수신할 때, 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222)에 의해 푸쉬된 데이터를 클리어하라는 요청을 송신한다. 데이터를 클리어하라는 요청을 수신할 때, 엔터티 변경 저장 장치(222)는 푸쉬된 데이터를 삭제한다. 이는 도 5의 단계 512에 도시된다.
단계 416에서, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 단계 410에서 식별된 대응하는 이벤트 타입과 함께 스냅샷 중 하나를 캐시 이벤트 퍼블리셔 모듈(216)로 송신한다. 그 후, 캐시 이벤트 퍼블리셔 모듈(216)은 스냅샷 데이터를 캐시 데이터베이스(224)에 저장한다. 검색 인덱스 데이터베이스(220)로부터의 수정된 판매자 프로필 정보, 고객 프로필 정보 및/또는 운전자 프로필 정보에 액세스하라는 요청이 수신될 때, 그리고 검색 인덱스 데이터베이스(220)에 과부하가 걸려 데이터를 즉시 제공할 수 없는 경우, 이 시나리오에서, 캐시 데이터베이스(224) 내에 저장된 스냅샷은 요청을 용이하게 하기 위해 활용된다. 요청은 캐시 데이터베이스(224)에 저장된 스냅샷 데이터에 의해 서비스된다. 도 5 단계 514에 도시된 바와 같이, 스냅샷의 제1 스냅샷은 캐시 이벤트 퍼블리셔 모듈(216)로 송신된다.
단계 418에서, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 스냅샷을 검색 이벤트 퍼블리셔 모듈(218)로 송신한다. 검색 이벤트 퍼블리셔 모듈(218)은 스냅샷을 저장한다. 도 5 단계 516에 도시된 바와 같이, 단계 410에서 식별된 대응하는 이벤트 타입과 함께 스냅샷의 제2 스냅샷은 검색 이벤트 퍼블리셔 모듈(218)로 송신된다.
도 4b로 진행하여, 단계 420에서, 통합 서버 시스템(116)의 검색 이벤트 퍼블리셔 모듈(218)은 수정된 엔터티와 관련된 위치를 결정하기 위해 스냅샷과 함께 수신된 이벤트 타입을 활용한다. 결정된 위치에 기초하여 검색 이벤트 퍼블리셔 모듈(218)은 스냅샷 내의 데이터 엔트리를 복수의 데이터 파이프라인(pipeline) 카테고리의 하나로 분류한다. 검색 이벤트 퍼블리셔 모듈(218)은 스냅샷 내의 데이터 엔트리를 카테고리의 타입에 기초하여 다수의 스트림으로 분류하고 그것을 스트림을 따라 데이터 파이프라인 카테고리로 전달하는 스트리밍 서비스이다. 파이프라인 카테고리는 판매자 상점(112(1)-112(n)) 중 하나와 관련된 부모 엔터티를 포함한다. 예시로서, 파이프라인 카테고리(526)는 판매자 상점(112(1))과 관련될 수 있고, 파이프라인 카테고리(528)는 판매자 상점(112(n))과 관련될 수 있다. 이벤트 타입에서 식별된 위치의 타입에 기초하여, 검색 이벤트 퍼블리셔 모듈(218)은 이벤트 타입에서 식별된 위치에 대응하는 데이터 파이프라인(526-530) 중 하나를 결정하고 데이터 엔트리를 데이터 파이프라인(526-530) 중 대응하는 하나로 송신한다.
다른 실시예에서, 파이프라인 카테고리는 부모 엔터티, 자식 엔터티, 자식 서브 엔터티를 포함하지만, 임의의 다른 카테고리가 또한 포함될 수 있다. 예시로서, 도 5의 데이터 파이프라인(526, 528 및 530)은 부모 엔터티 데이터 파이프라인(526), 자식 엔터티 데이터 파이프라인(528) 및 자식 서브 엔터티 데이터 파이프라인(530)일 수 있다[도 5에 도시되지 않음]. 검색 이벤트 퍼블리셔 모듈(218)은 단계 420에서 부모 엔터티로 분류된 데이터 엔트리를 제1 스트림으로서 부모 엔터티 데이터 파이프라인(526)으로 송신하고, 또한 검색 이벤트 퍼블리셔 모듈(218)은 자식 엔터티로 분류된 데이터 엔트리에 대해 자식 엔터티 데이터 파이프라인(528)의 제2 스트림을 송신할 수 있고 검색 이벤트 퍼블리셔 모듈(218)은 자식 서브 엔터티로 분류된 데이터 엔트리에 대해 자식 서브 엔터티 데이터 파이프라인(530)의 제3 스트림을 송신할 수 있다. 판매자 프로필 정보는 계층 구조로 저장된다. 예를 들어, 판매자 상점(112(1))의 이름은 부모 엔터티일 수 있고, 반면 상점 시간, 메뉴 이름, 사진 앨범, 주소 위치 등은 부모 엔터티 아래에 자식 엔터티로서 저장되는 자식 엔터티이다. 이 예시에서, 판매자 상점(112(1))의 이름은 부모 엔터티다. 상점 시간, 메뉴 이름, 사진 앨범, 주소 위치 등은 부모 엔터티 아래에 저장되는 자식 엔터티일 수 있다. 또한, 메뉴 정보는 애피타이저, 샐러드, 멕시칸 요리, 앙트레, 디저트 등을 포함하는, 복수의 카테고리를 포함할 수 있고 이들 엔트리는 메뉴 이름 자식 엔터티 아래의 자식 서브 엔터티로서 분류될 수 있다. 다른 예시에서, 파이프라인 카테고리는 애피타이저, 샐러드, 멕시칸 요리, 앙트레, 디저트를 포함한다.
단계 422에서, 통합 서버 시스템(116)의 검색 이벤트 퍼블리셔 모듈(218)은, 계층 구조 내에서 어디에 특정한 수정이 이루어졌는지 식별하고 어디에 수정이 이루어졌는지에 기초하여 데이터 엔트리를 부모 엔터티, 자식 엔터티 또는 서브 자식 엔터티가 되도록 분류한다. 데이터 엔트리와 관련된 카테고리를 식별할 때, 검색 이벤트 퍼블리셔 모듈(218)은 단계 420에서 수행된 분류에 기초하여 분류된 대응하는 데이터 파이프라인 내로 각각의 데이터 엔트리를 송신한다. 일 예시로서, 단계 420에서, 검색 이벤트 퍼블리셔 모듈(218)은 이벤트 타입에 기초하여 위치의 타입을 식별하고, 검색 이벤트 퍼블리셔 모듈(218)은 이벤트 타입에서 식별된 위치로서 대응되는 데이터 파이프라인(526-530) 중 하나를 결정하고 데이터 엔트리를 데이터 파이프라인(526-530) 중 대응하는 하나로 송신한다. 검색 이벤트 퍼블리셔 모듈(218)이 데이터 파이프라인(526) 내의 위치에 대응하는 이벤트 타입에 기초하여 데이터 엔트리와 관련된 위치를 식별하면, 데이터 엔트리는 검색 이벤트 퍼블리셔 모듈(218)에 의해 데이터 파이프라인(526)으로 송신된다. 다른 예시로서, 단계 420에서, 검색 이벤트 퍼블리셔 모듈(218)은 수신된 엔터티 변경이 상점 시간을 오전 8:00부터 오후 5:00까지에서 오전 9:00부터 오후 6:00까지의 새로운 타이밍으로 수정하는 것을 포함한다고 식별할 수 있다. 이에 응답하여, 검색 이벤트 퍼블리셔 모듈(218)은 상점 시간의 데이터 엔트리는 자식 엔트리 데이터임을 식별하고 이에 따라 상점 시간의 식별자 및 이 예시에서, 오전 8:00부터 오후 5:00까지에서 오전 9:00부터 오후 6:00까지의 새로운 타이밍으로 수정하는 것인, 상점 시간과 관련된 수정 정보를, 자식 엔터티 데이터 파이프라인(528)으로 송신한다. 유사하게, 부모 엔터티로 분류된 데이터 엔트리는 검색 이벤트 퍼블리셔 모듈(218)에 의해 부모 엔터티 데이터 파이프라인(526)으로 520을 통해 송신될 것이고, 자식 서브 엔트리로 분류된 데이터 엔트리는 검색 이벤트 퍼블리셔 모듈(218)에 의해 자식 서브 엔트리 데이터 파이프라인(530)으로 524를 통해 송신될 것이다.
단계 424에서, 통합 서버 시스템(116)의 검색 인덱스 데이터베이스(220)는 흐름 532를 통해 부모 엔터티 데이터 파이프라인(526), 자식 엔터티 데이터 파이프라인(528) 및/또는 자식 서브 엔터티 데이터 파이프라인(530)으로부터 분류된 데이터를 수신한다. 검색 인덱스 데이터베이스(220)는 부모 엔터티 데이터 파이프라인(526)으로부터 데이터를 수신하고 부모 엔터티와 관련된 데이터 엔트리를 업데이트한다. 유사하게, 검색 인덱스 데이터베이스(220)는 자식 엔터티 데이터 파이프라인(528)으로부터 데이터를 수신하고 자식 엔터티와 관련된 데이터 엔트리를 업데이트한다. 유사하게, 검색 인덱스 데이터베이스(220)는 자식 서브 엔터티 데이터 파이프라인(530)으로부터 데이터를 수신하고 자식 서브 엔터티와 관련된 데이터 엔트리를 업데이트한다.
단계 426에서, 통합 서버 시스템(116)의 검색 인덱스 데이터베이스(220)는 판매자 프로필 정보, 고객 프로필 정보 및/또는 운전자 프로필 정보 내로부터 데이터 엔트리에 액세스하라는 사용자 검색 요청을 수신한다. 사용자 검색 요청을 수신할 때 검색 인덱스 데이터베이스(220)는 사용자 검색 요청에 포함된 데이터 엔트리에 대응하는 단계 424에서 업데이트된 수정된 데이터 엔트리와 관련된 검색 결과를 포함하기 위해 응답을 제공한다.
도 6은 도 4a 및 4b의 예시적인 프로세스를 도시하는 흐름도를 포함하는 도 5의 대안적인 실시예를 도시한다. 도 6은 이 예시의 서버 디바이스(200)의, 도메인 서비스 모듈(210), 엔터티 변경 리스너 모듈(212), 엔터티 변경 저장 장치(222), 트랜잭션 리스너 모듈(214) 및 검색 퍼블리셔 모듈(218)을 도시한다. 이 예시의 실시예에서, 이들 모듈은 이벤트 처리 시스템(602)으로서 구현된다. 또한, 이 예시의 서버 디바이스(200)의, 이벤트 소비자 모듈(226), 이벤트 핸들러(handler) 모듈(227), 생성 이벤트 엔터티(228), 이벤트 퍼블리셔 모듈(229), 판매자 어플리케이션 프로그래밍 인터페이스(application programming interface, API)(230), 캐시 데이터베이스(224), 캐시 이벤트 퍼블리셔 모듈(216), 검색 이벤트 퍼블리셔 모듈(218) 및 검색 인덱스 데이터베이스(220)는 데이터베이스 시스템(604)으로서 구현된다. 일부 실시예에서, 이벤트 처리 시스템(602) 및 데이터베이스 시스템(604)은 통합 서버 시스템(116)의 일부이다.
프로세스 400(도 4a 및 4b) 및 도 5에 따라, 단계 602는 단계 502와 실질적으로 유사하다. 단계 604는 단계 504와 실질적으로 유사하다. 단계 606은 단계 506과 실질적으로 유사하다. 단계 608은 단계 508과 실질적으로 유사하다.
일부 실시예에서, 단계 610은 단계 510과 실질적으로 유사하다. 다른 실시예에서, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222) 내에 저장된 데이터를 수신하는 것에 응답하여 파이어 이벤트를 식별한다. 파이어 이벤트는 엔터티 변경 저장 장치(222)로부터 수신된 데이터를 검색 이벤트 퍼블리셔 모듈(218)로 전송하는 이벤트이다. 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222) 내에 저장된 데이터를 수신하는 것에 응답하여 파이어 이벤트의 초기화를 식별한다. 파이어 이벤트의 초기화는 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)이 수신된 데이터를 단계 610에 도시된 검색 이벤트 퍼블리셔 모듈(218)로 송신하도록 한다. 단계 612에서, 통합 서버 시스템(116)의 트랜잭션 리스너 모듈(214)은, 엔터티 변경 저장 장치(222)를 클리어하라는 요청을 송신한다. 엔터티 변경 저장 장치(222)에 의해 푸쉬된 데이터를 수신할 때, 트랜잭션 리스너 모듈(214)은 엔터티 변경 저장 장치(222)에 의해 푸쉬된 데이터를 클리어하라는 요청을 송신한다. 데이터를 클리어하라는 요청을 수신할 때, 엔터티 변경 저장 장치(222)는 푸쉬된 데이터를 삭제한다.
검색 이벤트 퍼블리셔 모듈(218)은 흐름 610으로부터 수신된 데이터를 저장하고, 그 후 단계 614에 도시된 바와 같이, 수신된 데이터가 수정된 데이터를 포함하는지 결정하도록 진행한다. 여기서, 검색 이벤트 퍼블리셔 모듈(218)은 데이터가 수정되었는지 결정하기 위해 수신된 데이터를 검색 이벤트 퍼블리셔 모듈(218) 상에 이전에 저장된 대응하는 데이터와 비교한다. 검색 이벤트 퍼블리셔 모듈(218)이 수신된 데이터가 수정된 데이터를 포함하지 않는다고 결정하면, 방법은 흐름 616으로 진행하고 방법은 여기서 종료된다. 하지만, 검색 이벤트 퍼블리셔 모듈(218)이 수신된 것이 수정되어 수신된 데이터를 포함한다고 결정하면 수정된 데이터는 흐름 618에 의해 도시된 바와 같이 이벤트 소비자 모듈(226)로 송신된다. 이벤트 소비자 모듈(226)은 흐름 620에 의해 도시된 수신된 데이터에 기초하여 매칭되는 이벤트 타입이 있는지 결정하도록 진행한다. 이벤트 소비자 모듈(226)은 수정된 것으로 식별된 수신된 데이터가 이벤트 타입과 매칭되는지 결정한다. 이벤트 타입은 수정된 것으로 식별된 데이터에서 수정이 어디에 이루어졌는지를 식별하는 것에 기초한 부모 엔터티, 자식 엔터티 또는 서브 자식 엔터티의 수정을 포함할 수 있다. 이벤트 타입, 예를 들어, 자식 엔터티에서 이루어질 수정을 식별할 때, 흐름 622에 의해 도시된 바와 같이, 이벤트 소비자 모듈(226)은 수정된 것으로 식별된 데이터를 이벤트 핸들러 모듈(227)로 전송한다. 이벤트 핸들러 모듈(227)은, 흐름 624에 의해 도시된 바와 같이, 그 후 판매자 어플리케이션 프로그래밍 인터페이스(API)(230)를 업데이트 하고 이루어진 수정을 반영하기 위해 업데이트된 데이터를 얻는다. 판매자 API(230)를 업데이트할 때, 이벤트 핸들러 모듈(227)은 626에 의해 도시된 바와 같이, 이벤트 엔터티 모듈(228)을 생성하기 위해 수정된 것으로 식별된 데이터를 송신하도록 진행한다. 생성 엔터티 모듈(228)은 수정된 것으로 식별된 데이터의 다수의 스냅샷을 생성한다. 예시로서, 스냅샷은 단계 410에서 수정된 것으로 식별된 데이터의 카피이다. 다른 예시에서, 스냅샷은 엔터티 변경 저장 장치(222) 내에 저장된 데이터에 대한 참조 지표를 포함하는 데이터베이스 테이블일 수 있다. 다수의 스냅샷은 수정된 것으로 식별된 동일한 데이터의 다수의 카피를 지칭한다. 생성 엔터티 모듈(228)은 수정된 것으로 식별된 동일한 데이터의 다수의 카피를 이벤트 퍼블리셔 모듈(229)로 송신한다. 이벤트 퍼블리셔 모듈(229)은 흐름 630을 통해 스냅샷 중 하나를 캐시 이벤트 퍼블리셔 모듈(216)로 송신한다. 캐시 이벤트 퍼블리셔 모듈(216)은 그 후 스냅샷 데이터를 캐시 데이터베이스(224) 내에 저장한다. 이벤트 퍼블리셔 모듈(229)은 또한 스냅샷 중 제2 스냅샷을 검색 이벤트 퍼블리셔 모듈(218)로 송신한다.
통합 서버 시스템(116)의 검색 이벤트 퍼블리셔 모듈(218)은 계층 구조 내에서 특정한 수정이 어디에 이루어졌는지 식별하고 수정이 어디에 이루어졌는지에 기초하여 데이터 엔트리가 부모 엔터티(예를 들어, 상점 정보), 자식 엔터티(상점의 메뉴 정보) 또는 서브 자식(상점 개점 시간, 휴일 동안 상점 개점 정보, 휴일 동안 상점의 불규칙한 시간)인지 분류한다. 이 예시에서, 상점 정보는 데이터 파이프라인(636b)과 관련되고, 상점의 메뉴 정보는 데이터 파이프라인(638b)과 관련되고, 상점 개점 시간 정보는 데이터 파이프라인(640b)과 관련되고, 휴일 동안 상점 개점 정보는 데이터 파이프라인(642b)과 관련되고, 휴일 동안 상점의 불규칙한 시간은 데이터 파이프라인(644b)과 관련된다. 데이터 엔트리와 관련된 카테고리를 식별할 때, 검색 이벤트 퍼블리셔 모듈(218)은 수행된 분류에 기초하여 그 카테고리와 관련된 대응하는 데이터 파이프라인 내의 데이터 엔트리 각각을 송신한다. 또한, 검색 이벤트 퍼블리셔 모듈(218)은 상점의 정보에 대응하는 수정된 데이터 엔트리를 흐름 636a를 통해 데이터 파이프라인(636b)으로 송신할 수 있다. 검색 이벤트 퍼블리셔 모듈(218)은 상점의 메뉴 정보에 대응하는 수정된 데이터 엔트리를 흐름 638a를 통해 데이터 파이프라인(638b)으로 송신할 수 있다. 검색 이벤트 퍼블리셔 모듈(218)은 상점 개점 시간 정보에 대응하는 수정된 데이터 엔트리를 흐름 640a를 통해 데이터 파이프라인(640b)으로 송신할 수 있다. 검색 이벤트 퍼블리셔 모듈(218)은 휴일 동안 상점 개점 정보에 대응하는 수정된 데이터 엔트리를 흐름 642a를 통해 데이터 파이프라인(642b)으로 송신할 수 있다. 검색 이벤트 퍼블리셔 모듈(218)은 휴일 동안 상점의 불규칙한 시간에 대응하는 수정된 데이터 엔트리를 흐름 644a를 통해 데이터 파이프라인(644b)으로 송신할 수 있다. 또한, 단계 646은 단계 532와 실질적으로 유사하다.
개시된 실시예는 효율적인 검색 업데이트를 수신 및 전파하는 개선된 방법을 제공한다. 데이터 오버헤드를 감소시키고 검색 업데이트의 실시간 프로세스를 제공하는 최적화된 프로세스의 기술적 이점을 제공함으로써. 이 기술은 엔터티 변경 저장 장치 내에 저장된 데이터의 푸쉬에 의한 실시간의 검색 업데이트 프로세스를 제공하므로, 이 기술은 데이터베이스에 이루어진 수정을 반영하는 빠르고 신뢰할 만한(reliable) 프로세스를 제공하여, 검색 결과의 일부로서 수정의 더욱 빠른 시간의 디스플레이를 하게 한다. 따라서, 이 기술은 데이터 엔트리의 업데이트 동안 초래되는 지연을 감소시킨다. 또한, 이 기술은 수정이 이루어진 특정한 장소를 식별하고, 따라서 오직 수정된 그 부모 엔터티, 자식 엔터티 및/또는 자식 서브 엔터티와 관련된 검색 인덱스 데이터베이스 정보를 업데이트하는 것에 관한 정보를 포함하는 엔터티 변경 요청을 생성한다. 따라서, 이 기술은 추가의 데이터 오버헤드를 요구하는, 자식 서브 엔터티의 변경에 따른 전체 메뉴 정보를 업데이트하기 위해 엔터티 변경 요청을 생성하는 대신에, 데이터 오버헤드를 감소시킨다.
대조적으로, 종래 기술에서, 구현된 다른 전략은 그들이 추가의 데이터 오버헤드를 요구하여, 네트워크 자원을 효율적으로 활용하는데 유리하지 않을 수 있어 네트워크 부하를 증가시키므로, 비효율적이다. 또한 종래 기술은 검색 업데이트 프로세스 동안 상당한 지연을 초래하는 반면, 개시된 실시예는 데이터 엔트리에 이루어진 수정을 반영하는 사이의 지연을 감소시키는, 실시간 업데이트 프로세스를 제공한다.
예시적인 실시예가 여기에 서술되면서, 본 개시에 기초하여 통상의 기술자에 의해 이해될 것처럼 그의 범주는 (예를 들어, 다양한 실시예에 걸친 양상의) 동등한 요소, 수정, 생략, 조합, 조정 및/또는 변경을 갖는 임의의 및 모든 실시예를 포함한다. 예를 들어, 예시적인 시스템에 도시된 구성요소의 수 및 배향이 수정될 수 있다. 따라서, 전술한 설명은 오직 예시의 목적을 위해 제시되었다. 이는 총망라하는(exhaustive) 것이 아니며, 개시된 정확한 형태 또는 실시예로 제한되지 않는다. 수정 및 조정은 명세서 및 개시된 실시예의 실시를 고려하여 통상의 기술자에게 명백할 것이다.
청구범위의 요소는 청구범위에 사용된 언어에 기초하여 광의로 해석되어야 하며, 본 출원의 절차(prosecution) 동안 또는 본 명세서에 서술된 예시로 제한되지 않고, 예시는 비-배타적인 것으로 해석되어야 한다. 그러므로, 본 명세서 및 예시는 오직 예시적인 것으로 간주되며, 진정한 범주 및 사상은 다음의 청구범위 및 그의 등가물의 전체 범주에 의해 나타난다.

Claims (19)

  1. 효율적인 검색 업데이트를 수신 및 전파하기 위한 컴퓨터 구현된 시스템에 있어서, 상기 시스템은:
    명령어를 저장하는 메모리; 및
    제1 외부 시스템과 관련된 엔터티(entity) 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하고;
    상기 수신된 엔터티 변경 요청을 이벤트 퍼블리셔(event publisher)로 푸쉬(push)하고;
    상기 수신된 엔터티 변경 요청의 복수의 스냅샷(snapshots)을 생성하고;
    상기 복수의 스냅샷 중 하나에 적어도 기초하여 상기 제1 엔터티 변경 요청을 분류하고; 및
    상기 분류된 엔터티 변경 요청에 기초하여 검색 인덱스를 업데이트하기 위해 상기 명령어를 실행하도록 구성된 적어도 하나의 프로세서를 포함하는 시스템.
  2. 제1항에 있어서,
    각 엔터티는 복수의 서브-엔터티(sub-entities)를 포함하고;
    각 엔터티 변경 요청은 각각의 엔터티의 서브-엔터티를 수정하라는 요청을 포함하는 시스템.
  3. 제1항에 있어서, 상기 수신된 엔터티 변경 요청은 서비스의 변경, 물품의 변경 또는 상기 외부 시스템과 관련된 데이터의 변경을 포함하는 시스템.
  4. 제1항에 있어서, 상기 명령어는:
    트랜잭션(transaction)을 시작하라는 요청을 수신하고;
    복수의 엔터티 변경 요청을 수신하는 것이 상기 프로세서에 의해 더 야기되도록 하는 시스템으로서:
    상기 엔터티 변경 요청을 푸쉬하는 것은 상기 복수의 엔터티 변경 요청 중 하나를 푸쉬하는 것을 더 포함하고; 및
    상기 제1 엔터티 변경 요청을 분류하는 것은 상기 복수의 엔터티 변경 요청 중 하나를 분류하는 것을 포함하는 시스템.
  5. 제1항에 있어서, 상기 명령어는 상기 수신된 엔터티 변경 요청을 푸쉬하는 것에 응답하여, 모든 엔터티 변경 요청의 엔터티 저장소를 클리어(clear)하는 것이 상기 프로세서에 의해 더 야기되도록 하는 시스템.
  6. 제1항에 있어서, 상기 명령어는:
    데이터베이스에 저장된 엔터티의 수정을 탐지(detect)하기 위해 상기 데이터베이스를 모니터링하고; 및
    상기 엔터티의 수정을 탐지하는 것에 응답하여 상기 제1 엔터티 변경 요청을 수신하는 것이 상기 프로세서에 의해 더 야기되도록 하는 시스템.
  7. 제6항에 있어서, 상기 수신된 엔터티 변경 요청을 푸쉬하는 것은 상기 수신된 엔터티 변경 요청을 스냅샷으로 포맷(formatting)하는 것을 포함하는 시스템.
  8. 제7항에 있어서, 상기 명령어는:
    엔터티에 대한 수정을 롤백(rollback)하고;
    반전(reverse)에 필요한 복수의 스냅샷을 결정하기 위해 캐시 데이터베이스를 검색하는 것이 상기 프로세서에 의해 더 야기되도록 하는 시스템.
  9. 제1항에 있어서, 상기 분류된 엔터티 변경 요청을 상기 엔터티 변경의 상기 분류에 기초하여 선택된 실시간 스트림(real-time stream)을 통해 검색 인덱스로 전달함으로써 상기 분류된 엔터티 변경 요청을 상기 검색 인덱스로 전달하는 것을 더 포함하는 시스템.
  10. 효율적인 검색 업데이트를 수신 및 전파하기 위한 컴퓨터 구현된 방법에 있어서, 상기 방법은:
    제1 외부 시스템과 관련된 엔터티 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하는 것;
    상기 수신된 엔터티 변경 요청을 이벤트 퍼블리셔로 푸쉬하는 것;
    상기 수신된 엔터티 변경 요청의 복수의 스냅샷을 생성하는 것;
    상기 복수의 스냅샷 중 하나에 적어도 기초하여 상기 제1 엔터티 변경 요청을 분류하는 것; 및
    상기 분류된 엔터티 변경 요청에 기초하여 검색 인덱스를 업데이트하는 것을 포함하는 방법.
  11. 제10항에 있어서,
    각 엔터티는 복수의 서브-엔터티를 포함하고;
    각 엔터티 변경 요청은 각각의 엔터티의 서브-엔터티를 수정하라는 요청을 포함하는 방법.
  12. 제10항에 있어서, 상기 수신된 엔터티 변경 요청은 서비스의 변경, 물품의 변경 또는 상기 외부 시스템과 관련된 데이터의 변경을 포함하는 방법.
  13. 제10항에 있어서,
    트랜잭션을 시작하라는 요청을 수신하는 것;
    복수의 엔터티 변경 요청을 수신하는 것을 더 포함하는 방법으로서:
    상기 엔터티 변경 요청을 푸쉬하는 것은 상기 복수의 엔터티 변경 요청 중 하나를 푸쉬하는 것을 더 포함하고; 및
    상기 제1 엔터티 변경 요청을 분류하는 것은 상기 복수의 엔터티 변경 요청 중 하나를 분류하는 것을 포함하는 방법.
  14. 제10항에 있어서,
    상기 수신된 엔터티 변경 요청을 푸쉬하는 것에 응답하여, 모든 엔터티 변경 요청의 엔터티 저장소를 클리어하는 것을 더 포함하는 방법.
  15. 제10항에 있어서,
    데이터베이스에 저장된 엔터티의 수정을 탐지하기 위해 상기 데이터베이스를 모니터링하는 것; 및
    상기 엔터티의 수정을 탐지하는 것에 응답하여 상기 제1 엔터티 변경 요청을 수신하는 것을 더 포함하는 방법.
  16. 제15항에 있어서, 상기 수신된 엔터티 변경 요청을 푸쉬하는 것은 상기 수신된 엔터티 변경 요청을 스냅샷으로 포맷하는 것을 포함하는 방법.
  17. 제16항에 있어서,
    엔터티에 대한 수정을 롤백하는 것;
    반전에 필요한 복수의 스냅샷을 결정하기 위해 캐시 데이터베이스를 검색하는 것을 더 포함하는 방법.
  18. 제10항에 있어서, 상기 분류된 엔터티 변경 요청을 상기 엔터티 변경의 상기 분류에 기초하여 선택된 실시간 스트림을 통해 검색 인덱스로 전달함으로써 상기 분류된 엔터티 변경 요청을 상기 검색 인덱스로 전달하는 것을 더 포함하는 방법.
  19. 효율적인 검색 업데이트를 수신 및 전파하기 위한 컴퓨터 구현된 시스템에 있어서, 상기 시스템은:
    명령어를 저장하는 메모리; 및
    엔터티 내의 데이터를 수정하기 위한 제1 엔터티 변경 요청을 수신하고;
    상기 수신된 엔터티 변경 요청을 이벤트 퍼블리셔로 푸쉬하고;
    상기 수신된 엔터티 변경 요청을 제2 이벤트 퍼블리셔로 푸쉬하고 - 상기 수신된 엔터티 변경 요청을 푸쉬하는 것은 상기 수신된 엔터티 변경 요청을 스냅샷으로 포맷하는 것을 포함함 -;
    상기 수신된 엔터티 변경 요청을 푸쉬하는 것에 응답하여, 모든 엔터티 변경 요청의 엔터티 저장소를 클리어하고;
    상기 수신된 엔터티 변경 요청의 복수의 스냅샷을 생성하고;
    상기 복수의 스냅샷 중 하나에 적어도 기초하여 상기 제1 엔터티 변경 요청을 분류하고; 및
    상기 분류된 엔터티 변경 요청에 기초하여 검색 인덱스를 업데이트하기 위해 상기 명령어를 실행하도록 구성된 적어도 하나의 프로세서를 포함하는 시스템.
KR1020210043395A 2020-02-14 2021-04-02 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법 KR102336694B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210171154A KR102405220B1 (ko) 2020-02-14 2021-12-02 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/791,413 2020-02-14
US16/791,413 US11803593B2 (en) 2020-02-14 2020-02-14 Systems and methods for receiving and propagating efficient search updates in real time
KR1020200055479A KR102238422B1 (ko) 2020-02-14 2020-05-08 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200055479A Division KR102238422B1 (ko) 2020-02-14 2020-05-08 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210171154A Division KR102405220B1 (ko) 2020-02-14 2021-12-02 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210103987A KR20210103987A (ko) 2021-08-24
KR102336694B1 true KR102336694B1 (ko) 2021-12-08

Family

ID=75444143

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200055479A KR102238422B1 (ko) 2020-02-14 2020-05-08 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법
KR1020210043395A KR102336694B1 (ko) 2020-02-14 2021-04-02 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법
KR1020210171154A KR102405220B1 (ko) 2020-02-14 2021-12-02 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200055479A KR102238422B1 (ko) 2020-02-14 2020-05-08 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210171154A KR102405220B1 (ko) 2020-02-14 2021-12-02 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US11803593B2 (ko)
EP (1) EP3891682A4 (ko)
JP (1) JP2023513855A (ko)
KR (3) KR102238422B1 (ko)
CN (1) CN113557501A (ko)
SG (1) SG11202104603RA (ko)
TW (2) TW202232399A (ko)
WO (1) WO2021161089A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3187905A1 (en) * 2022-01-27 2023-07-27 Schneider Electric USA, Inc. Apparatuses, systems, and methods for providing an event management framework for a geographic information system
US12067533B1 (en) * 2022-04-12 2024-08-20 Amdocs Development Limited System, method, and computer program for handling business agreement updates requiring orchestration when an orchestration system is unavailable

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508575A (ja) 2004-06-30 2008-03-21 テクノラティ,インコーポレーテッド エコシステムを使用した集約および検索の方法、並びに、それらの関連技術
JP2016057697A (ja) 2014-09-05 2016-04-21 キヤノン株式会社 情報処理システム、情報処理装置、及びその制御方法とプログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69031031T2 (de) * 1990-05-29 1997-10-30 Hewlett Packard Ltd Bandspeicherung
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
GB0123403D0 (en) * 2001-09-28 2001-11-21 Tamesis Ltd Publish subscribe system
US20040128230A1 (en) 2002-12-30 2004-07-01 Fannie Mae System and method for modifying attribute data pertaining to financial assets in a data processing system
JP2004215111A (ja) 2003-01-07 2004-07-29 Pioneer Electronic Corp 情報記録媒体、情報再生装置及び方法、並びにコンピュータプログラム
JP4617713B2 (ja) 2004-05-10 2011-01-26 株式会社寺岡精工 オーダリングシステム
JP2009506399A (ja) 2005-06-24 2009-02-12 シンクソート インコーポレイテッド バックアップイメージを仮想化するシステム及び方法
US8661025B2 (en) 2008-11-21 2014-02-25 Stubhub, Inc. System and methods for third-party access to a network-based system for providing location-based upcoming event information
US8862752B2 (en) * 2007-04-11 2014-10-14 Mcafee, Inc. System, method, and computer program product for conditionally preventing the transfer of data based on a location thereof
US20090063470A1 (en) * 2007-08-28 2009-03-05 Nogacom Ltd. Document management using business objects
US20090182618A1 (en) * 2008-01-16 2009-07-16 Yahoo! Inc. System and Method for Word-of-Mouth Advertising
US20090204492A1 (en) * 2008-02-13 2009-08-13 Danilo Scifo Online food ordering system and method
US8650154B2 (en) * 2008-02-19 2014-02-11 International Business Machines Corporation Document synchronization solution
WO2009132444A1 (en) * 2008-04-28 2009-11-05 Sitemasher Corporation Object-oriented system for creating and managing websites and their content
US8959108B2 (en) 2008-06-18 2015-02-17 Zeitera, Llc Distributed and tiered architecture for content search and content monitoring
US8290900B2 (en) * 2010-04-24 2012-10-16 Research In Motion Limited Apparatus, and associated method, for synchronizing directory services
GB2494867A (en) * 2011-09-19 2013-03-27 Cloudtran Inc Scalable distributed transaction processing method
US9503535B2 (en) * 2012-03-06 2016-11-22 Salesforce.Com, Inc. Computer implemented methods and apparatus for automatically following entities in an online social network
US9009067B1 (en) * 2012-04-30 2015-04-14 Grubhub Holdings Inc. System, method and apparatus for managing made-to-order food tickets for a restaurant service
WO2014011614A1 (en) * 2012-07-10 2014-01-16 Memorial E Libraries, Inc. System and method for organizing and cross-referencing data to enable dynamic display and real-time editing of data in a flexible user interface
US9336330B2 (en) * 2012-07-20 2016-05-10 Google Inc. Associating entities based on resource associations
AU2014210879B2 (en) * 2013-02-04 2016-11-17 Financial & Risk Organisation Limited Methods for analysing the commodity market for electricity
US10147054B2 (en) * 2013-07-26 2018-12-04 Salesforce.Com, Inc. Displaying content of an enterprise social network feed on a mobile device
US9449173B2 (en) * 2014-09-23 2016-09-20 Intel Corporation Techniques for enabling co-existence of multiple security measures
US10528627B1 (en) 2015-09-11 2020-01-07 Amazon Technologies, Inc. Universal search service for multi-region and multi-service cloud computing resources
KR101619192B1 (ko) 2015-09-22 2016-05-10 펑션베이(주) 전산 기반 모델링의 수정 방법
US10423493B1 (en) * 2015-12-21 2019-09-24 Amazon Technologies, Inc. Scalable log-based continuous data protection for distributed databases
US10452675B1 (en) 2015-12-30 2019-10-22 Amazon Technologies, Inc. Source detection and indexing for managed search
CA2971784A1 (en) * 2016-06-23 2017-12-23 Radicalogic Technologies, Inc. Healthcare workflow system
US11397981B2 (en) * 2019-12-30 2022-07-26 DoorDash, Inc. System and method for universal menu integration interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508575A (ja) 2004-06-30 2008-03-21 テクノラティ,インコーポレーテッド エコシステムを使用した集約および検索の方法、並びに、それらの関連技術
JP2016057697A (ja) 2014-09-05 2016-04-21 キヤノン株式会社 情報処理システム、情報処理装置、及びその制御方法とプログラム

Also Published As

Publication number Publication date
KR20210151750A (ko) 2021-12-14
KR20210103987A (ko) 2021-08-24
TW202131244A (zh) 2021-08-16
EP3891682A4 (en) 2022-05-25
JP2023513855A (ja) 2023-04-04
WO2021161089A1 (en) 2021-08-19
US20210256071A1 (en) 2021-08-19
TW202232399A (zh) 2022-08-16
KR102405220B1 (ko) 2022-06-07
EP3891682A1 (en) 2021-10-13
TWI766498B (zh) 2022-06-01
US11803593B2 (en) 2023-10-31
CN113557501A (zh) 2021-10-26
SG11202104603RA (en) 2021-09-29
KR102238422B1 (ko) 2021-04-09

Similar Documents

Publication Publication Date Title
JP7228668B2 (ja) インターネットクラウドでホストされる自然言語による対話型メッセージングシステムサーバ連携
KR102405220B1 (ko) 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법
US20190080386A1 (en) Online cart and shopping list sharing
US20210272062A1 (en) Systems and methods for interconnecting network devices based on queuing and servicing responses
CN112001747A (zh) 用于将用户与社交数据匹配的系统和方法
AU2021107580A4 (en) Systems and methods for receiving and propagating efficient search updates in real time
KR102262592B1 (ko) 다지점 도착 분석을 위한 시스템 및 방법
US20170272401A1 (en) Searching contact data based on product data
US20210334825A1 (en) Systems and methods for fraud detection in e-commerce transactions
KR102223537B1 (ko) 타이머 관리 및 이벤트 트리거링을 전파하기 위한 시스템 및 방법
TWI857298B (zh) 傳播計時器管理以及事件觸發之系統以及方法
US20190272295A1 (en) Managing Data Feeds From Different Applications for Users

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right