System and method for receiving and propagating efficient search updates in real-time

文档序号:157296 发布日期:2021-10-26 浏览:14次 中文

阅读说明:本技术 用于实时接收和传播高效搜索更新的系统和方法 (System and method for receiving and propagating efficient search updates in real-time ) 是由 李相元 于 2020-12-10 设计创作,主要内容包括:一种用于接收和传播高效搜索更新的系统包括:一个或多个处理器,配置为通过网络从第一外部系统接收第一实体变更请求,以修改与第一外部系统相关联的实体中的数据。第一实体变更请求保存到实体存储中。接收的实体变更请求从实体存储推送到事件发布器,以转发到流服务。第一个实体变更请求被归类并从流服务转发到搜索索引数据库。基于归类的实体变更请求继而更新搜索索引。(A system for receiving and propagating efficient search updates comprising: one or more processors configured to receive a first entity change request from a first external system over a network to modify data in an entity associated with the first external system. The first entity change request is saved to an entity store. The received entity change request is pushed from the entity store to the event publisher for forwarding to the streaming service. The first entity change request is categorized and forwarded from the streaming service to the search index database. The search index is then updated based on the categorized entity change request.)

1. A computer-implemented system for receiving and propagating efficient search updates, the system comprising:

a memory storing instructions; and

at least one processor configured to execute the instructions to:

receiving a first entity change request from a first external system over a network to modify data in an entity associated with the first external system;

storing the received first entity change request in an entity storage;

pushing the received entity change request from the entity store to an event publisher for forwarding to a streaming service;

classifying said first entity change request;

forwarding the categorized entity change request from the streaming service to a search index database; and

updating a search index based on the categorized entity change request.

2. The system of claim 1, wherein:

each entity comprises a plurality of sub-entities;

each entity change request includes a request to modify a sub-entity of the respective entity.

3. The system of claim 1, wherein the received entity change request comprises a change in a service, a change in a commodity, or a change in data associated with the external system.

4. The system of claim 1, wherein the instructions further cause the processor to:

receiving a request to begin a transaction from the first external system;

receiving a plurality of entity change requests from the first external system; and

wherein:

the pushing entity change request also comprises an entity change request generated by pushing;

categorizing the first entity change request comprises categorizing a resulting entity change request; and

forwarding the categorized entity change request includes forwarding the generated entity change request.

5. The system of claim 1, wherein the instructions further cause the processor to clear an event store for all entity change requests in response to pushing the received entity change request from the event store.

6. The system of claim 1, wherein the instructions further cause the processor to push the received entity change request from the entity store to a second event publisher for storage in a cache database.

7. The system of claim 6, wherein pushing the received event change request from the event store to the event publisher and the second event publisher comprises formalizing the received entity change request as a brief description.

8. The system of claim 7, wherein the instructions further cause the processor to:

rollback modifications of an entity associated with the first external system;

the cache database is searched to determine a plurality of profiles that need to be inverted.

9. The system of claim 1, wherein forwarding the categorized entity change request to a search index comprises forwarding the categorized entity change request to the search index through a realtime stream selected based on the categorization of the entity change.

10. A computer-implemented method for receiving and propagating efficient search updates, the method comprising:

receiving a first entity change request from a first external system over a network to modify data in an entity associated with the first external system;

storing the received first entity change request in an entity storage;

pushing the received entity change request from the entity store to an event publisher for forwarding to the streaming service;

classifying the first entity change request;

forwarding the categorized entity change request from the streaming service to a search index database; and

updating a search index based on the categorized entity change request.

11. The method of claim 10, wherein:

each entity comprises a plurality of sub-entities;

each entity change request includes a request to modify a sub-entity of the respective entity.

12. The method of claim 10, wherein the received entity change request comprises a change in a service, a change in a commodity, or a change in data associated with the external system.

13. The method of claim 10, further comprising:

receiving a request to begin a transaction from the first external system;

receiving a plurality of entity change requests from the first external system; and

wherein:

the pushing entity change request also comprises an entity change request generated by pushing;

categorizing the first entity change request comprises categorizing a resulting entity change request; and

forwarding the categorized entity change request includes forwarding the generated entity change request.

14. The method of claim 10, further comprising:

clearing the event stores of all entity change requests in response to pushing the received entity change request from the event store.

15. The method of claim 10, further comprising:

pushing the received entity change request from the event store to a second event publisher for storage in a cache database.

16. The method of claim 15, wherein pushing the received event change request from the event store to the event publisher and the second event publisher comprises formalizing the received entity change request as a brief description.

17. The method of claim 16, further comprising:

rollback modifications of an entity associated with the first external system;

the cache database is searched to determine a plurality of profiles that need to be inverted.

18. The method of claim 10, wherein forwarding the categorized entity change request to a search index comprises forwarding the categorized entity change request to the search index through a realtime stream selected based on the categorization of the entity change.

19. A computer-implemented system for receiving and propagating efficient search updates, the system comprising:

a memory storing instructions; and

at least one processor configured to execute the instructions to:

receiving a first entity change request from a first external system over a network to modify data in an entity associated with the first external system;

saving the received first entity change request to an event store;

pushing the received entity change request from the event store to an event publisher for forwarding to a streaming service;

pushing the received entity change request from the event store to a second event publisher for storage in a cache database, wherein pushing the received event change request from the event store to the event publisher and the second event publisher comprises formalizing the received entity change request as a profile;

in response to pushing the received entity change request from the event store, clearing the event store for all entity change requests;

classifying said first entity change request;

forwarding the categorized entity change request from the streaming service to a search index database; and

updating a search index based on the categorized entity change request.

Technical Field

Embodiments of the present disclosure relate to systems and methods for receiving and propagating efficient search updates in real-time. More particularly, embodiments of the present disclosure relate to enabling users to order goods and deliver goods online by receiving and propagating efficient search updates to user devices in real-time.

Background

Users (e.g., online customers, online merchants, delivery personnel) often use online web portals or mobile applications to order goods (e.g., order food, groceries). For example, users maintain a profile on an online website that includes their information (e.g., location information, menus, names). In the case of a user modifying profile information, there is a significant time delay or time difference from the time the modification is made to the time the modification is reflected on the online web portal. Thus, the delay in reflecting the modification causes inconvenience to the user.

For example, when a restaurant updates its online menu content (e.g., menu name, menu price, restaurant business hours, etc.) through an online web portal for a food ordering website, then the modification of the online menu will not be reflected on the food ordering website until a substantial time delay. The current solutions for these update processes are not real-time because these update requests are processed in batches. The network server will process the requests at regular time periods so that the requests received during these time periods are processed together as a batch at the end of the time period. The web server processes updates in batches, resulting in significant delays in reflecting the updates to the user. Thus, current solutions are inefficient and generate delays, and thus there is a need to reflect updates in real time.

Disclosure of Invention

In accordance with an embodiment of the present disclosure, there is provided a system for receiving and propagating efficient search updates, the system comprising: a memory storing instructions; and at least one processor configured to execute the instructions to: receiving a first entity change request from a first external system over a network to modify data in an entity associated with the first external system; storing the received first entity change request in an entity storage; pushing the received entity change request from the entity store to an event publisher for forwarding to a streaming service; classifying said first entity change request; forwarding the categorized entity change request from the streaming service to a search index database; the search index is updated based on the categorized entity change request.

There is also provided, in accordance with an embodiment of the present disclosure, a computer-implemented method for receiving and propagating efficient search updates, the method comprising: receiving a first entity change request from a first external system over a network to modify data in an entity associated with the first external system; storing the received first entity change request in an entity storage; pushing the received entity change request from the entity store to an event publisher for forwarding to the streaming service; classifying the first entity change request; forwarding the categorized entity change request from a streaming service to a search index database; and updating a search index based on the categorized entity change request.

In accordance with an embodiment of the present disclosure, there is provided a system for receiving and propagating efficient search updates, the system comprising: a memory storing instructions; and at least one processor configured to execute the instructions to: receiving a first entity change request from a first external system over a network to modify data in an entity associated with the first external system; saving the received first entity change request to an event store; pushing the received entity change request from the event store to an event publisher for forwarding to a streaming service; pushing the received entity change request from the event store to a second event publisher for storage in a cache database, wherein pushing the received event change request from the event store to an event publisher and a second event publisher comprises formalizing the received entity change request as a brief description; in response to pushing the received entity change request from the event store, clearing the event store for all entity change requests; classifying said first entity change request; forwarding the categorized entity change request from the streaming service to a search index database; and updating a search index based on the categorized entity change request.

Drawings

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate disclosed embodiments and, together with the description, serve to explain the disclosed embodiments. In the figure:

FIG. 1 is a block diagram of an exemplary system consistent with the disclosed embodiments;

FIG. 2 is a block diagram of an exemplary server system consistent with the disclosed embodiments;

FIG. 3 is a block diagram of an exemplary user device consistent with the disclosed embodiments;

fig. 4A and 4B contain detailed flow diagrams of an exemplary process of receiving and propagating efficient search updates in real-time consistent with the disclosed embodiments.

Fig. 5 contains a flowchart illustrating the exemplary process of fig. 4A and 4B consistent with the disclosed embodiments.

Fig. 6 contains a flowchart illustrating an alternative embodiment of fig. 5, consistent with the disclosed embodiments, and fig. 5 illustrates the exemplary processes of fig. 4A and 4B.

Detailed Description

Reference will now be made in detail to the disclosed embodiments, examples of which are illustrated in the accompanying drawings. Wherever convenient, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

Although the following description is directed to receiving and propagating efficient search updates in real-time, these embodiments are merely exemplary. It is to be understood that the present disclosure is not limited to the specifically disclosed embodiments and details, which are exemplary only. It should also be appreciated that in light of the known systems and methods, those skilled in the art will recognize that the embodiments of the present disclosure may be utilized in any number of alternative embodiments with the intended purposes and benefits thereof based on specific design and other needs.

Fig. 1 is a block diagram of an exemplary system 100 for performing one or more operations consistent with the disclosed embodiments. In some embodiments, system 100 includes one or more customer devices 102(1), …, 102(n) located at respective customer locations 104(1), … 104(n), one or more commodity delivery provider devices 106(1), … 106(n) located in respective delivery vehicles 108(1),. 108(n), one or more commodity service provider devices 110(1),. 110(n) located at respective shops 112(1), 112 (n). In addition, the system 100 includes an integrated server system 116, a remote database 120, and a communication network 114. The system 100 may also include a plurality of integration server systems 116 (not shown) and a plurality of remote databases 120 (not shown) in direct communication with each other and further in communication with the client devices 102(1) -102(n), the goods delivery provider devices 106(1) -106(n), the goods service provider devices 110(1) -110(n) via the communication network 114. The components included in the system 100 and the arrangement of the components may vary. Accordingly, system 100 may include other components that perform or facilitate performance of one or more operations consistent with the disclosed embodiments.

As described more fully below, the client devices 102(1) - (102), commodity delivery provider devices 106(1) - (106 (n), commodity service provider devices 110(1) - (110 (n), integration server system 116, and remote database 120 may include one or more computing devices (e.g., computers, servers, etc.), memories (e.g., databases, storage devices, etc.) that store data and/or software instructions, and other known computing components. In some embodiments, one or more computing devices may be configured to execute software instructions stored in memory to perform one or more operations consistent with the disclosed embodiments. Aspects of the customer devices 102(1) - (102), commodity delivery provider devices 106(1) - (106 (n), commodity service provider devices 110(1) - (110 (n), integration server system 116, and remote database 120, for example, may be configured to communicate with one or more other components of the system 100 over a communication network 114. In certain aspects, the customers associated with the customer locations 104(1) -104(n) are associated with the customer devices 102(1) -102(n) and operate the customer devices 102(1) -102(n), respectively, associating drivers with delivery vehicles 108(1) -108(n) with and operating commodity delivery provider equipment 106(1) -106(n), respectively, merchants associated with merchants 112(1) -112(n) are respectively associated with and operate the merchandise service provider devices 110(1) -110(n), to interact with one or more components of the system 100 by sending and receiving communications, initiating operations, and/or providing input for one or more operations consistent with the disclosed embodiments.

The integration server system 116 may be associated with an online ordering entity that receives, processes, manages, or otherwise provides the goods ordering service. For example, the merchandise that may be ordered by the online ordering entity may include prepared food, groceries, furniture, books, computers, and/or clothing, but any other type of merchandise may be ordered. For example, the integration server system 116 may receive order requests from customers using the customer devices 102(1) -102(n) and process the received order requests by sending the requests to the commodity service provider devices 110(1) -110(n), which commodity service provider devices 110(1) -110(n) are associated with the stores 112(1) -112(n) that will provide the ordered commodities. The integration server system 116 receives order confirmation communications from the commodity service provider equipment 110(1) -110 (n). Upon receiving an order confirmation from the commodity service provider devices 110(1) -110(n), the integration server system 116 sends a request to the commodity delivery provider devices 106(1) -106(n) to take the order from the merchants 112(1) -112(n) and deliver the order to the customer locations 104(1) -104 (n). The merchandise delivery provider devices 106(1) -106(n) accept the request and collect and deliver the requested merchandise to the customer locations 104(1) -104 (n).

The remote database 120 of the system 100 may be communicatively connected to the integration services system 116 directly or through the communication network 114. In addition, remote database 120 of system 100 may be communicatively connected to customer devices 102(1) -102(n), commodity delivery provider devices 106(1) -106(n), and commodity service provider devices 110(1) -110(n) through communications network 114. Remote database 120 may include one or more storage devices that store information, which is accessed by or managed by one or more components of system 100. By way of example, remote database 120 may comprise OracleTMDatabase, SybaseTMDatabases or other relational or non-relational databases, such as Hadoop sequence files, HBase, or Cassandra. Remote database 120 may include computing components (e.g., data)A library management system, a database server, etc.) configured to receive and process requests for data stored in storage devices of the remote database 120 and to provide data from the remote database 120.

Remote database 120 is configured to store merchant profile information for merchants associated with the merchandise service provider devices 110(1) -110(n) located at merchants 112(1) -112(n), customer profile information for customers associated with customer devices 102(1) -102(n) located at customer locations 104(1) -104(n), and driver profile information for drivers associated with the merchandise delivery provider devices 106(1) -106 (n). In some embodiments, remote database 120 stores data entries including, for example, merchant profile information, customer profile information, and driver profile information.

Stores 112(1) - (112 (n) may include restaurants, coffee shops, bookstores, clothing stores, but may also include any other type of store. Further, the merchant profile information includes the name of the merchant, a menu of the merchant, a list of items offered by the merchant, a picture of food, a picture of the merchant, a category of items, a category of food, a merchant address, business hours of business, and/or a merchant phone, but may also include any other type of information associated with the merchant. Customer locations 104(1) -104(n) may include residential sites, office buildings, apartments, but may also include any other type of residence. Further, customer profile information in remote database 120 may include a customer name, a customer home address, a customer picture, and/or a customer phone, but may also include any other type of information associated with a merchant. Delivery vehicles 108(1) -108(n) may include automobiles, bicycles, trucks, buses, but may also include any other type of delivery vehicle. Further, the driver profile information includes the driver's name, the driver's home address, the driver's picture and/or the driver's phone, the form and model of the vehicle the driver is driving on, but may also include any other type of information associated with the driver.

In one aspect, the integration server system 116 may include one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments, as described more fully below with respect to fig. 4A, 4B, and 5. In an aspect, the integrated server system 116 may include one or more servers or server systems. The integrated server system 116 may include one or more processors configured to execute software instructions stored in a memory or other storage device. The one or more processors may be configured to execute the stored software instructions to perform internet-related communications, online order-based processing, and receive and propagate efficient search updates in real-time. One or more computing devices of the integration server system 116 may be configured to modify and store customer profile information, merchant profile information, and/or driver profile information. One or more computing devices of the integration server system 116 may also be configured to communicate with other components of the system 100 to receive and propagate efficient search updates in real-time. In some embodiments, the integration server system 116 may provide one or more mobile applications, websites, or online portals accessible to the client devices 102(1) -102(n), the goods delivery provider devices 106(1) -106(n), and the goods services provider devices 110(1) -110(n) through the communication network 114. The disclosed embodiments are not limited to any particular configuration of the integrated server system 116.

The communication network 114 may include any type of computer network arrangement configured to provide communication or exchange data or both between components of the system 100. For example, the communication network 114 may include any type of network (including infrastructure) that provides communication, exchanges information, and/or facilitates information exchange, such as the internet, a private data network, a virtual private network using a public network, a LAN or WAN network, Wi-FiTMA network and/or other suitable connections that enable information to be exchanged between the various components of system 100. The communication network 114 may also include a public switched telephone network ("PSTN") and/or a wireless cellular network. The communication network 114 may be a secure or unsecure network. In some embodiments, one or more components of system 100 may communicate directly over dedicated communication links.

Customer devices 102(1) -102(n), commodity delivery provider devices 106(1) -106(n), and commodity service provider devices 110(1) -110(n) may be one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments, as described more fully below with respect to fig. 2. The client devices 102(1) -102(n), the goods delivery provider devices 106(1) -106(n), the goods services provider devices 110(1) -110(n) may execute a browser or related mobile display software to display on a display an online portal for delivering goods online for order, receiving orders, and delivering ordered goods. The display is included in or connected to the client devices 102(1) -102(n) 102(1) - (102). The client devices 102(1) -102(n) may also store and execute other mobile applications that allow clients, merchants, and/or drivers to interact with an online portal provided by the integration server system 116.

It should be understood that the configuration of the functional blocks of system 100 have been defined herein for ease of description. The components included in the system 100 and the arrangement of the components may vary. For example, in some embodiments, system 100 may include other components that perform or facilitate performance of one or more processes consistent with the disclosed methods. The system 100 includes a number of components that are generally described as computing devices. Each computing device may include any number of computing components specifically configured as a special purpose computing device to perform the functionality disclosed herein. Alternatives (including equivalents, extensions, variations, deviations, etc. of those described herein) will be apparent to those skilled in the art based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.

FIG. 2 illustrates an exemplary server device 200 consistent with the disclosed embodiments. Variations of the exemplary server device 200 may constitute one or more components of the integrated server system 116. In one embodiment, server device 200 includes one or more memories 202, one or more I/O devices 206, and one or more processors 208 that communicate via a bus 234. In some embodiments, the server device 200 may be part of an integrated server system 116. In some embodiments, the server device 200 may take the form of a specially programmed server or computing system used by the integration server system 116 to perform the full functionality of the integration server system 116. In some embodiments, server apparatus 200 may be configured as an appliance, embedded system, dedicated circuit, etc., based on the storage, execution, and/or implementation of software instructions to perform one or more operations consistent with the disclosed embodiments.

The memory 202 may include one or more memory devices configured to store instructions used by the processor 208 to perform functions associated with the disclosed embodiments. For example, memory 202 may be configured with one or more software instructions, such as program 204, which when executed by processor 208 may perform one or more operations. The disclosed embodiments are not limited to a single program or computer configured to perform specialized tasks. For example, the memory 202 may include a single program 204 that performs the functions of the server apparatus 200, or the program 204 may include a plurality of programs. In certain embodiments, the memory 202 may store a set of instructions or programs for performing the functions of the integrated server system 116. These sets of instructions may be executed by the processor 208 to perform communications and/or processes consistent with the disclosed embodiments.

In certain embodiments, when the server device 200 forms one or more components of the integrated server system 116, the memory 202 includes a domain services module 210, an entity change listener module 212, a transaction listener module 214, a cache event publisher module 216, a search event publisher module 218, a search index database 220, an entity change store 222, and a cache database 224, which are described in detail below.

In other embodiments, each of domain services module 210, entity change listener module 212, transaction listener module 214, cache event publisher module 216, search event publisher module 218, search index database 220, entity change store 222, and cache database 224 may be implemented as separate and individual servers that communicate with each other and with remote databases 120 and client devices 102(1) -102(n), commodity delivery provider devices 106(1) -106(n), commodity service provider devices 110(1) -110(n) over communications network 114. In another example, search index database 220, entity change store, and cache databases may be hosted on remote database 120.

Input/output (I/O)206 may include various input/output devices, such as keyboards, mouse-type devices, gesture sensors, motion sensors, physical keys, switches, microphones, touch-screen panels, touch-pens, etc., which may be operated by client devices 102(1) -102(n), commodity delivery provider devices 106(1), and/or commodity service provider devices 110(1) -110 (n). The I/O devices 206 may also include audio output devices. Exemplary communication modules of the I/O device 206 may include, for example, a short-range or near-field wireless communication modem, Wi-FiTMA communications modem or a cellular communications modem. The I/O device 206 may include a transceiver or transmitter configured to communicate using one or more wireless technologies/protocols, which may include, but are not limited to, cellular (e.g., 3G, 4G, etc.) technologies, Wi-FiTMHotspot technology, RFID, Near Field Communication (NFC) orTechniques, and the like. More generally, any one-way or two-way communication technique known to those of ordinary skill in the art may be implemented in server device 200 to exchange information with integration server system 116, client devices 102(1) -102(n), commodity delivery provider devices 106(1), commodity service provider devices 110(1) -110(n), or remote database 120 over communication network 114.

Processor 208 may include one or more known processing devices, e.g., from IntelTMProduced PentiumTMOr XeonTMSeries of microprocessors, or AMDTMManufactured TurionTMA series of microprocessors. The disclosed embodiments are not limited to any type of processor configured to meet the computational requirements required by the different components of the system 100.

Fig. 3 illustrates an exemplary configuration of a user device 300 consistent with the disclosed embodiments. User device 300 of fig. 3 represents an exemplary configuration of each of customer devices 102(1) -102(n), commodity delivery provider devices 106(1) -106(n), and commodity service provider devices 110(1) -110 (n).

For example, the user device 300 may cause relevant customers, drivers, and merchants associated with the customer devices 102(1) -102(n), the goods delivery provider devices 106(1) -106(n), and the goods services provider devices 110(1) -110(n), respectively, to perform remote interactive or mobile transactions with the integration server system 116 or receive information from the integration server system 116. In some embodiments, user device 300 may be a personal computing device. For example, the user device 300 may be a smartphone, a laptop or notebook computer, a tablet computer, a multifunction watch, a pair of multifunction glasses, or any mobile or wearable device with computing capabilities, or any combination of these computers and/or accessory components.

User device 300 includes one or more processors 308 configured to execute software instructions stored in a memory, such as memory 312. The memory 312 may store one or more software programs 314, which software programs 314, when executed by the processor 308, perform known internet-related communications, content display processes, and other interactive processes for customers, drivers, and/or merchants. For example, user device 300 may execute a browser or related mobile display software that generates and displays an interface including content on a display device 302 included in or in communication with user device 300. User device 300 may be a mobile device executing mobile device applications and/or mobile device communication software. Included in the program 314 are mobile device applications and/or mobile device communication software that allow the user device 300 to communicate with the integration server system 116 and other components over the communication network 114 to generate and display content in an interface via the display device 302. The disclosed embodiments are not limited to any particular configuration of the user equipment 300. User device 300 may include any arrangement of one or more computing devices configured to perform one or more operations consistent with the disclosed embodiments.

User device 300 may be configured to store one or more operating systems in memory 312. When executed by processor 308, the one or more operating systems perform known operating system functions. As an example, the operating system may include Microsoft WindowsTM、UnixTM、LinuxTM、AndroidTM、AppleTMA MacOS operating system, iOS, ChromeOS or other type of operating system. Thus, the disclosed embodiments may operate and function with a computer system running any type of operating system. The user device 300 may also include communication software stored in the memory 312 that, when executed by the processor 308, provides communication with the communication network 114, such as Web browser software, tablet or smart handheld device network software, or the like.

The display device 302 may include, for example, a Liquid Crystal Display (LCD), a light emitting diode screen (LED), an organic light emitting diode screen (OLED), a touch screen, and other known display devices. The display device 302 may display various information to the customer, driver, and merchant. For example, the display device 302 may display an interactive interface that enables customers, drivers, and merchants to operate the user device 300 to perform certain aspects of the disclosed methods. The display device 302 may display touchable or selectable options for customer, driver, and merchant selection, and may receive customer selections of options via a touch screen.

The user device 300 includes I/O devices 304 that allow for sending and receiving information or interacting with a customer, driver, and merchant or another device. For example, I/O devices 304 may include various input/output devices such as keyboards, mouse-type devices, gesture sensors, motion sensors, physical keys, switches, microphones, touch-screen panels, touch-pens and the like, which may be operated by consumers, drivers and merchants to input information via user device 300. The I/O devices 304 may also include audio output devices, such as speakers, configured to provide audio and audio feedback to the customer, driver, and merchant operating the user device 300. In some embodiments, the I/O device 304 may include a light emitting component, such as an LED, or other components capable of providing visual signals to customers, drivers, and merchants. The I/O devices 304 may also include haptic output devices to provide haptic feedback to customers, drivers, and merchants. The I/O device 304 may also include one or more communication modules (not shown) for sending and receiving information from other components in the system 100, for example, by establishing a wired or wireless connection between the user device 300 and the communication network 114. The I/O device 304 may include a radio frequency, infrared, or other near field communication interface for communicating with other devices associated with the communication network 114. Exemplary communication modules of the I/O device 304 may include, for example, a short-range or near-field wireless communication modem, Wi-FiTMA communications modem or a cellular communications modem. The I/O devices 304 may include transceivers or transmitters configured to communicate using one or more wireless technologies/protocols, which may include, but are not limited to, cellular (e.g., 3G, 4G, etc.) technologies, Wi-FiTMHotspot technology, RFID, Near Field Communication (NFC) orTechniques, and the like. More generally, any one-way or two-way communication technique known to those of ordinary skill in the art may be implemented in the user device 300 to exchange information with the integration server system 116 or the remote database 120 over the communication network 114.

As described above, user device 300 may be a device executing a mobile application for performing operations consistent with the disclosed embodiments. Thus, in some embodiments, the programs 314 stored on the user device 300 may include one or more software applications 316 installed thereon that enable the user device 300 to communicate with the integration server system 116 over the communication network 114 and perform aspects of the disclosed methods. For example, the user device 300 may connect to the integration server system 116 through the use of browser software to access and receive information or perform other operations associated with an internet service provider.

According to an exemplary embodiment, a software application 316 associated with the integration server system 116 may be installed on the user device 300, as shown in FIG. 3. For example, the integration server system 116 may receive a request from the client device 102(1) to download one or more software applications 316 to the user client device 102 (1). In one embodiment, the integration server system 116 may receive requests from clients associated with the client devices 102(1) using web browser applications installed on the client devices 102(1), respectively. In another embodiment, the integration server system 116 may receive the request from a web page or another portal associated with the integration server system 116 to download one or more software applications 316 associated with the integration server system 116 onto the client device 102(1), the integration server system 116 being accessible, for example, through the client device 102 (1). In this embodiment, the integration server system 116 may store software instructions corresponding to one or more software applications 316 in the remote database 120. In response to the download request, the integration server system 116 may receive additional information from the client device 102(1) regarding the client device 102(1) specific device specification to enable the client device 102(1) to download software instructions corresponding to the specific specification. Alternatively, the integration server system 116 may push the download request link to the client device 102(1), or transmit software code corresponding to one or more software applications 316 directly to the client device 102(1) via, for example, an email, text or Short Message Service (SMS) message, via a prompt by an application, or other suitable method. The client device 102(1) may receive software code related to one or more software applications 316, for example, over the communication network 114, to download and install the software code. Similarly, in another example, the integration server system 116 may receive a request from a derivative (driver) associated with the merchandise delivery provider device 106(1) to download one or more software applications 316 onto the merchandise delivery provider device 106 (1). Further, similarly, in another example, the integration server system 116 may receive a request from a merchant associated with the merchandise service provider device 110(1) to download one or more software applications 316 onto the merchandise service provider device 110 (1).

Figure (a). Fig. 4A and 4B contain a flowchart of an exemplary process 400 implemented by the integration server system 116 for receiving and propagating efficient search updates in real-time consistent with the disclosed embodiments. The integrated server system 116 is implemented as the server device 200 in fig. 2 to execute software instructions that perform one or more operations in the process 400. The operation of process 400 is described below in conjunction with fig. 5.

Fig. 5 contains a flow chart 500 illustrating the exemplary process of fig. 4A and 4B. Fig. 5 shows that the domain service module 210, the entity change listener module 212, the entity change store 222, the transaction listener module 214 of the server device 200 in this example are implemented as an event processing system 502. Further, the cache database 224, cache event publisher module 216, search event publisher module 218, and search index database 220 of the server device 200 in this example are implemented as a database system 504. In some embodiments, the event processing system 502 and the database system 504 are part of the integrated server system 116.

According to process 400, in step 402, domain services module 210 of integration server system 116 monitors remote database 120 to determine modifications to the entries by client devices 102(1) -102(n), commodity delivery provider devices 106(1) -106(n), commodity service provider devices 110(1) -110 (n). For example, referring to fig. 5, domain services module 210 monitors remote database 120 (not shown) to determine whether merchant profile information, customer profile information, and driver profile information stored as data entries in remote database 120 are modified by customer devices 102(1) -102(n), commodity delivery provider device 106(1), and/or commodity service provider devices 110(1) -110 (n). The domain services module 210 may be configured to detect modifications in the remote database 120. The domain service module 210 detects any writes in the remote database 120.

For example, a merchant associated with the merchandise service provider device 110(1) at store 112(1) accesses its merchant profile information through an online web portal. The merchant services provider device 110(1) views the merchant profile information through a display thereon. Further, remote database 120 may store data, such as merchant profile information, in a hierarchical structure. For example, the name of the store 112(1) may be the parent entity, while business hours, menu names, photo albums, address locations, etc. are sub-entities stored under the parent entity. In addition, the menu information includes a plurality of categories including appetizers, salads, mexican dishes, entrees, desserts, etc., which are to be classified as sub-entities under the sub-entities of the menu name. For example, for a store 112(1), the merchant profile information may include store business hours from 8:00 am to 5:00 pm. The merchant of the merchandise service provider device 110(1) modifies the business hours from 8:00 am to 5:00 pm to a new time from 9:00 am to 6:00 pm. This modification results in an update of the store business time entries in the remote database 120 for the store 112 (n). The domain services module 210 determines updates to store hours of operation entries on the remote database 120 based on monitoring the remote database 120. Similarly, a plurality of modifications may be made to the corresponding merchant profile information, customer profile information, and/or driver profile information by each of a plurality of merchants, customers, and/or drivers to result in a plurality of entity change requests being generated.

By providing a hierarchical structure, the technique provides the technical advantage of an optimization process that reduces data overhead (overhead). By providing a hierarchical structure, the technique identifies the specific location where the modification is made and thus generates an entity change request that includes information intended to update only the modified parent, child, and/or child sub-entities in the search index database 220, rather than generating an entity change request that updates the entire menu information as the child sub-entities change, which requires additional data overhead.

In step 404, the entity change listener module 212 of the integration server system 116 receives a first entity change request when an entry in the remote database 120 is modified. Upon determining the modification of the entry in step 402, the domain services module 210 sends a first entity change request. The first entity change request includes information corresponding to the entity that has been modified. For example, when modifying a price associated with an item within a category of appetizers for a menu, then the first entity change request will include an entity identifier associated with a child sub-entity of the category of appetizers and modification information, in this example, the price associated with the item in the category of "appetizers". Further, the entity identifier may be an address within a lookup table stored in the search index database 220, as shown in step 502 in FIG. 5.

In another example, when the merchant modifies the business hours information for the merchant 112(1), the domain services module 210 monitors the remote database 120 (as described in step 402), and upon determining the modification of the data entry, the domain services module 210 sends a first entity change request. The first entity change request includes an identifier associated with a sub-entity of the store business hours and modification information, which in this example is from 8:00 am to 5:00 pm to 9:00 am to 6 pm: 00 changes in business hours for the new moment. Similarly, multiple merchants, customers, and/or drivers in the corresponding merchant profile information, customer profile information, and/or driver profile information, respectively, are in the time period that the transaction listener module 214 receives pushed data from the entity change store 222. Customer devices 102(1) -102(n), commodity delivery provider devices 106(1) -106(n), commodity service provider devices 110(1) -110(n), and remote database 120 may be referred to as external systems.

In step 406, the entity change listener module 212 of the integration server system 116 stores the modifications made to the entry in the entity change store 222. Storing is also referred to as saving modifications made to the entries in entity change store 222. Upon receiving the first entity change request, the integration server system 116 stores the identifier associated with the entry that has been modified and the modification information included in the first entity change request. For example, when a first entity change request identifies an item to be modified as a commodity price within a appetizer category of the menu, then the integration server system 116 stores entity identifiers associated with child sub-entities of the appetizer category. And in this example, modification information for the price associated with the item in the "appetizer" category in the entity change store 222. Similarly, the identifier associated with the modified entry and the change information in the entity change request are also stored in the entity change store 222 based on a plurality of modifications performed by a plurality of merchants, customers, and/or drivers in their respective merchant profile information, customer profile information, and/or driver profile information, as shown in step 504 of FIG. 5.

In step 408, the domain services module 210 of the integrated server system 116 sends a submit event request at the transaction listener module 214 to initiate a transaction listening mode. Upon sending the first entity change request in step 402, the domain services module 210 generates a submit event request. This is depicted in step 506 of fig. 5.

In step 410, the entity change store 222 of the integration server system 116 pushes the data stored in step 406 to the transaction listener module 214. The transaction listener module 214 of the integrated server system 116 initiates a transaction listening mode upon receiving a submit event request from the domain services module 210. After the transaction listening mode is initiated, transaction listener module 214 waits to listen for data to be received from entity change store 222. Entity change store 222 pushes the data stored in step 406 to transaction listener module 214. Transaction listener module 214 identifies the entity identifier and corresponding modification information from the received data. The pushing of data from the entity change store 222 is performed in real time. In some embodiments, data is pushed to the transaction listener module 214 immediately upon being stored in the entity change store 222. The plurality of identifiers associated with the entries that were changed and the corresponding modifications associated with those entries are pushed by the entity change store 222. Similarly, the data pushed to transaction listener module 214 and stored in entity change store 222 may include a plurality of modifications made by a plurality of merchants, customers, and/or drivers to the corresponding merchant profile information, customer profile information, and/or driver profile information, respectively, over the time period that transaction listener module 214 receives the data from entity change store 222, as illustrated by step 508 in FIG. 5.

In another example, pushing data from the entity change store 222 is performed at regular time interval. The time period may include 1 microsecond, 1 second, 5 seconds, 5 minutes, 1 hour, and/or 24 hours, but may also include any other time period. The data pushed from entity change store 222 includes a plurality of identifiers associated with entries that were changed during a time period and corresponding modifications associated with those entries.

In another example, transaction listener module 214 retrieves the data stored in step 406 in entity change store 222. The obtained data may include an identifier associated with the entry that has been modified and modification information included in the first entity change request. For example, the entity identifier is associated with a child sub-entity in the appetizer category, and the modification information is, in this example, a price associated with an item within the appetizer category in the entity change store 222.

Transaction listener module 214, upon receiving the entity identifier from entity change store 222, identifies the event type associated with the entity identifier by pushing the data stored by entity change store 222 in step 406 to transaction listener module 214, or by transaction listener module 214 retrieving the data stored in entity change store 222 in step 406. The identified event type includes a location in the hierarchy associated with the entity identifier. For example, the event type may include a location associated with only that parent entity, child entity, and/or child sub-entity that has been modified.

In step 412, the transaction listener module 214 of the integration server system 116 identifies a triggering event in response to receiving the data stored in the entity change store 222. A triggering event is an event for generating a plurality of profiles of data received from the entity change store 222. Transaction listener module 214 identifies the initiation of a triggering event in response to receiving data stored in entity change store 222. The initiation of a triggering event causes transaction listener module 214 to generate a plurality of profiles of the data received from entity change store 222 in step 410. Upon recognition of the triggering event, the transaction listener module 214 of the integration server system 116 generates a brief description of the data pushed by the entity change store 222. For example, a brief description is a copy of the data received by transaction listener module 214 from entity change store 222 in step 410. In another example, the brief description will be a database table that includes reference indicators for data stored in the entity change store 222. As shown in step 510 of fig. 5, two profiles are sent via paths 514 and 516. These brief descriptions have the same data content being transferred.

In step 414, the transaction listener module 214 of the integration server system 116 sends a request to clear the entity change store 222. Upon receiving the data pushed by the entity change store 222, the transaction listener module 214 sends a request to clear the data pushed by the entity change store 222. Upon receiving a request to clear data, entity change store 222 deletes the data that has been pushed. This is depicted in step 512 of fig. 5.

In step 416, the transaction listener module 214 of the integration server system 116 transmits one of the brief descriptions and the corresponding event type identified in step 410 to the cached event publisher module 216. The cache event publisher module 216 then stores the summary description data in the cache database 224. When a request is received from the search index database 220 to access modified merchant profile information, customer profile information, and/or driver profile information, and if the search index database 220 is overloaded and cannot provide data immediately, in this case, the brief description stored in the cache database 224 is used to facilitate the request. The request is serviced by profile data stored in cache database 224. The first of the brief description is sent to the cache event publisher module 216, as shown in step 514 of FIG. 5.

In step 418, the transaction listener module 214 of the integration server system 116 transmits the brief description to the search event publisher module 218. The search event publisher module 218 stores the brief description. As shown in step 516 of FIG. 5, the second of the brief description, and the corresponding event type identified in step 410, is passed to the search event publisher module 218.

Proceeding to FIG. 4B, in step 420, the search event publisher module 218 of the integration server system 116 utilizes the event type received with the brief description to determine a location associated with the modified entity. Based on the determined location, the search event publisher module 218 categorizes the data entry in the brief description into one of a plurality of data pipe categories. The search event publisher module 218 is a stream service that classifies the data items in the brief description into multiple streams based on the type of the class and forwards them along with the streams to the data pipe class. The pipe category includes a parent entity associated with one of the businesses 112(1) -112 (n). For example, the pipe category 526 may be associated with the store 112(1), and the pipe category 528 may be associated with the store 112 (n). Based on the type of location identified in the event type, the search event publisher module 218 determines that one of the data conduits 526 along 530 corresponds to the location identified in the event type and sends the data entry to the corresponding one of the data conduits 526 along 530.

In another embodiment, the pipe categories include parent entities, child sub-entities, but may also include any other categories. For example, the data pipes 526, 528, and 530 in fig. 5 may be a parent entity data pipe 526, a child entity data pipe 528, and a child entity data pipe 530 (not shown in fig. 5). The search event publisher module 218 sends the data entries classified as parent entities in step 420 as a first stream to the parent entity data pipe 526, in addition the search event publisher module 218 may send a second stream of the child entity data pipe 528 for data entries classified as child entities, and the search event publisher module 218 may send a third stream of the child entity data pipe 530 for data entries classified as child entities. The merchant data information is organized in a hierarchical structure. For example, the name of the shop 112(1) may be a parent entity, and the business hours, menu names, photo albums, address locations, etc. are sub-entities, stored under the parent entity as sub-entities. In this example, the name of the store 112(1) is the parent entity. Business hours, menu names, photo albums, address locations, etc. may be sub-entities stored under the parent entity. In addition, the menu information may include a plurality of categories including appetizers, salads, mexican dishes, entrees, desserts, and the like. These entries may be categorized as sub-entities under the sub-entity of the menu name. In another example, the pipe categories include appetizers, salads, mexican dishes, entrees, and desserts.

In step 422, the search event publisher module 218 of the integration server system 116 identifies where in the hierarchy a particular modification was made and classifies the data entry as a parent entity, a child entity, or a child sub-entity according to the modification location. Upon identifying the category associated with the data entry, the search event publisher module 218 sends each data entry in the corresponding data pipe. Based on the categorization performed in step 420, the data entry is categorized into the corresponding data pipe. As one example, in step 420, the search event publisher module 218 identifies a location type based on the event type, and the search event publisher module 218 determines that one of the data conduits 526 and 530 corresponds to the location identified in the event type and sends the data entry to the corresponding one of the event types. Data conduit 526 and 530. When the search event publisher module 218 identifies a location associated with a data entry based on an event type corresponding to the location in the data conduit 526, the search event publisher module 218 sends the data entry to the data conduit 526. As another example, in step 420, the search event publisher module 218 may identify that the received entity change includes modifying a business hour from 8:00 am to 5:00 pm to a new hour from 9:00 am to 6:00 pm. In response, the search event publisher module 218 identifies that the data entry for the store operation hours is sub-entry data and accordingly sends the identifier for the store operation hours and the modification information associated with the store operation hours to the sub-entity data pipe 528. In this example, the modification information is to modify from 8:00 am to 5:00 pm to from 9:00 am to 6 pm: a new time of 00. Similarly, the search event publisher module 218 may send data entries categorized in the parent entity to the parent entity data pipe 526 via 520 and data entries categorized in the child sub-entities to the child sub-entity data pipe 530 via 524.

In step 424, the search index database 220 of the integration server system 116 receives the categorized data via stream 532 from the parent entity data pipe 526, the child entity data pipes 528, and/or the child sub-entity data pipes 530. The search index database 220 receives data from the parent entity data pipe 526 and updates the data entries associated with the parent entities. Similarly, the search index database 220 receives data from the sub-entity data pipe 528 and updates the data entries associated with the sub-entities. Similarly, search index database 220 receives data from child sub-entity data pipe 530 and updates the data entries associated with the child sub-entities.

In step 426, the search index database 220 of the integration server system 116 receives a user search request to access data entries from the merchant profile information, the customer profile information, and/or the driver profile information. Upon receiving the user search request, the search index database 220 provides a response to include the search results associated with the modified data entry that was updated in step 424 to correspond to the data entry included in the user search request.

Fig. 6 illustrates an alternative embodiment to fig. 5, which includes a flowchart illustrating the exemplary process of fig. 4A and 4B. Fig. 6 shows domain services module 210, entity change listener module 212, entity change store 222, transaction listener module 214, and search publisher module 218 of server device 200 in this example. In the example embodiment, these modules are implemented as event processing system 602. Further, event consumer module 226, event processing module 227, generate event entity 228, event publisher module 229, merchant Application Programming Interface (API)230, cache database 224, cache event publisher module 216, search event publisher module 218, and search index database 220 are implemented as database system 604. In some embodiments, the event processing system 602 and the database system 604 are part of the integrated server system 116.

According to process 400 (fig. 4A and 4B) and fig. 5, step 602 is substantially similar to step 502. Step 604 is substantially similar to step 604. Step 606 is substantially similar to step 506. Step 608 is substantially similar to step 508.

In some embodiments, step 610 is substantially similar to step 510. In other embodiments, the transaction listener module 214 of the integration server system 116 identifies a trigger event in response to receiving data stored in the entity change store 222. The triggering event is an event for transferring data received from the entity change store 222 to the search event publisher module 218. Transaction listener module 214 identifies the initiation of a triggering event in response to receiving data stored in entity change store 222. The initiation of the trigger event causes the transaction listener module 214 of the integrated server system 116 to transmit the received data to the search event publisher module 218, which is shown in step 610. In step 612, the transaction listener module 214 of the integration server system 116 sends a request to clear the entity change store 222. Upon receiving the data pushed by the entity change store 222, the transaction listener module 214 sends a request to clear the data pushed by the entity change store 222. Upon receiving a request to clear data, entity change store 222 deletes the pushed data.

The search event publisher module 218 stores the data received from the stream 610 and then proceeds to determine whether the received data includes data that has been modified, as shown at step 614. Here, the search event publisher module 218 compares the received data to corresponding data previously stored on the search event publisher module 218 to determine whether the data has been modified. When the search event publisher module 218 determines that the received data does not include data that has been modified, then the method proceeds to flow 616, where the method ends. However, when the search event publisher module 218 determines that the received data includes modified data, then the modified data is sent to the event consumer module 226, as shown in flow 618. Event consumer module 226 proceeds to determine whether there is a matching event type based on the received data described in stream 620. Event consumer module 226 determines whether the received data has been identified as being modified to match the event type. The event type may include a modification of a parent entity, a child entity, or a child sub-entity based on identifying a location in the data that has been identified as being modified. Upon identifying the event type, e.g., a modification to be made on a sub-entity, event consumer module 226 passes the data that has been identified as being modified to event processing module 227, as shown in flow 622. The event handler module 228 then updates the merchant Application Programming Interface (API) and retrieves the updated data to reflect the modifications made, as shown in flow 624. After updating the merchant API230, the event processing module 227 then proceeds to transmit the data that has been identified as to be modified to generate the event entity module 228, as shown at 626. The generate entities module 228 then generates a plurality of profiles of the data that have been identified as being modified. For example, the brief description is a copy of the data that has been identified as being modified in step 410. In another example, the profile is a database table that includes reference indicators to data stored in the entity change store 222. Multiple profiles refer to multiple copies of the same data that have been identified as being modified. The generate entities module 228 then sends multiple copies of the same data that have been identified as to be modified to the event publisher module 229. The event publisher module 229 sends one of the profiles to the cache event publisher module 216 via flow 630. The cache event publisher module 216 stores the summary description data in the cache database 224. The event publisher module 229 also sends the second of the profiles to the search event publisher module 218.

The search event publisher module 218 of the integration server system 116 identifies locations in the hierarchy where certain modifications were made and classifies the data entry as a parent entity (e.g., store information), a child entity (menu information for the store), or a child entity (open time for the store, open information for the store during vacation, irregular business time for the store during vacation) based on the modified locations. In this example, store information is associated with data pipe 636b, menu information for the store is associated with data pipe 638b, store business hours information is associated with data pipe 640b, store open information is associated with data pipe 642b during vacation, and irregular business hours are associated with data pipe 644b during vacation. After identifying the category associated with the data entry, the search event publisher module 218 transmits each data entry in the corresponding data pipe associated with the category based on the performed categorization. Further, the search event publisher module 218 can send the modified data entry corresponding to the information of the store to the data pipe 636b via stream 636 a. The search event publisher module 218 can communicate the modified data entry corresponding to the store's menu information to the data pipe 638b via the flow 638 a. The search event publisher module 218 may communicate the modified data entry corresponding to the store business hours information to the data conduit 640b via flow 640 a. The search event publisher module 218 may transmit the modified data entries corresponding to store opening information during the vacation to the data conduit 642b via stream 642 a. The search event publisher module 218 may communicate modified data entries corresponding to store irregular business hours during the holiday to the data conduit 644b via flow 644 a. Further, step 646 is substantially similar to step 532.

The disclosed embodiments provide an improved method of receiving and propagating efficient search updates by providing the technical advantages of an optimization process that reduces data overhead and providing a real-time process of search updates. Because the technique provides a real-time search update process by pushing data stored in the entity change store, the technique provides a fast and reliable process that can reflect modifications made to the database so that modifications can be displayed as part of the search results more quickly. Thus, the technique reduces the delay incurred during updating of the data entry. Further, the technique identifies the particular location where the modification is made and, thus, generates an entity change request that includes information intended to update a search index database associated only with the parent, child, and/or child sub-entity being modified. Thus, this technique reduces data overhead, rather than generating an entity change request to update the entire menu information when a change occurs to a child sub-entity, which requires additional data overhead.

In contrast, in the prior art, other policies that have been implemented are inefficient because they require additional data overhead, which may be disadvantageous for efficient utilization of network resources and thus increase network burden. Furthermore, the prior art introduces significant delays during the search update process, while the disclosed embodiments provide a real-time update process that reduces the delay in reflecting modifications made to data entries.

Although illustrative embodiments have been described herein, the scope thereof includes any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., of aspects of the various embodiments), adaptations and/or alterations as would be appreciated by those in the art based on the present disclosure. For example, the number and orientation of components shown in the exemplary system may be modified. Accordingly, the foregoing description has been presented for the purposes of illustration only. It is not intended to be exhaustive or to limit the precise form or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art in view of the specification and practice of the disclosed embodiments.

The elements of the claims are to be interpreted broadly based on the language used in the claims and not limited to examples described in the specification or during the prosecution of the application, which examples are to be construed as non-exclusive. Accordingly, it is intended that the specification and examples be considered as exemplary only, with a true scope and spirit being indicated by the following claims and their full scope of equivalents.

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理装置,信息处理方法及信息处理程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!