JP2023513855A - 効率的な検索更新をリアルタイムで受信して伝搬するためのシステムおよび方法 - Google Patents
効率的な検索更新をリアルタイムで受信して伝搬するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2023513855A JP2023513855A JP2021526535A JP2021526535A JP2023513855A JP 2023513855 A JP2023513855 A JP 2023513855A JP 2021526535 A JP2021526535 A JP 2021526535A JP 2021526535 A JP2021526535 A JP 2021526535A JP 2023513855 A JP2023513855 A JP 2023513855A
- Authority
- JP
- Japan
- Prior art keywords
- entity
- event
- request
- change
- received
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2393—Updating materialised views
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic 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つ以上のプロセッサを含む。第1のエンティティ変更要求は、エンティティストレージに保存される。受信されたエンティティ変更要求は、ストリーミングサービスに転送するために、エンティティストレージからイベントパブリッシャにプッシュされる。第1のエンティティ変更要求は分類され、ストリーミングサービスから検索インデックスデータベースに転送される。その後、検索インデックスは、分類されたエンティティ変更要求に基づいて更新される。
Description
本開示の実施形態は、効率的な検索更新をリアルタイムで受信して伝搬するためのシステムおよび方法に関する。より具体的には、本開示の実施形態は、効率的な検索更新をリアルタイムでユーザデバイスに受信して伝搬することによって、ユーザがオンラインで商品を注文し、商品を配送することを可能にすることに関する。
ユーザ(例えば、オンライン顧客、オンライン販売業者、配送担当者)は、商品を注文(例えば、食品、食料品を注文)するために、オンラインウェブサイトポータルまたはモバイルアプリケーションを使用することが多い。例として、ユーザは、オンラインAウェブサイトで自分の情報(例えば、位置情報、メニュー、名前)を含むプロファイルを維持する。ユーザが自分のプロファイル情報を修正する状況では、修正が行われたときから、修正がオンラインウェブサイトポータルに反映されるときまでに、大幅な時間遅延または大幅な時間差がある。その結果、修正の反映が遅れ、ユーザに不便を生じさせる。
例として、レストランが、食品注文ウェブサイト用のオンラインウェブサイトポータルを使用することによって、レストランのオンラインメニューの内容(例えば、料理名、料理の価格、レストランの営業時間など)を更新すると、その後、オンラインメニューの変更は、大幅な時間遅延の後に食品注文ウェブサイトに反映される。このような更新プロセスに利用される現在の解決策は、これらの更新要求がバッチで処理されるので、リアルタイムではない。要求は、一定の期間にネットワークサーバによって処理され、その結果、それらの期間に受信された要求は、その期間の終わりにバッチとして一緒に処理される。ネットワークサーバによって更新をバッチで処理すると、更新をユーザに反映するのに大幅な時間遅延が生じる。したがって、現在の解決策は非効率的であり、遅延を生じるので、リアルタイムで更新を反映する必要がある。
本開示の実施形態によれば、効率的な検索更新を受信して伝搬するためのシステムが提供され、本システムは、命令を格納するメモリと、命令を実行するように構成された少なくとも1つのプロセッサであって、命令が、ネットワークを介して第1の外部システムから、第1の外部システムに関連付けられたエンティティのデータを修正するための第1のエンティティ変更要求を受信し、受信した第1のエンティティ変更要求をエンティティストレージに保存し、ストリーミングサービスに転送するために、エンティティストレージからイベントパブリッシャに、受信したエンティティ変更要求をプッシュし、第1のエンティティ変更要求を分類し、ストリーミングサービスから、分類されたエンティティ変更要求を検索インデックスデータベースに転送し、分類されたエンティティ変更要求に基づいて検索インデックスを更新する命令である、プロセッサとを備える。
本開示の実施形態によれば、効率的な検索更新を受信して伝搬するためのコンピュータ実装方法も提供され、本方法は、ネットワークを介して第1の外部システムから、第1の外部システムに関連付けられたエンティティのデータを修正するための第1のエンティティ変更要求を受信することと、受信した第1のエンティティ変更要求をエンティティストレージに保存することと、ストリーミングサービスに転送するために、受信したエンティティ変更要求をエンティティストレージからイベントパブリッシャにプッシュすることと、第1のエンティティ変更要求を分類することと、ストリーミングサービスから、分類されたエンティティ変更要求を検索インデックスデータベースに転送することと、分類されたエンティティ変更要求に基づいて検索インデックスを更新することとを含む。
本開示の実施形態によれば、効率的な検索更新を受信して伝搬するためのシステムが提供され、本システムは、命令を格納するメモリと、命令を実行するように構成された少なくとも1つのプロセッサであって、命令が、ネットワークを介して第1の外部システムから、第1の外部システムに関連付けられたエンティティのデータを修正するための第1のエンティティ変更要求を受信し、受信した第1のエンティティ変更要求をイベントストレージに保存し、ストリーミングサービスに転送するために、イベントストレージからイベントパブリッシャに、受信したエンティティ変更要求をプッシュし、キャッシュデータベースに格納するために、受信されたエンティティ変更要求を、イベントストレージから第2のイベントパブリッシャにプッシュし、ここで、受信されたイベント変更要求を、イベントストレージからイベントパブリッシャおよび第2のイベントパブリッシャにプッシュすることが、受信されたエンティティ変更要求をスナップショットとしてフォーマットすることを含み、受信したエンティティ変更要求をイベントストレージからプッシュすることに応じて、すべてのエンティティ変更要求をイベントストレージから消去し、第1のエンティティ変更要求を分類し、ストリーミングサービスから、分類されたエンティティ変更要求を検索インデックスデータベースに転送し、分類されたエンティティ変更要求に基づいて検索インデックスを更新する命令である、プロセッサとを備える。
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、開示する実施形態を図示し、説明と共に、開示する実施形態を説明するのに役立つ。
ここで、開示する実施形態を詳細に参照し、その例を添付の図面に図示する。便宜上、同じまたは同様の部分を意味するために、添付の図面全体を通して同じ符号が使用される。
以下の説明は、効率的な検索更新をリアルタイムで受信して伝搬することに関するが、これらの実施形態は単なる例とされている。本開示は、例示にすぎない特定の、開示する実施形態および詳細に限定されないことを理解されたい。当業者は、既知のシステムおよび方法を考慮し、特定の設計および他の必要性に応じて、任意の数の代替実施形態における意図する目的および意図する利益のために、本開示の実施形態を使用することを理解するであろうことがさらに理解される。
図1は、開示する実施形態と一致する、1つ以上の動作を実行するための例示的なシステム100のブロック図である。いくつかの実施形態では、システム100は、対応する顧客位置104(1)、...、104(n)にそれぞれ配置された1つ以上の顧客デバイス102(1)、...、102(n)と、対応する配送輸送手段108(1)、...、108(n)にそれぞれ配置された1つ以上の商品配送提供者デバイス106(1)、...、106(n)と、対応する販売業者店舗112(1)、...、112(n)に配置された1つ以上の商品サービス提供者デバイス110(1)、...、110(n)とを含む。さらに、システム100は、統合サーバシステム116と、遠隔データベース120と、通信ネットワーク114とを含む。また、互いに直接通信し、さらに通信ネットワーク114を介して、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、および商品サービス提供者デバイス110(1)~110(n)と通信する、複数の統合サーバシステム116(不図示)および複数の遠隔データベース120(不図示)を、システム100は含んでもよい。システム100に含まれる、構成要素および構成要素の配置は変化してもよい。したがって、システム100は、開示する実施形態と一致する1つ以上の動作を実行し、または実行するのを支援する他の構成要素を含んでもよい。
以下でより詳細に説明するように、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)、統合サーバシステム116、および遠隔データベース120は、1つ以上のコンピュータデバイス(例えば、コンピュータ、サーバなど)と、データおよび/またはソフトウェア命令を格納するメモリ(例えば、データベース、メモリデバイスなど)と、他の既知のコンピュータ構成要素とを含んでもよい。いくつかの実施形態では、1つ以上のコンピュータデバイスは、メモリに格納されたソフトウェア命令を実行し、開示する実施形態と一致する1つ以上の動作を実行するように構成されてもよい。顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)、統合サーバシステム116、および遠隔データベース120の態様は、例えば、通信ネットワーク114を介してシステム100の1つ以上の他の構成要素と通信するように構成されてもよい。特定の態様では、開示する実施形態と一致する1つ以上の動作のために、通信を送受信、動作を開始、および/または入力を提供することによってシステム100の1つ以上の構成要素と対話するために、顧客位置104(1)~104(n)に関連付けられた顧客は、それぞれ顧客デバイス102(1)~102(n)に関連付けられて顧客デバイス102(1)~102(n)を操作し、配送輸送手段108(1)~108(n)に関連付けられた運転者は、それぞれ商品配送提供者デバイス106(1)~106(n)に関連付けられて商品配送提供者デバイス106(1)~106(n)を操作し、販売業者店舗112(1)~112(n)に関連付けられた販売業者は、それぞれ商品サービス提供者デバイス110(1)~110(n)に関連付けられて商品サービス提供者デバイス110(1)~110(n)を操作する。
統合サーバシステム116は、商品の注文サービスを受信し、処理し、管理し、または提供するオンライン注文エンティティと関連付けてもよい。例えば、オンライン注文エンティティを介して注文してもよい商品には、調理済み食品、食料品、家具、本、コンピュータ、および/または衣服が含まれてもよいが、任意の他の種類の商品も注文されてもよい。例えば、統合サーバシステム116は、顧客デバイス102(1)~102(n)を使用する顧客からの注文要求を受信し、注文された商品を提供することになる販売業者店舗112(1)~112(n)に関連付けられた商品サービス提供者デバイス110(1)~110(n)に要求を送信することによって、受信した注文要求を処理してもよい。統合サーバシステム116は、商品サービス提供者デバイス110(1)~110(n)からの注文確認通信を受信する。統合サーバシステム116は、商品サービス提供者デバイス110(1)~110(n)から注文確認を受信すると、商品配送提供者デバイス106(1)~106(n)に対して、販売業者店舗112(1)~112(n)から注文を収集して顧客位置104(1)~104(n)に配送するよう要求を送信する。商品配送提供者デバイス106(1)~106(n)は、要求を受け付けて、要求された商品を収集し、要求された商品を顧客位置104(1)~104(n)に配送する。
システム100の遠隔データベース120は、統合サーバシステム116に直接、または通信ネットワーク114を介して通信可能に接続してもよい。さらに、システム100の遠隔データベース120は、通信ネットワーク114を介して、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、および商品サービス提供者デバイス110(1)~110(n)に通信可能に接続してもよい。遠隔データベース120は、情報を格納し、システム100の1つ以上の構成要素によってアクセス、および/または管理される1つ以上のメモリデバイスを含んでもよい。例として、遠隔データベース120は、Oracle(商標)データベース、Sybase(商標)データベース、もしくは他のリレーショナルデータベース、または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)には、車、バイク、トラック、バスが含まれてもよいが、任意の他の種類の配送輸送手段が含まれてもよい。さらに、運転者プロファイル情報には、運転者名前、運転者自宅住所、運転者の写真、および/または運転者の電話番号、運転者が運転する配送輸送手段のメーカーおよびモデルが含まれるが、運転者に関連付けられた任意の他の種類の情報が含まれてもよい。
一態様では、統合サーバシステム116は、図4A、図4B、および図5に関連して以下でより完全に説明する、開示する実施形態と一致する、1つ以上の動作を実行するように構成された、1つ以上のコンピュータデバイスを含んでもよい。一態様では、統合サーバシステム116は、1つ以上の、サーバまたはサーバシステムを含んでもよい。統合サーバシステム116は、メモリまたは他の記憶デバイスに格納されたソフトウェア命令を実行するように構成された1つ以上のプロセッサを含んでもよい。1つ以上のプロセッサは、インターネット関連の通信、オンライン注文ベースのプロセスを実行し、効率的な検索更新をリアルタイムで受信して伝搬するための、格納されたソフトウェア命令を実行するように構成されてもよい。統合サーバシステム116の1つ以上のコンピュータデバイスは、顧客プロファイル情報、販売業者プロファイル情報、および/または運転者プロファイル情報を修正して格納するように構成されてもよい。統合サーバシステム116の1つ以上のコンピュータデバイスはまた、システム100の他の構成要素と通信し、効率的な検索更新をリアルタイムで受信して伝搬するように構成されてもよい。いくつかの実施形態では、統合サーバシステム116は、通信ネットワーク114を介して、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)によってアクセス可能な1つ以上の、モバイルアプリケーション、ウェブサイト、またはオンラインポータルを提供してもよい。開示する実施形態は、統合サーバシステム116の特定の構成に限定されない。
通信ネットワーク114は、システム100の構成要素同士の間で通信を提供し、もしくはデータを交換し、またはその両方を行うように構成された任意の種類のコンピュータネットワーク構成を含んでもよい。例えば、通信ネットワーク114は、通信を提供し、情報を交換し、および/または情報の交換を容易にする任意の種類のネットワーク(インフラストラクチャを含む)を含んでもよく、例としては、インターネット、私設データネットワーク、公衆ネットワークを使用する仮想私設ネットワーク、LANネットワークもしくはWANネットワーク、Wi-Fi(商標)ネットワーク、および/またはシステム100の様々な構成要素同士の間の情報交換を可能にすることができる他の適切な接続などである。通信ネットワーク114はまた、公衆交換電話網(「PSTN」)および/または無線移動体ネットワークを含んでもよい。通信ネットワーク114は、セキュアなネットワークであってもよく、セキュアでないネットワークであってもよい。いくつかの実施形態では、システム100の1つ以上の構成要素は、専用通信リンクを介して直接通信してもよい。
顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)は、図2に関連して以下でより詳細に説明するように、開示する実施形態と一致する1つ以上の動作を実行するように構成された1つ以上のコンピュータデバイスであってもよい。顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)は、ブラウザまたは関連するモバイルディスプレイソフトウェアを実行してもよく、これらが、顧客デバイス102(1)~102(n)に含まれたディスプレイ、または顧客デバイス102(1)~102(n)に接続されたディスプレイ上に、商品の配送のためにオンライン注文を行うこと、注文を受け取ること、および注文された商品を配送することのためのオンラインポータルを表示する。顧客デバイス102(1)~102(n)はまた、顧客、販売業者、および/または運転者が、統合サーバシステム116によって提供されるオンラインポータルと対話することを可能にする他のモバイルアプリケーションを格納して実行してもよい。
システム100の機能ブロックの構成は、説明の便宜上、本明細書で定義されていることを理解されたい。システム100に含まれる、構成要素および構成要素の配置は変化してもよい。例えば、いくつかの実施形態では、システム100は、開示する方法と一致する1つ以上のプロセスを実行、または実行を支援する他の構成要素を含んでもよい。システム100は、概してコンピュータデバイスとして説明するいくつかの構成要素を含む。コンピュータデバイスの各々は、本明細書に開示する機能を実行するための特殊用途コンピュータデバイスとして特に構成された任意の数のコンピュータ構成要素を含んでもよい。代替形態(本明細書で説明する実施形態の、均等物、拡張形態、変形形態、変更形態などを含む)は、本明細書に含まれる教示に基づいて当業者には明らかになるであろう。このような代替形態は、開示する実施形態の範囲および趣旨の中に含まれる。
図2は、開示する実施形態と一致する例示的なサーバデバイス200を示す。例示的なサーバデバイス200の変形形態は、統合サーバシステム116の1つ以上の構成要素を構成してもよい。一実施形態では、サーバデバイス200は、バス234を介して通信する、1つ以上のメモリ202、1つ以上のI/Oデバイス206、および1つ以上のプロセッサ208を含む。いくつかの実施形態では、サーバデバイス200は統合サーバシステム116の一部であってもよい。いくつかの実施形態では、サーバデバイス200は、統合サーバシステム116の完全な機能を実行するために統合サーバシステム116によって使用される特別にプログラムされた、サーバまたはコンピュータシステムの形態をとってもよい。いくつかの実施形態では、サーバデバイス200は、開示する実施形態と一致する1つ以上の動作を実行するソフトウェア命令の格納、実行、および/または実装に基づいて、装置、組み込みシステム、専用回路などとして構成してもよい。
メモリ202は、開示する実施形態に関連する機能を実行するためにプロセッサ208によって使用される命令を格納するように構成された1つ以上の記憶デバイスを含んでもよい。例えば、メモリ202は、プロセッサ208によって実行されると1つ以上の動作を実行してもよいプログラム204などの、1つ以上のソフトウェア命令を有するように構成してもよい。開示する実施形態は、専用タスクを実行するように構成された別個のプログラムまたはコンピュータに限定されない。例えば、メモリ202は、サーバデバイス200の機能を実行する単一のプログラム204を含んでもよく、またはプログラム204は複数のプログラムを含んでもよい。特定の実施形態では、メモリ202は、統合サーバシステム116の機能を実行するための、命令またはプログラム204の組を格納してもよい。これらの命令の組は、開示する実施形態と一致する、通信および/またはプロセスを実行するためにプロセッサ208によって実行されてもよい。
特定の実施形態では、サーバデバイス200が統合サーバシステム116の構成要素のうちの1つ以上を構成するとき、メモリ202は、以下で詳細に説明するように、ドメインサービスモジュール210、エンティティ変更リスナモジュール212、トランザクションリスナモジュール214、キャッシュイベントパブリッシャモジュール216、検索イベントパブリッシャモジュール218、検索インデックスデータベース220、エンティティ変更ストレージ222、およびキャッシュデータベース224を含む。
他の実施形態では、ドメインサービスモジュール210、エンティティ変更リスナモジュール212、トランザクションリスナモジュール214、キャッシュイベントパブリッシャモジュール216、検索イベントパブリッシャモジュール218、検索インデックスデータベース220、エンティティ変更ストレージ222、およびキャッシュデータベース224の各々は、通信ネットワーク114を介して、サーバ同士で互いに、遠隔データベース120、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、および商品サービス提供者デバイス110(1)~110(n)と通信する別個の個別のサーバとして実装されてもよい。別の例では、検索インデックスデータベース220、エンティティ変更ストレージ、およびキャッシュデータベースは、遠隔データベース120でホストされてもよい。
入出力(I/O)206には、キーボード、マウス型デバイス、ジェスチャセンサ、アクションセンサ、物理的ボタン、スイッチ、マイクロフォン、タッチスクリーンパネル、スタイラスなどの様々な入出力デバイスが含まれてもよく、これらの入出力デバイスは、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)、および/または商品サービス提供者デバイス110(1)~110(n)によって操作されてもよい。I/Oデバイス206はまた、オーディオ出力デバイスを含んでもよい。I/Oデバイス206の例示的な通信モジュールは、例えば、短距離無線通信モデムもしくは近距離無線通信モデム、Wi-Fi(商標)通信モデム、または移動体通信モデムを含んでもよい。I/Oデバイス206は、1つ以上の無線技術/プロトコルを使用して通信するように構成された、送受信機または送信機を含んでもよく、これらの無線技術/プロトコルは、移動体(例えば、3G、4Gなど)技術、Wi-Fi(商標)ホットスポット技術、RFID、近距離場通信(NFC)、またはBLUETOOTH(登録商標)技術などを含んでもよいが、これらに限られるわけではない。より概して言えば、通信ネットワーク114を介して、統合サーバシステム116、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)、商品サービス提供者デバイス110(1)~110(n)、または遠隔データベース120と情報を交換するために、当業者に知られている任意の一方向または双方向通信技術をサーバデバイス200に実装してもよい。
プロセッサ208は、例えば、Intel(商標)製のPentium(商標)ファミリーもしくはXeon(商標)ファミリー、またはAMD(商標)製のTurion(商標)ファミリーのマイクロプロセッサなどの、1つ以上の既知の処理デバイスを含んでもよい。開示する実施形態は、システム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との遠隔対話またはモバイルトランザクションを実行すること、または統合サーバシステム116から情報を受信することを可能にしてもよい。いくつかの実施形態では、ユーザデバイス300は、パーソナルコンピュータデバイスであってもよい。例えば、ユーザデバイス300は、スマートフォン、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、多機能時計、多機能眼鏡、または計算能力を有する任意の、モバイルデバイスもしくはウェアラブルデバイス、またはこれらのコンピュータおよび/または関連する構成要素の任意の組み合わせであってもよい。
ユーザデバイス300は、メモリ312などのメモリに格納されたソフトウェア命令を実行するように構成された1つ以上のプロセッサ308を含む。メモリ312は、プロセッサ308によって実行されると、顧客、運転者、および/または販売業者のための、既知のインターネット関連通信、内容表示プロセス、および他の対話型プロセスを実行する1つ以上のソフトウェアプログラム314を格納してもよい。例えば、ユーザデバイス300は、ユーザデバイス300に含まれるディスプレイデバイス302、またはユーザデバイス300と通信するディスプレイデバイス302上に内容を含むインターフェースを生成して表示する、ブラウザまたは関連するモバイルディスプレイソフトウェアを実行してもよい。ユーザデバイス300は、プログラム314に含まれる、モバイルデバイスアプリケーションおよび/またはモバイルデバイス通信ソフトウェアを実行するモバイルデバイスであってもよく、これらのモバイルデバイスアプリケーションおよび/またはモバイルデバイス通信ソフトウェアは、ユーザデバイス300が通信ネットワーク114を介して統合サーバシステム116および他の構成要素と通信し、ディスプレイデバイス302を介してインターフェースに内容を生成して表示することを可能にする。開示する実施形態は、ユーザデバイス300の特定の構成に限定されない。ユーザデバイス300は、開示する実施形態と一致する、1つ以上の動作を実行するように構成された1つ以上のコンピュータデバイスの任意の構成を含んでもよい。
ユーザデバイス300は、プロセッサ308によって実行されると既知のオペレーティングシステム機能を実行する1つ以上のオペレーティングシステムをメモリ312に格納するように構成されてもよい。例として、オペレーティングシステムは、MicrosoftWindows(登録商標)、Unix(登録商標)、Linux(登録商標)、Android(登録商標)、Apple(登録商標)MacOSオペレーティングシステム、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を操作する、顧客、運転者、および販売業者に、音声およびオーディオフィードバックを提供するように構成されたスピーカなどのオーディオ出力デバイスを含んでもよい。いくつかの実施形態では、I/Oデバイス304は、LEDなどの発光構成要素、または顧客、運転者、および販売業者に可視信号を提供することができる他の構成要素を含んでもよい。I/Oデバイス304はまた、顧客、運転者、および販売業者に触覚フィードバックを提供するための触覚出力デバイスを含んでもよい。I/Oデバイス304はまた、例えば、ユーザデバイス300と通信ネットワーク114との間の有線接続または無線接続を確立することによって、システム100内の他の構成要素から情報を送受信するための1つ以上の通信モジュール(不図示)を含んでもよい。I/Oデバイス304は、通信ネットワーク114に関連付けられた他のデバイスと通信するための無線周波数通信インターフェース、赤外線通信インターフェース、または他の近距離場通信インターフェースを含んでもよい。I/Oデバイス304の例示的な通信モジュールは、例えば、短距離無線通信モデムまたは近距離場無線通信モデム、Wi-Fi(商標)通信モデム、または移動体通信モデムを含んでもよい。I/Oデバイス304は、1つ以上の無線技術/プロトコルを使用して通信するように構成された送受信機または送信機を含んでもよく、この無線技術/プロトコルには、移動体(例えば、3G、4Gなど)技術、Wi-Fi(商標)ホットスポット技術、RFID、近距離場通信(NFC)、またはBLUETOOTH(登録商標)技術などが含まれてもよいが、これらに限られるわけではない。より概して言えば、通信ネットワーク114を介して、統合サーバシステム116または遠隔データベース120と情報を交換するために、当業者に知られている任意の一方向または双方向通信技術をユーザデバイス300に実装してもよい。
前述のように、ユーザデバイス300は、開示する実施形態と一致する、動作を実行するためのモバイルアプリケーションを実行するデバイスであってもよい。したがって、いくつかの実施形態では、ユーザデバイス300に格納されたプログラム314は、ユーザデバイス300上にインストールされた1つ以上のソフトウェアアプリケーション316を含んでもよく、このソフトウェアアプリケーション316は、ユーザデバイス300が通信ネットワーク114を介して統合サーバシステム116と通信し、開示する方法の態様を実行することを可能にする。例えば、ユーザデバイス300は、ブラウザソフトウェアを使用して統合サーバシステム116に接続し、情報にアクセスして受信してもよく、またはインターネットサービス提供者に関連付けられた他の動作を実行してもよい。
例示的な実施形態によれば、統合サーバシステム116に関連付けられたソフトウェアアプリケーション316は、図3に示すように、ユーザデバイス300にインストールしてもよい。例えば、統合サーバシステム116は、顧客デバイス102(1)から、1つ以上のソフトウェアアプリケーション316をユーザ顧客デバイス102(1)にダウンロードする要求を受信してもよい。一実施形態では、統合サーバシステム116は、顧客デバイス102(1)にそれぞれインストールされたウェブブラウザアプリケーションを使用し、顧客デバイス102(1)に関連付けられた顧客から要求を受信してもよい。別の実施形態では、統合サーバシステム116は、例えば、顧客デバイス102(1)を介してアクセスされる統合サーバシステム116に関連付けられたウェブページまたは別のポータルから、顧客デバイス102(1)に、統合サーバシステム116に関連付けられた1つ以上のソフトウェアアプリケーション316をダウンロードする要求を受信してもよい。この実施形態では、統合サーバシステム116は、遠隔データベース120に1つ以上のソフトウェアアプリケーション316に対応するソフトウェア命令を格納してもよい。ダウンロード要求に応じるために、統合サーバシステム116は、顧客デバイス102(1)の特定のデバイス仕様に関する追加情報を顧客デバイス102(1)から受信し、顧客デバイス102(1)が、特定の仕様に対応するソフトウェア命令をダウンロードすることを可能にしてもよい。代替的に、統合サーバシステム116は、ダウンロード要求リンクを顧客デバイス102(1)にプッシュし、または1つ以上のソフトウェアアプリケーション316に対応するソフトウェアコードを、例えば、電子メール、テキストメッセージもしくはショートメッセージサービス(SMS)メッセージ、アプリを介したプロンプト、または他の適切な方法で、顧客デバイス102(1)に直接送信してもよい。顧客デバイス102(1)は、通信ネットワーク114などを介して、1つ以上のソフトウェアアプリケーション316に関連するソフトウェアコードを受信し、ソフトウェアコードをダウンロードしてインストールしてもよい。同様に、別の例では、統合サーバシステム116は、商品配送提供者デバイス106(1)に関連付けられた運転者から、1つ以上のソフトウェアアプリケーション316を商品配送提供者デバイス106(1)にダウンロードする要求を受信してもよい。さらに、同様に、別の例では、統合サーバシステム116は、商品サービス提供者デバイス110(1)に関連付けられた販売業者から、1つ以上のソフトウェアアプリケーション316を商品サービス提供者デバイス110(1)にダウンロードする要求を受信してもよい。
図4Aおよび図4Bは、開示する実施形態と一致する、効率的な検索更新をリアルタイムで受信して伝搬するために統合サーバシステム116によって実装される例示的なプロセス400のフローチャートを含む。統合サーバシステム116は、図2のサーバデバイス200として実装され、プロセス400の動作のうちの1つ以上を実行するソフトウェア命令を実行する。プロセス400の動作は、図5に関連して説明する。
図5は、図4Aおよび図4Bの例示的なプロセスを図示するフローチャート500を含む。図5は、この例におけるサーバデバイス200のドメインサービスモジュール210、エンティティ変更リスナモジュール212、エンティティ変更ストレージ222、トランザクションリスナモジュール214がイベント処理システム502として実装されることを図示する。さらに、この例におけるサーバデバイス200のキャッシュデータベース224、キャッシュイベントパブリッシャモジュール216、検索イベントパブリッシャモジュール218、および検索インデックスデータベース220は、データベースシステム504として実装される。いくつかの実施形態では、イベント処理システム502およびデータベースシステム504は、統合サーバシステム116の一部である。
プロセス400によれば、ステップ402で、統合サーバシステム116のドメインサービスモジュール210は、遠隔データベース120を監視し、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)によるエントリの修正を判定する。例として、図5を参照すると、ドメインサービスモジュール210は、遠隔データベース120(不図示)を監視し、遠隔データベース120にデータエントリとして格納された、販売業者プロファイル情報、顧客プロファイル情報、および運転者プロファイル情報が、顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)、および/または商品サービス提供者デバイス110(1)~110(n)によって修正されたか否かを判定する。ドメインサービスモジュール210は、遠隔データベース120の修正を検出するように構成されてもよい。ドメインサービスモジュール210は、遠隔データベース120の書き込みを検出する。
例として、販売業者店舗112(1)の商品サービス提供者デバイス110(1)に関連付けられた販売業者は、オンラインウェブサイトポータルを介して販売業者の販売業者プロファイル情報にアクセスする。商品サービス提供者デバイス110(1)は、商品サービス提供者デバイス110(1)上のディスプレイを介して販売業者プロファイル情報を表示する。さらに、遠隔データベース120は、販売業者プロファイル情報などのデータを階層構造で格納してもよい。例えば、販売業者店舗112(1)の名前は親エンティティであってもよく、店舗営業時間、メニュー名、写真アルバム、住所位置などは、親エンティティの下に格納される子エンティティである。さらに、メニュー情報は、複数のカテゴリを含み、これらのカテゴリは、アペタイザ、サラダ、メキシコ料理、アントレ、デザートなどを含み、これらのエントリは、メニュー名の子エンティティの下で子サブエンティティとして分類される。例えば、販売業者プロファイル情報は、販売業者店舗112(1)について、8:00AM~5:00PMまでの店舗営業時間を含んでもよい。商品サービス提供者デバイス110(1)の販売業者は、8:00AM~5:00PMの店舗営業時間を、9:00AM~6:00PMの新たな時間帯に修正する。この修正により、遠隔データベース120において、販売業者店舗112(n)の店舗営業時間エントリが更新される。遠隔データベース120における店舗営業時間エントリのこの更新は、遠隔データベース120の監視に基づいて、ドメインサービスモジュール210によって判定される。同様に、対応する販売業者プロファイル情報、顧客プロファイル情報、および/または運転者プロファイル情報の、複数の販売業者、顧客、および/または運転者の各々によって複数の修正が実行される結果として、複数のエンティティ変更要求が生成されるようにしてもよい。
階層構造を提供することにより、この技術は、データオーバーヘッドを低減する最適化されたプロセスの技術的利点を提供する。階層構造を提供することにより、この技術は、修正が行われる特定の位置を識別するので、修正された、その親エンティティ、子エンティティ、および/または子サブエンティティのみに関連付けられた検索インデックスデータベース220の情報を更新することに関する情報を含むエンティティ変更要求を生成し、この技術は、子サブエンティティを変更しても、追加のデータオーバーヘッドを必要とする、メニュー情報全体を更新するためのエンティティ変更要求を生成することをしない。
ステップ404で、統合サーバシステム116のエンティティ変更リスナモジュール212は、遠隔データベース120のエントリを修正すると、第1のエンティティ変更要求を受信する。ステップ402でエントリの修正を判定すると、ドメインサービスモジュール210は、第1のエンティティ変更要求を送信する。第1のエンティティ変更要求は、変更されたエンティティに対応する情報を含む。例として、メニューのアペタイザカテゴリ内の商品に関連付けられた価格が修正されると、その後、第1のエンティティ変更要求は、アペタイザカテゴリの子サブエンティティに関連付けられたエンティティ識別子と、この例ではアペタイザカテゴリ内の商品に関連付けられた価格である修正情報とを含む。さらに、エンティティ識別子は、検索インデックスデータベース220に格納されたルックアップテーブル内のアドレスであってもよい。これは、図5のステップ502に示す通りである。
別の例では、販売業者が販売業者112(1)の店舗営業時間情報を修正すると、ドメインサービスモジュール210が、(ステップ402で説明したように)遠隔データベース120を監視し、データエントリの修正を判定すると、ドメインサービスモジュール210が、第1のエンティティ変更要求を送信する。第1のエンティティ変更要求は、店舗営業時間の子エンティティに関連付けられた識別子と、この例では8:00AM~5:00PMの営業時間から、9:00AM~6:00PMの新たな時間帯への変更である修正情報とを含む。同様に、トランザクションリスナモジュール214が、エンティティ変更ストレージ222から、プッシュされたデータを受信する期間にわたって、対応する販売業者プロファイル情報、顧客プロファイル情報、および/または運転者プロファイル情報の複数の販売業者、顧客、および/または運転者がそれぞれ。顧客デバイス102(1)~102(n)、商品配送提供者デバイス106(1)~106(n)、商品サービス提供者デバイス110(1)~110(n)、および遠隔データベース120は、外部システムと呼ばれてもよい。
ステップ406で、統合サーバシステム116のエンティティ変更リスナモジュール212は、エントリに対して行われた修正をエンティティ変更ストレージ222に格納する。格納することは、エンティティ変更ストレージ222にエントリに対して行われた修正を保存することとも呼ばれる。統合サーバシステム116は、第1のエンティティ変更要求を受信すると、修正後のエントリに関連付けられた識別子と、第1のエンティティ変更要求に含まれる修正情報とを格納する。例として、第1のエンティティ変更要求が修正されるべきエントリを、メニューのアペタイザカテゴリ内の商品の価格として識別すると、その後、統合サーバシステム116は、アペタイザカテゴリの子サブエンティティに関連付けられたエンティティ識別子と、この例ではアペタイザカテゴリ内の商品に関連付けられた価格である修正情報とをエンティティ変更ストレージ222に格納する。同様に、修正されたエントリに関連付けられた識別子と、対応する、販売業者プロファイル情報、顧客プロファイル情報、および/または運転者プロファイル情報において、複数の販売業者、複数の顧客、および/または複数の運転者によって実行された複数の修正に基づいて生成されたエンティティ変更要求の修正情報ともまた、エンティティ変更ストレージ222に格納される。これは、図5のステップ504に示す通りである。
ステップ408で、統合サーバシステム116のドメインサービスモジュール210は、トランザクションリスナモジュール214でトランザクションリスニングモードを初期化するためにコミットイベント要求を送信する。ドメインサービスモジュール210は、ステップ402で第1のエンティティ変更要求を送信すると、コミットイベント要求を生成する。これは、図5のステップ506に示されている。
ステップ410で、統合サーバシステム116のエンティティ変更ストレージ222は、ステップ406で格納されたデータをトランザクションリスナモジュール214にプッシュする。統合サーバシステム116のトランザクションリスナモジュール214は、ドメインサービスモジュール210からコミットイベント要求を受信すると、トランザクションリスニングモードを初期化する。トランザクションリスニングモードが初期化されると、トランザクションリスナモジュール214は、エンティティ変更ストレージ222からデータが受信されるのをリッスンする。エンティティ変更ストレージ222は、ステップ406で格納されたデータをトランザクションリスナモジュール214にプッシュする。トランザクションリスナモジュール214は、受信されたデータからエンティティ識別子、および対応する修正情報を識別する。エンティティ変更ストレージ222からデータをプッシュすることはリアルタイムで実行される。いくつかの実施形態では、データがエンティティ変更ストレージ222に格納されるとすぐに、データは直ちにトランザクションリスナモジュール214にプッシュされる。変更されたエントリに関連付けられた複数の識別子、およびそれらのエントリに関連付けられた対応する修正は、エンティティ変更ストレージ222によってプッシュされる。同様に、トランザクションリスナモジュール214にプッシュされ、エンティティ変更ストレージ222に格納されたデータは、図5のステップ508に示すように、トランザクションリスナモジュール214がエンティティ変更ストレージ222からデータを受信する期間にわたって、対応する、販売業者プロファイル情報、顧客プロファイル情報、および/または運転者プロファイル情報の、複数の販売業者、顧客、および/または運転者によってそれぞれ行われた複数の修正を含んでもよい。
別の例では、エンティティ変更ストレージ222からのデータのプッシュは、期間の一定の間隔で実行される。期間には、1マイクロ秒、1秒、5秒、5分、1時間、および/または24時間が含まれてもよいが、任意の他の期間も含まれてもよい。エンティティ変更ストレージ222からプッシュされたデータは、その期間中に変更されたエントリに関連付けられた複数の識別子と、その期間中にそれらのエントリに関連付けられた対応する修正とを含む。
別の例では、トランザクションリスナモジュール214は、ステップ406でエンティティ変更ストレージ222に格納されたデータを取得する。取得されたデータは、修正されたエントリに関連付けられた識別子と、第1のエンティティ変更要求に含まれる修正情報とを含んでもよい。例えば、エンティティ変更ストレージ222内の、アペタイザカテゴリの子サブエンティティに関連付けられたエンティティ識別子と、この例ではアペタイザカテゴリ内の商品に関連付けられた価格である修正情報とを含む。
トランザクションリスナモジュール214は、エンティティ変更ストレージ222からエンティティ識別子を受信すると、エンティティ識別子に関連付けられたイベントの種類を識別し、この識別は、ステップ406でエンティティ変更ストレージ222が格納したデータをトランザクションリスナモジュール214にプッシュすること、またはステップ406でエンティティ変更ストレージ222に格納されたデータをトランザクションリスナモジュール214が取得することのいずれかによって行われる。識別されたイベントの種類は、階層構造においてエンティティ識別子と関連付けられた位置を含む。例として、イベントの種類は、変更された、親エンティティ、子エンティティ、および/または子サブエンティティのみに関連付けられた位置を含んでもよい。
ステップ412で、統合サーバシステム116のトランザクションリスナモジュール214は、エンティティ変更ストレージ222に格納されたデータを受信することに応じて発火イベントを識別する。発火イベントは、エンティティ変更ストレージ222から受信したデータの複数のスナップショットを生成するイベントである。トランザクションリスナモジュール214は、エンティティ変更ストレージ222に格納されたデータを受信することに応じて、発火イベントを初期化することを識別する。発火イベントを初期化することにより、トランザクションリスナモジュール214が、ステップ410でエンティティ変更ストレージ222から受信したデータの複数のスナップショットを生成する。発火イベントを識別すると、統合サーバシステム116のトランザクションリスナモジュール214は、エンティティ変更ストレージ222によってプッシュされたデータのスナップショットを生成する。例として、スナップショットは、ステップ410でトランザクションリスナモジュール214によってエンティティ変更ストレージ222から受信されたデータのコピーである。別の例では、スナップショットは、エンティティ変更ストレージ222に格納されたデータへの参照表示部を含むデータベーステーブルである。図5に示すように、ステップ510で、514のパス、および516のパスを介して、2つのスナップショットが送信される。これらのスナップショットは、送信されている同じデータ内容を有する。
ステップ414で、統合サーバシステム116のトランザクションリスナモジュール214は、エンティティ変更ストレージ222を消去する要求を送信する。トランザクションリスナモジュール214は、エンティティ変更ストレージ222によってプッシュされたデータを受信すると、エンティティ変更ストレージ222によってプッシュされたデータを消去する要求を送信する。エンティティ変更ストレージ222は、データを消去する要求を受信すると、プッシュされたデータを削除する。これは、図5のステップ512に示されている。
ステップ416で、統合サーバシステム116のトランザクションリスナモジュール214は、ステップ410で識別された対応するイベントの種類と共に、スナップショットのうちの1つをキャッシュイベントパブリッシャモジュール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は、スナップショットのデータエントリを複数のデータパイプラインカテゴリのうちの1つに分類する。検索イベントパブリッシャモジュール218は、カテゴリの種類に基づいて、スナップショットのデータエントリを複数のストリームに分類し、ストリームに沿ってデータパイプラインカテゴリに転送するストリーミングサービスである。パイプラインカテゴリは、販売業者店舗112(1)~112(n)のうちの1つに関連付けられた親エンティティを含む。例として、パイプラインカテゴリ526は、販売業者店舗112(1)に関連付けられてもよく、パイプラインカテゴリ528は、販売業者店舗112(n)に関連付けられてもよい。イベントの種類で識別された位置の種類に基づいて、検索イベントパブリッシャモジュール218は、イベントの種類で識別された位置として対応するデータパイプライン526~530のうちの1つを判定し、データエントリをデータパイプライン526~530のうちの対応する1つに送信する。
別の実施形態では、パイプラインカテゴリには、親エンティティ、子エンティティ、子サブエンティティが含まれるが、任意の他のカテゴリも含まれてもよい。例として、図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のうちの1つを判定し、データパイプライン526~530のうちの対応する1つにデータエントリを送信する。検索イベントパブリッシャモジュール218が、データパイプライン526の位置に対応するイベントの種類に基づいてデータエントリに関連付けられた位置を識別すると、その後、データエントリは検索イベントパブリッシャモジュール218によってデータパイプライン526に送信される。別の例として、ステップ420で、検索イベントパブリッシャモジュール218は、受信されたエンティティ変更が、8:00AM~5:00PMの店舗営業時間を9:00AM~6:00PMの新たな時間帯に修正することを含むことを識別してもよい。この識別に応じて、検索イベントパブリッシャモジュール218は、店舗営業時間のデータエントリが子エントリデータであることを識別し、これに応じて、店舗営業時間の識別子と、この例では8:00AM~5:00PMの時間を9:00AM~6:00PMの新たな時間帯に修正することである、店舗営業時間に関連付けられた修正情報とを、子エンティティデータパイプライン528に送信する。同様に、親エンティティとして分類されるデータエントリは、520を介して検索イベントパブリッシャモジュール218によって、親エンティティデータパイプライン526に送信され、子サブエントリとして分類されるデータエントリは、524を介して検索イベントパブリッシャモジュール218によって、子サブエントリデータパイプライン530に送信される。
ステップ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、イベントハンドラモジュール227、生成イベントエンティティ228、イベントパブリッシャモジュール229、販売業者アプリケーションプログラミングインターフェース(API)230、キャッシュデータベース224、キャッシュイベントパブリッシャモジュール216、検索イベントパブリッシャモジュール218、および検索インデックスデータベース220は、データベースシステム604として実装される。いくつかの実施形態では、イベント処理システム602およびデータベースシステム604は、統合サーバシステム116の一部である。
プロセス400(図4Aおよび図4B)および図5によれば、ステップ602はステップ502と実質的に同様である。ステップ604は、ステップ604と実質的に同様である。ステップ606は、ステップ506と実質的に同様である。ステップ608は、ステップ508と実質的に同様である。
いくつかの実施形態では、ステップ610は、ステップ510と実質的に同様である。他の実施形態では、統合サーバシステム116のトランザクションリスナモジュール214は、エンティティ変更ストレージ222に格納されたデータを受信することに応じて発火イベントを識別する。発火イベントは、エンティティ変更ストレージ222から受信したデータを、検索イベントパブリッシャモジュール218に送信するイベントである。トランザクションリスナモジュール214は、エンティティ変更ストレージ222に格納されたデータを受信することに応じて、発火イベントを初期化することを識別する。発火イベントを初期化することは、ステップ610に示すように、統合サーバシステム116のトランザクションリスナモジュール214に、受信したデータを検索イベントパブリッシャモジュール218に送信させる。ステップ612で、統合サーバシステム116のトランザクションリスナモジュール214は、エンティティ変更ストレージ222を消去する要求を送信する。トランザクションリスナモジュール214は、エンティティ変更ストレージ222によってプッシュされたデータを受信すると、エンティティ変更ストレージ222によってプッシュされたデータを消去する要求を送信する。エンティティ変更ストレージ222は、データを消去する要求を受信すると、プッシュされたデータを削除する。
検索イベントパブリッシャモジュール218は、フロー610からの受信データを格納し、その後、ステップ614に示すように、次に進み、受信データが修正されたデータを含むか否かを判定する。ここで、検索イベントパブリッシャモジュール218は、受信したデータを検索イベントパブリッシャモジュール218に直前に格納された対応するデータと比較し、データが修正されたか否かを判定する。検索イベントパブリッシャモジュール218が、受信したデータが変更されたデータを含まないと判定すると、その後、方法はフロー616に進み、方法はここで終了する。しかしながら、検索イベントパブリッシャモジュール218が、受信されたデータが変更されて受信されたデータを含むと判定すると、変更されたデータは、フロー618に示すように、イベントコンシューマモジュール226に送信される。イベントコンシューマモジュール226は次に進み、フロー620によって示されるように、受信データに基づいて、一致するイベントの種類があるか否かを判定する。イベントコンシューマモジュール226は、変更されるように識別された受信されたデータがイベントの種類と一致するか否かを判定する。イベントの種類は、修正されるように識別されたデータのどこで修正が行われたかを識別することに基づく、親エンティティ、子エンティティ、またはサブ子エンティティの修正を含んでもよい。イベントの種類、例えば、子エンティティにおいて行われるべき修正を識別すると、その後、イベントコンシューマモジュール226は、フロー622によって示されるように、修正されるべきであると識別されたデータをイベントハンドラモジュール227に送信する。その後、イベントハンドラモジュール228は、フロー624によって示されるように、販売業者アプリケーションプログラミングインターフェース(API)230を更新し、更新されたデータを取得し、行われた修正を反映する。販売業者API230を更新すると、その後、イベントハンドラモジュール227は、626によって示されるように、次に進み、変更されると識別されたデータを生成イベントエンティティモジュール228に送信する。その後、生成エンティティモジュール228は、変更されると識別されたデータの複数のスナップショットを生成する。例として、スナップショットは、ステップ410で変更されるように識別されたデータのコピーである。別の例では、スナップショットは、エンティティ変更ストレージ222に格納されたデータへの参照表示部を含むデータベーステーブルである。複数のスナップショットは、変更されると識別された同じデータの複数のコピーを意味する。その後、生成エンティティモジュール228は、変更されると識別された同じデータの複数のコピーをイベントパブリッシャモジュール229に送信する。イベントパブリッシャモジュール229は、フロー630を介してスナップショットのうちの1つをキャッシュイベントパブリッシャモジュール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と実質的に同様である。
開示する実施形態は、効率的な検索更新を受信して伝搬することの改善された方法を提供する。この方法は、データオーバーヘッドを低減する最適化されたプロセスの技術的利点を提供し、検索更新のリアルタイムプロセスを提供することによって、実施される。この技術は、エンティティ変更ストレージに格納されたデータをプッシュすることによってリアルタイム検索更新プロセスを提供するので、この技術は、データベースに対して行われた修正を反映する高速で信頼性の高いプロセスを提供して、その結果、検索結果の一部として修正を表示する時間がより速くなる。したがって、この技術は、データエントリの更新中に生じる遅延を低減する。さらに、この技術は、修正が行われた特定の位置を識別するので、修正されたその親エンティティ、子エンティティ、および/または子サブエンティティのみに関連付けられた検索インデックスデータベース情報を更新することに関する情報を含むエンティティ変更要求を生成する。したがって、この技術は、データオーバーヘッドを低減し、この技術は、子サブエンティティを変更しても、追加のデータオーバーヘッドを必要とする、メニュー情報全体を更新するためのエンティティ変更要求を生成することをしない。
対照的に、従来技術では、実装されている他の戦略は、追加のデータオーバーヘッドを必要とするため非効率的であり、これは、ネットワークリソースを効率的に利用するためには有益ではなく、ネットワーク負荷を増加させる。さらに、従来技術は、検索更新プロセス中に大幅な遅延を引き起こし、一方で、開示する実施形態は、データエントリに対して行われた修正を反映するタイミングの間の遅延を低減するリアルタイム更新プロセスを提供する。
さらに、例示的な実施形態を本明細書で説明してきたが、その範囲は、本開示に基づいて当業者によって理解されるように、(例えば、様々な実施形態にわたる態様の)均等の要素、修正、省略、組み合わせ、適合、および/または変更を有する、任意およびすべての実施形態を含む。例えば、例示的なシステムに示す構成要素の数および向きは変更されてもよい。したがって、前述の説明は、単に例示の目的ために提示されている。これは、網羅的ではなく、開示する、正確な形態または実施形態に限定されない。開示する実施形態の明細書および実施を考慮することによって、当業者には修正形態および適合形態が明らかになるであろう。
特許請求の範囲の要素は特許請求の範囲で使用されている文言に基づいて広く解釈されるものであり、本明細書、または出願の手続遂行中に説明する例に限定されるものではなく、これらの例は排他的でないと解釈されるものとする。したがって、本明細書および例は単に例示的なものとみなされ、真の範囲および趣旨は以下の特許請求の範囲およびそれらの均等物の全範囲によって示されることを意図する。
Claims (19)
- 効率的な検索更新を受信して伝搬するためのコンピュータ実装システムであって、
前記システムは、
命令を格納するメモリと、
前記命令を実行するように構成された少なくとも1つのプロセッサと、
を備え、
前記命令は、
ネットワークを介して第1の外部システムから、前記第1の外部システムに関連付けられたエンティティのデータを修正するための第1のエンティティ変更要求を受信することと、
前記受信した第1のエンティティ変更要求をエンティティストレージに保存することと、
ストリーミングサービスに転送するために、前記エンティティストレージからイベントパブリッシャに、前記受信したエンティティ変更要求をプッシュすることと、
前記第1のエンティティ変更要求を分類することと、
前記ストリーミングサービスから、前記分類されたエンティティ変更要求を検索インデックスデータベースに転送することと、
前記分類されたエンティティ変更要求に基づいて前記検索インデックスを更新することと、
を含む、コンピュータ実装システム。 - 前記エンティティの各々が複数のサブエンティティを含み、
前記エンティティ変更要求の各々が、それぞれのエンティティのサブエンティティを修正する要求を含む、請求項1に記載のシステム。 - 前記受信されたエンティティ変更要求が、前記外部システムに関連付けられた、サービスへの変更、商品への変更、またはデータへの変更を含む、請求項1に記載のシステム。
- 前記命令は、さらに、前記プロセッサに、
前記第1の外部システムから、トランザクションを開始する要求を受信させることと、
前記第1の外部システムから、複数のエンティティ変更要求を受信させることと、
を含み、
前記エンティティ変更要求をプッシュすることは、前記結果として生じるエンティティ変更要求をプッシュすることを含み、
前記第1のエンティティ変更要求を分類することは、前記結果として生じるエンティティ変更要求を分類することを含み、
前記分類されたエンティティ変更要求を転送することは、前記結果として生じるエンティティ変更要求を転送することを含む、請求項1に記載のシステム。 - 前記命令は、さらに、前記プロセッサに、
前記受信したエンティティ変更要求をイベントストレージからプッシュすることに応じて、すべてのエンティティ変更要求を前記イベントストレージから消去させることを含む、請求項1に記載のシステム。 - 前記命令は、さらに、前記プロセッサに、
キャッシュデータベースに格納するために、前記受信したエンティティ変更要求をイベントストレージから第2のイベントパブリッシャにプッシュさせることを含む、請求項1に記載のシステム。 - 前記受信したイベント変更要求を前記イベントストレージから、前記イベントパブリッシャおよび前記第2のイベントパブリッシャにプッシュすることは、前記受信したエンティティ変更要求をスナップショットとしてフォーマットすることを含む、請求項6に記載のシステム。
- 前記命令がさらに、前記プロセッサに、
前記第1の外部システムと関連付けられたエンティティへの修正をロールバックさせることと、
前記キャッシュデータベースを検索させ、反転するのに必要な複数のスナップショットを判定させることと、
を含む、請求項7に記載のシステム。 - 前記分類されたエンティティ変更要求を検索インデックスに転送することは、前記エンティティ変更の前記分類に基づいて選択されたリアルタイムストリームを介して、前記分類されたエンティティ変更を前記検索インデックスに転送することを含む、請求項1に記載のシステム。
- 効率的な検索更新を受信して伝搬するためのコンピュータ実装方法であって、
前記方法は、
ネットワークを介して第1の外部システムから、前記第1の外部システムに関連付けられたエンティティのデータを修正するための第1のエンティティ変更要求を受信することと、
前記受信した第1のエンティティ変更要求をエンティティストレージに保存することと、
ストリーミングサービスに転送するために、前記エンティティストレージから前記受信したエンティティ変更要求をイベントパブリッシャにプッシュすることと、
前記第1のエンティティ変更要求を分類することと、
前記ストリーミングサービスから、前記分類されたエンティティ変更要求を検索インデックスデータベースに転送することと、
前記分類されたエンティティ変更要求に基づいて前記検索インデックスを更新することと、
を含むコンピュータ実装方法。 - 前記エンティティの各々が複数のサブエンティティを含み、
前記エンティティ変更要求の各々が、それぞれのエンティティのサブエンティティを修正する要求を含む、請求項10に記載の方法。 - 前記受信されたエンティティ変更要求が、前記外部システムに関連付けられた、サービスへの変更、商品への変更、またはデータへの変更を含む、請求項10に記載の方法。
- 前記方法は、
前記第1の外部システムから、トランザクションを開始する要求を受信することと、
前記第1の外部システムから、複数のエンティティ変更要求を受信することと、
を含み、
前記エンティティ変更要求をプッシュすることは、前記結果として生じるエンティティ変更要求をプッシュすることを含み、
前記第1のエンティティ変更要求を分類することは、前記結果として生じるエンティティ変更要求を分類することを含み、
前記分類されたエンティティ変更要求を転送することは、前記結果として生じるエンティティ変更要求を転送することを含む、請求項10に記載の方法。 - 前記方法は、
前記受信したエンティティ変更要求をイベントストレージからプッシュすることに応じて、すべてのエンティティ変更要求を前記イベントストレージから消去することをさらに含む、請求項10に記載の方法。 - 前記方法は、
キャッシュデータベースに格納するために、前記受信したエンティティ変更要求を前記イベントストレージから第2のイベントパブリッシャにプッシュすることをさらに含む、請求項10に記載の方法。 - 前記受信したイベント変更要求を前記イベントストレージから、前記イベントパブリッシャおよび前記第2のイベントパブリッシャにプッシュすることは、前記受信したエンティティ変更要求をスナップショットとしてフォーマットすることを含む、請求項15に記載の方法。
- 前記方法は、
前記第1の外部システムと関連付けられたエンティティへの修正をロールバックすることと、
前記キャッシュデータベースを検索し、反転するのに必要な複数のスナップショットを判定することと、
をさらに含む、請求項16に記載の方法。 - 前記分類されたエンティティ変更要求を検索インデックスに転送することは、前記エンティティ変更の前記分類に基づいて選択されたリアルタイムストリームを介して、前記分類されたエンティティ変更を前記検索インデックスに転送することを含む、請求項10に記載の方法。
- 効率的な検索更新を受信して伝搬するためのコンピュータ実装システムであって、
前記システムは、
命令を格納するメモリと、
前記命令を実行するように構成された少なくとも1つのプロセッサと、
を備え、
前記命令は、
ネットワークを介して第1の外部システムから、前記第1の外部システムに関連付けられたエンティティのデータを修正するための第1のエンティティ変更要求を受信することと、
前記受信した第1のエンティティ変更要求をイベントストレージに保存することと、
ストリーミングサービスに転送するために、前記エンティティストレージからイベントパブリッシャに、前記受信したエンティティ変更要求をプッシュすることと、
キャッシュデータベースに格納するために、前記受信されたエンティティ変更要求を、前記イベントストレージから第2のイベントパブリッシャにプッシュし、ここで、前記受信されたイベント変更要求を、前記イベントストレージから前記イベントパブリッシャおよび前記第2のイベントパブリッシャにプッシュすることが、前記受信されたエンティティ変更要求をスナップショットとしてフォーマットすることと、
前記受信したエンティティ変更要求を前記イベントストレージからプッシュすることに応じて、すべてのエンティティ変更要求を前記イベントストレージから消去することと、
前記第1のエンティティ変更要求を分類することと、
前記ストリーミングサービスから、前記分類されたエンティティ変更要求を検索インデックスデータベースに転送することと、
前記分類されたエンティティ変更要求に基づいて前記検索インデックスを更新することと、
を含む、コンピュータ実装システム。
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 |
PCT/IB2020/061772 WO2021161089A1 (en) | 2020-02-14 | 2020-12-10 | Systems and methods for receiving and propagating efficient search updates in real time |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023513855A true JP2023513855A (ja) | 2023-04-04 |
Family
ID=75444143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021526535A Pending JP2023513855A (ja) | 2020-02-14 | 2020-12-10 | 効率的な検索更新をリアルタイムで受信して伝搬するためのシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11803593B2 (ja) |
EP (1) | EP3891682A4 (ja) |
JP (1) | JP2023513855A (ja) |
KR (3) | KR102238422B1 (ja) |
CN (1) | CN113557501A (ja) |
SG (1) | SG11202104603RA (ja) |
TW (2) | TW202232399A (ja) |
WO (1) | WO2021161089A1 (ja) |
Families Citing this family (2)
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 |
Family Cites Families (33)
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 | 株式会社寺岡精工 | オーダリングシステム |
US7596571B2 (en) | 2004-06-30 | 2009-09-29 | Technorati, Inc. | Ecosystem method of aggregation and search and related techniques |
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 |
JP6502637B2 (ja) | 2014-09-05 | 2019-04-17 | キヤノン株式会社 | 情報処理システム、情報処理装置、及びその制御方法とプログラム |
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 |
-
2020
- 2020-02-14 US US16/791,413 patent/US11803593B2/en active Active
- 2020-05-08 KR KR1020200055479A patent/KR102238422B1/ko active IP Right Grant
- 2020-12-10 CN CN202080003841.1A patent/CN113557501A/zh active Pending
- 2020-12-10 JP JP2021526535A patent/JP2023513855A/ja active Pending
- 2020-12-10 WO PCT/IB2020/061772 patent/WO2021161089A1/en unknown
- 2020-12-10 SG SG11202104603RA patent/SG11202104603RA/en unknown
- 2020-12-10 EP EP20827979.4A patent/EP3891682A4/en active Pending
- 2020-12-24 TW TW111116124A patent/TW202232399A/zh unknown
- 2020-12-24 TW TW109145851A patent/TWI766498B/zh active
-
2021
- 2021-04-02 KR KR1020210043395A patent/KR102336694B1/ko active IP Right Grant
- 2021-12-02 KR KR1020210171154A patent/KR102405220B1/ko active IP Right Grant
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 |
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 |
KR102336694B1 (ko) | 2021-12-08 |
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 |
---|---|---|
KR102405220B1 (ko) | 실시간으로 효율적인 검색 업데이트를 수신 및 전파하기 위한 시스템 및 방법 | |
CN102498483A (zh) | 事件触发的服务器端宏 | |
US20210272062A1 (en) | Systems and methods for interconnecting network devices based on queuing and servicing responses | |
WO2020139702A1 (en) | Code sharing in e-commerce | |
US20170372396A1 (en) | Event based deferred search method and system | |
KR20220070644A (ko) | 기계 학습 기반 업체 추천 시스템 | |
AU2021107580A4 (en) | Systems and methods for receiving and propagating efficient search updates in real time | |
US10778638B2 (en) | Searching contact data based on product data | |
US20210334825A1 (en) | Systems and methods for fraud detection in e-commerce transactions | |
KR20210097065A (ko) | 다지점 도착 분석을 위한 시스템 및 방법 | |
KR102620240B1 (ko) | 타이머 관리 및 이벤트 트리거링을 전파하기 위한 시스템 및 방법 | |
TWI857298B (zh) | 傳播計時器管理以及事件觸發之系統以及方法 | |
AU2018295434A1 (en) | Event based deferred search method and system | |
US20230140712A1 (en) | Systems and methods for generating and using virtual card numbers |