Search methods, systems, and devices
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-07
- Publication Date
- 2026-03-25
Smart Images

Figure 2026509743000001_ABST
Abstract
Description
Technical Field
[0001] 1. Technical Field The field of the present invention relates to a computer - implemented method for searching search results using a browser running on a client device, a related system including a server and a client device including a browser program, a related client device including a browser program, and a related server forming part of the system.
Background Art
[0002] 2. Technical Background Time To First Result (TTFR) is a very important metric for the search performance of a search website. It is the time it takes for the first search result to be displayed on the user interface of the user who requested the search. If the first search result is not displayed immediately, the user may switch to another search website.
[0003] As the search activities performed by Internet users increase, more and more energy is being used to perform search activities on the Internet. It is desirable to reduce or limit the energy consumption related to performing search activities on the Internet.
[0004] A part of the disclosure of this patent document includes materials subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document or patent disclosure as described in the patent file or record of the Patent and Trademark Office, but reserves all copyrights otherwise.
[0005] 3. Consideration of Related Technologies EP3557437A1 and EP3557437B1 disclose a case management system configured to generate search templates based on the search type and the selection of one or more data sources. As configured, the case management system enables searches to be performed using search templates generated on synchronous and asynchronous data sources, and provides periodic polling of the asynchronous data sources to generate integrated search results. [Overview of the project]
[0006] According to a first aspect of the present invention, a computer implementation method is provided which retrieves search results using a browser running on a client device, a search home website, a front-end backend (BFF) server, and a search service server, the method being: (i) A browser running on a client device sends a search request to the search home website, and the search request includes search parameters, (ii) The search homepage sends an asynchronous pre-search request to the search service server, the asynchronous pre-search request includes search parameters, and the search service server responds to the asynchronous pre-search request by using the search parameters to initiate a search cycle. (iii) The browser receives HTML data of the search homepage website, including cascading style sheets (CSS) and script tags. (iv) The browser executes CSS and script tags to download CSS and script files from the front-end server, (v) The browser parses the CSS file and renders the web page components, including the web page styles. (vi) The browser executes a script file so that the client device, including the browser, establishes a persistent connection to the front-end backend (BFF) server and sends search parameters to the BFF server, and the BFF server polls the search service server using the search parameters. (vii) The search service server recognizes that the search parameters received in step (vi) correspond to the search parameters received in step (ii), and using the search cycle initiated in step (ii), provides the BFF server with a first search result from the search cycle in response to a poll from the BFF server. (viii) The BFF server sends the first search result to a browser running on a client computer, (ix) The browser provides a first search result for display on the screen of the client device.
[0007] The advantage is that the browser receives the first search results more quickly as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters. Another advantage is reduced energy consumption because, as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0008] The method could be one in which the search request is a search request for hotel reservations.
[0009] The method may be a search request for flights or rental vehicles (e.g., cars, automobiles, vans, trucks, boats, ships, aircraft, motorcycles), or mortgages or insurance (e.g., auto insurance, home insurance, travel insurance, life insurance, pet insurance), or money loans or mortgages, or mobile phone purchases or broadband transactions, or real estate or rental accommodations, or a search request for dating.
[0010] The method may involve the client device being a desktop computer, laptop computer, internet TV, smartphone, or tablet computer.
[0011] The method may involve the client device being connected to the internet wirelessly (e.g., cellular or Wi-Fi).
[0012] One possible method is for the client device to be connected to the internet via a wired connection.
[0013] One possible method is for the front-end server to be a cloud server.
[0014] One possible method is for the front-end server to be a Content Delivery Network (CDN), such as a static file server.
[0015] The method may involve a BFF server providing language translation, translating results in a first language received from a search service server into a second language, and sending the results in the second language to a browser running on a client device.
[0016] One possible method is for the BFF server to poll the search service server at intervals and request the search service server to send data related to the asynchronous pre-search requests sent to the search service server. The advantage is reduced energy consumption because, as a result of the search home website sending asynchronous pre-search requests to the search service server (which include search parameters), and the search service server responding to the asynchronous pre-search requests by using the search parameters to initiate a search cycle, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0017] One possible method is for the BFF server to poll the search service server at intervals until all search results are received, sent to a client device including a browser, rendered in the browser, and then the client device including the browser closes the persistent connection, requesting the search service server to send data related to the asynchronous pre-search request sent to the search service server. The advantage is reduced energy consumption because, as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by using the search parameters to initiate a search cycle, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0018] The method may involve a search cycle in which a search service server uses an external service to retrieve search data related to the search results.
[0019] One possible method is for the search homepage to check whether the search request is coming from a bot, and if it is determined that the search request is not coming from a bot, the search process will continue. The advantage is that searches determined to be coming from bots are blocked, reducing energy consumption.
[0020] The method may involve a gateway associated with a search home website server selecting a geographic region from several geographic regions, then routing search requests received from the browser to a group of servers within that geographic region, where the group of servers includes a BFF server and a search service server, and the search service website returning an identifier associated with the selected geographic region to the browser, which then uses the identifier to enable the gateway to route search requests received from the browser to the group of servers within that geographic region. The advantages are that calls between groups of servers in different geographic regions are avoided, reducing energy consumption. Another advantage is that calls between groups of servers in different geographic regions are avoided, speeding up the delivery of initial search results to the browser.
[0021] One possible method is for the browser to use cookies, such as session cookies, to set the selected geographical region.
[0022] One method may be one in which, when a persistent connection is established to poll the search service, the request header includes a region obtained from a cookie, such as a session cookie.
[0023] The method can be such that the BFF server provides the first search data (e.g., hotel static information) to the browser running on the client device, and the second search data (e.g., related tariff information) is only provided later when the browser running on the client device requests the second search data. Since the second search data is not requested at least sometimes, the advantage is the reduction of energy consumption.
[0024] The method can be such that a regional identifier is sent from the BFF server to the browser and stored, for example, as a cookie.
[0025] The method can be such that a request for the second search data (e.g., related tariff information) from the browser running on the client device is sent from the BFF server to the browser and includes the regional identifier stored, for example, as a cookie.
[0026] The method can be such that after the BFF server sends the second data (e.g., hotel tariff information) to the client device including the browser, the BFF server sends a further regional identifier from the BFF server to the browser stored, for example, as a further cookie on the client device.
[0027] The method can be such that after the checkout process is requested from the browser to the BFF server, to ensure that the same region is used for the checkout process that was used to provide the second data (e.g., hotel tariff information), it includes a further regional identifier from, for example, a further cookie.
[0028] The method can be such that it indicates that it is an asynchronous search request, where a field is included in the pre-search request sent to the (e.g., hotel reservation) search service and this request includes starting a search cycle.
[0029] The method could be that the search homepage (for example, a hotel) uses JavaScript, TypeScript, Node.js JavaScript, and React languages and frameworks, the BFF server (for example, a hotel) uses Node.js JavaScript language and frameworks, and the search service (for example, a hotel booking) uses Python and AIOHTTP languages and frameworks.
[0030] The method may involve the browser fetching CSS and script files from a front-end server, the browser identifying a client device class (e.g., desktop computer, laptop computer, internet TV, smartphone, tablet computer) to the front-end server, and the browser receiving a corresponding set of selected CSS and script files corresponding to the client device class identified by the browser in response from the front-end server.
[0031] One possible method is for the script file to be a JavaScript file.
[0032] According to a second aspect of the present invention, a system is provided which includes a client device comprising a browser program, a search home website, a front-end backend (BFF) server, and a search service server, the system being configured to perform a method according to any aspect of the first aspect of the present invention.
[0033] The advantage is that the browser receives the first search results more quickly as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters. Another advantage is reduced energy consumption because, as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0034] According to a third aspect of the present invention, a client device including a browser program is provided for a system according to any aspect of the second aspect of the present invention.
[0035] According to a fourth aspect of the present invention, a search home website for a system according to any aspect of the second aspect of the present invention is provided.
[0036] According to a fifth aspect of the present invention, a backend (BFF) server for the frontend of a system according to any aspect of the second aspect of the present invention is provided.
[0037] According to a sixth aspect of the present invention, a search service server of a system according to any aspect of the second aspect of the present invention is specified.
[0038] According to a seventh aspect of the present invention, a system is provided which includes a client device including a browser program and screen, a search home website, a backend (BFF) server for the frontend, and a search service server. (i) A browser is running on a client device and is configured to send a search request to a search home website, and the search request includes search parameters, (ii) The search home website is configured to send an asynchronous presearch request to the search service server, the asynchronous presearch request includes search parameters, and the search service server is configured to respond to the asynchronous presearch request by using the search parameters to initiate a search cycle. (iii) The browser is configured to receive HTML data, including cascading style sheets (CSS) and script tags, from the search homepage website. (iv) The browser is configured to execute CSS and script tags to download CSS and script files from the front-end server. (v) The browser is configured to parse the CSS file and render the web page components, including the web page styles. (vi) The browser is configured to execute a script file, and in response to the browser executing the script file, the client device including the browser is configured to establish a persistent connection to a backend for frontend (BFF) server and send search parameters to the BFF server, and the BFF server is configured to poll the search service server using the search parameters. (vii) The search service server is configured to recognize that the search parameters received in (vi) correspond to the search parameters received in (ii), and to use the search cycle initiated in (ii) to respond to polling from the BFF server and provide the BFF server with the first search result from the search cycle. (viii) The BFF server is configured to send the first search result to the browser running on the client device. (ix) The browser is configured to provide a first search result for display on the client device screen.
[0039] The advantage is that the browser receives the first search results more quickly as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters. Another advantage is reduced energy consumption because, as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0040] The system may be configured to perform a method according to any aspect of the first aspect of the present invention.
[0041] According to an eighth aspect of the present invention, a client device is provided which includes a browser program for a system according to any aspect of the seventh aspect of the present invention.
[0042] According to a ninth aspect of the present invention, a search home website for a system according to any aspect of the seventh aspect of the present invention is provided.
[0043] According to a tenth aspect of the present invention, a backend (BFF) server for a frontend is provided according to any aspect of the seventh aspect of the present invention.
[0044] According to an eleventh aspect of the present invention, a search service server for a system according to any aspect of the seventh aspect of the present invention is provided.
[0045] According to a twelfth aspect of the present invention, a system is provided that includes a search home website, a backend for frontend (BFF) server, a frontend server, and a search service server. (i) The search home website is configured to receive search requests from a browser running on a client device, and the search request includes search parameters, (ii) The search home website is configured to send an asynchronous pre-search request to the search service server, the asynchronous pre-search request includes search parameters, and the search service server is configured to respond to the asynchronous pre-search request by initiating a search cycle using the search parameters. (iii) The search homepage is configured to send HTML data, including cascading style sheets (CSS) and script tags, to the browser, and the CSS and script tags are executable in the browser to download the CSS and script files from the front-end server. (iv) The front-end server is configured to send CSS and script files to the browser, the CSS files being parseable by the browser to render web page components including web page styles, and the script files being executable by the browser to establish a persistent connection to the back-end (BFF) server for the front-end and send search parameters to the BFF server, the BFF server being configured to poll the search service server using the search parameters. (v) The search service server is configured to recognize that the search parameters received in (iv) correspond to the search parameters received in (ii), and to use the search cycle initiated in (ii) to respond to polling from the BFF server and provide the BFF server with the first search result from the search cycle. (vi) The BFF server is configured to send the first search results to a browser running on a client device and to provide the first search results for display on the screen of the client device.
[0046] The advantage is that the browser receives the first search results more quickly as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters. Another advantage is reduced energy consumption because, as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0047] The system may be configured to perform a method according to any aspect of the first aspect of the present invention.
[0048] According to a thirteenth aspect of the present invention, a front-end server for a system according to any aspect of the twelve aspects of the present invention is provided.
[0049] According to a fourteenth aspect of the present invention, a search home website is provided that is an embodiment of any of the twelve aspects of the present invention.
[0050] According to a 15th aspect of the present invention, a backend (BFF) server for a frontend is provided according to any aspect of the 12th aspect of the present invention.
[0051] According to a sixteenth aspect of the present invention, a search service server for a system according to any aspect of the twelve aspects of the present invention is provided.
[0052] According to a 17th aspect of the present invention, a computer implementation method is provided for retrieving search results using a search home website, a backend for frontend (BFF) server, a frontend server, and a search service server, the method being: (i) The search homepage receives a search request from a browser running on a client device, and the search request includes search parameters, and the steps are as follows: (ii) The search homepage sends an asynchronous pre-search request to the search service server, the asynchronous pre-search request includes search parameters, and the search service server responds to the asynchronous pre-search request by using the search parameters to initiate a search cycle. (iii) The search homepage sends HTML data containing cascading style sheets (CSS) and script tags to the browser, and the CSS and script tags are executable in the browser to download CSS and script files from the front-end server, (iv) The front-end server sends CSS and script files to the browser, the CSS file is parsable by the browser to render web page components including web page styles, the script file is executable by the browser to establish a persistent connection to the back-end (BFF) server for the front-end and send search parameters to the BFF server, the BFF server polls the search service server using the search parameters, (v) The search service server recognizes that the search parameters received in step (iv) correspond to the search parameters received in step (ii), and using the search cycle initiated in step (ii), provides the BFF server with a first search result from the search cycle in response to a poll from the BFF server. (vi) The BFF server sends the first search result to a browser running on a client device and provides the first search result for display on the screen of the client device.
[0053] The advantage is that the browser receives the first search results more quickly as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters. Another advantage is reduced energy consumption because, as a result of the search home website sending an asynchronous pre-search request to the search service server (which includes search parameters), and the search service server responding to the asynchronous pre-search request by initiating a search cycle using the search parameters, fewer polling requests from the BFF server to the search service are required, which reduces energy consumption.
[0054] The method may include a method according to any aspect of the first aspect of the present invention.
[0055] The embodiments of the present invention can be combined. [Brief explanation of the drawing]
[0056] Here, an embodiment of the present invention will be described with reference to the following drawings as an example. [Figure 1] This example shows a system that includes a client computer device with a browser connected to the internet, a search home website, a front-end in the cloud, a back-end (BFF) server for the search front-end, and a search service server. [Figure 2] This example shows a system that includes a client computer device with a browser connected to the internet, a hotel search homepage, a front-end in the cloud, a back-end (BFF) server for the hotel search front-end, and a hotel reservation search service server. [Figure 3] This document describes exemplary methods or systems for reducing the time to first result (TTFR). [Figure 4]This document describes exemplary methods or systems for reducing the time to first result (TTFR), including exemplary timing. [Figure 5] This document presents exemplary methods or systems for reducing time to first results (TTFR) in multi-regional environments. [Figure 6] This document describes exemplary methods or systems for reducing the time to first result (TTFR) in a multi-regional environment where hotel search results are provided, but hotel price information is not provided unless specifically requested. [Figure 7] This is an example of hotel search results, including prices, presented in a browser user interface on a desktop computer. [Figure 8] This is an example of hotel search results, including prices, presented in a smartphone browser user interface. [Modes for carrying out the invention]
[0057] The goal is to improve the search performance of search websites, such as search websites for hotel reservations.
[0058] For example, on a mobile device's web browser, the user interface (UI) for a hotel search website might have static hotel information (e.g., stars, images, number of reviews, ratings, etc.) but no hotel price information. In another example, a search performed using a desktop computer might have both static hotel information and hotel price information, as shown in Figure 7, for example. In yet another example, a search performed on a mobile device's web browser using a mobile device (e.g., a smartphone) might have both static hotel information and hotel price information, as shown in Figure 8, for example.
[0059] In one example, the TTFR target value could be 2 seconds or less. In another example, the TTFR target value could be 3 seconds or less. In another example, the TTFR target value could be 4 seconds or less. In another example, the TTFR target value could be 5 seconds or less. In another example, the TTFR target value could be 10 seconds or less.
[0060] In one example, the client computer device, including the browser, is connected to the internet. The search home website (e.g., an HTML server) is connected to the internet. The cloud front-end (e.g., a Content Delivery Network (CDN), e.g., a static file server) is connected to the internet. The back-end application programming interface (API) server for the front-end is connected to the internet. The search service server is connected to the internet. The client computer device, including the browser (e.g., a smartphone), may be connected to the internet wirelessly (e.g., cellular or WiFi). The client computer device, including the browser (e.g., a desktop computer), may be connected to the internet via a wired connection. An example is shown in Figure 1. In this example, the search home website and the BFF server may reside on the same server.
[0061] One of the problems that causes delays in providing search results is latency. This is because it takes time for the server to respond to requests from the browser on the client device. In a system that includes the client device including the browser, the search home website, the front-end in the cloud including the content delivery network, the search BFF, and the search service server, the interaction between the browser and the content delivery network can cause a delay in the search request being received by the search service server, which in turn causes a delay in the first search result being received by the browser on the client device.
[0062] In one example, a client computer device, including a browser, is connected to the internet. The hotel search homepage (e.g., an HTML server) is connected to the internet. The cloud front-end (e.g., a Content Delivery Network (CDN), e.g., a static file server) is connected to the internet. The back-end (BFF) application programming interface (API) server for the hotel front-end is connected to the internet. The hotel reservation search service server (e.g., providing hotel data, availability, and pricing information) is connected to the internet. A client computer device, including a browser (e.g., a smartphone), may be connected to the internet wirelessly (e.g., cellular or WiFi). A client computer device, including a browser (e.g., a desktop computer), may be connected to the internet via a wired connection. An example is shown in Figure 2. In one example, the search homepage and the BFF server may reside on the same server.
[0063] Figure 7 shows an example of hotel search results, including prices, presented in a browser user interface on a desktop computer. Figure 8 shows an example of hotel search results, including prices, presented in a browser user interface on a smartphone.
[0064] One of the issues that causes delays in providing search results is latency. This is because it takes time for the server to respond to requests from the browser on the client device. In a system that includes a client device including a browser, a hotel search homepage, a front-end in the cloud including a content delivery network, a hotel search BFF, and a hotel reservation search service server, the interaction between the browser and the content delivery network can cause a delay in the search request being received by the hotel reservation search service server, which in turn causes a delay in the first search result being received by the browser on the client device.
[0065] An API can be called a BFF when the BFF provides responses to facilitate processing on the frontend. The frontend includes the presentation layer. The backend includes the data access layer. In one example, a BFF might be used to perform language translation from a primary language to a selected language, where the primary language may be English.
[0066] An example involving a browser process includes the following steps: 1) The user sends a search request to the hotel search homepage using a client device, including a browser. The hotel search homepage receives the communication associated with this search request from the client device, including the browser, and makes an asynchronous pre-search request to the hotel reservation search service server, initiating the search cycle at the hotel reservation search service server. The browser receives the relevant HTML from the hotel search homepage server.
[0067] 2) After the HTML is downloaded to the client device, including the browser, the browser parses the HTML.
[0068] 3) When the browser encounters cascading stylesheets (CSS) and script tags while parsing HTML, the browser downloads external CSS and script (e.g., JavaScript) files from the frontend of the cloud static server.
[0069] 4) After the CSS and script (e.g., JavaScript) files are downloaded from the frontend of the cloud static server, the browser parses the CSS to render the web page components, including the web page styles, and executes the script (e.g., JavaScript).
[0070] 5) Once the web page component is rendered in the browser, the client device, including the browser, establishes a persistent connection to the hotel BFF server to poll the hotel reservation search service server. The hotel BFF receives all hotel data, including all hotel rate information, and sends it to the client device, including the browser, renders it in the browser, and then, at intervals (e.g., every 500 milliseconds), requests the hotel reservation search service to send the hotel data related to the asynchronous pre-search request sent to the hotel reservation search service until the client device, including the browser, closes the persistent connection.
[0071] The hotel booking search service server may use external services to retrieve offers from each hotel and partner. Retrieving offers from each hotel and partner using external services can be time-consuming, and the entire process can be described as a search cycle. The hotel booking search service server may initiate a search cycle using several search parameters. The hotel booking search service server may receive static hotel information and data related to hotel partners from the travel API. Static hotel information includes unchanging information about the hotel, such as the hotel's address, photos, website, telephone number, and email address. The hotel booking search service server may receive hotel booking price information from hotel partners.
[0072] For example, the same search parameters can be submitted in step 1) and step 5). This allows the hotel booking search service to use the same search cycle for both requests to ensure that the request in step 5) benefits from the earlier request in step 1), in that the search process in step 1) is initiated before step 5) occurs. Since the request in step 1) may be sent from the hotel search home website to the hotel booking search service server, and the request in step 5) may be sent to the hotel BFF server to poll the hotel booking search service server, the requests in steps 1) and 5) may be sent to two different locations on the internet. Sending the request to two different locations on the internet can speed up the search process, as in step 5), it may be much faster to send the request to the hotel BFF server to poll the hotel booking search service server than to send the request to the hotel search home website and then to the hotel BFF server to poll the hotel booking search service server.
[0073] An example is shown in Figure 3.
[0074] The advantage is that the browser process and the hotel booking search service server search cycle run in parallel. This helps minimize the Time To Stream (TTFR). This also helps minimize the number of polling requests sent from the hotel BFF server to poll the hotel booking search service server. This is because the search cycle starts earlier on the hotel booking search service server than if it started when the browser established a persistent connection to the hotel BFF server to poll the hotel booking search service server. This reduces energy usage, as sending more polling requests consumes more energy.
[0075] For example, in step 1), the hotel search homepage checks that the search request is not from an unwelcome bot before making an asynchronous pre-search request to the hotel reservation search service server. Checking that the search request is not from an unwelcome bot may include checking the Internet Protocol (IP) address against a list of IP addresses associated with unwelcome bots. If the search request is from an IP address on the list of IP addresses associated with unwelcome bots, the search request may be rejected, or the origin of the search request may be provided with a test to demonstrate that they are not bots. If they pass the test, the search request may proceed, but if they fail the test, the unwelcome bot may be blocked in the browser. Checking that the search request is not from an unwelcome bot may also include checking the Internet Protocol (IP) address against a list of IP addresses associated with welcome bots. If the search request is from an IP address on the list of IP addresses associated with welcome bots, the search request will not proceed, but the unwelcome bot will not be blocked in the browser. Checking that search requests are not coming from unwelcome bots may include checking search requests with a bot identification service. If the bot identification service identifies a search request as potentially coming from an unwelcome bot, the search request may be rejected, or the origin of the search request may be provided with a test to demonstrate that they are not bots. If they pass the test, the search request may proceed; however, if they fail the test, the unwelcome bot may be blocked on the browser. An example of a welcome bot is a hotel search homepage that cooperates to achieve search engine optimization. It is advisable not to send pre-search requests to the hotel booking search service in response to requests received from bots (e.g., unwelcome bots). Such pre-search requests are a waste of computing resources and energy, as they lead to increased traffic to the hotel booking search service.
[0076] An example including illustrative timing is shown in Figure 4. In Figure 4, the TTFR is 0.7 + 3.5 + 0.45 = 4.65 seconds, as shown on the left side of the figure. If the asynchronous search was not sent first, and instead the search request was sent when a persistent connection was established to the hotel being polled, the TTFR would be at least 1.15 seconds longer, based on the timing shown on the right side of Figure 4, and the hotel booking search service server would have 1.15 seconds to receive the initial hotel rate information and hotel static information after receiving the search request. In the example in Figure 4, due to the slow network connection, it takes 3.5 seconds to parse the HTML, fetch the CSS and script files, receive the CSS and script files, render the styles, and execute the scripts. In the example in Figure 4, polling / search requests are sent from the hotel BFF to the hotel booking search service every 500 milliseconds.
[0077] In the example, polling involves calling the backend to obtain more results. In the example, polling involves the client program actively sampling the status of an external device as a synchronous activity. Polling may continue until the backend returns that there are no further results, after which polling ends and the search cycle is complete.
[0078] Interregional solutions for pre-search and polling Typically, a gateway is associated with a hotel search home website server, a hotel BFF server, and a hotel reservation search service server. The gateway routes each request received from the browser to a selected group of servers associated with a geographical region (e.g., Western Europe, Eastern Europe, Asia, North America, etc.). Generally, the selected group of servers associated with a geographical region may change within a session, for example, from Western Europe to North America, and an exemplary situation may be that the relative amount of network traffic makes it preferable to use one group of servers rather than another. Such a situation can cause problems with pre-searches (i.e., asynchronous search requests). This is because if a pre-search (i.e., an asynchronous search request) uses a group of servers associated with a first geographic region, and a persistent connection is established to poll hotels with a group of servers associated with a second geographic region different from the first geographic region, the process may become non-functional, or the process may be slowed down by requiring calls between the group of servers associated with the first geographic region and the second or other geographic region, which is contrary to the purpose of reducing TTFR, and calls between the group of servers associated with the first geographic region and the group of servers associated with the second geographic region may increase costs, typically increasing energy consumption.
[0079] Therefore, when the hotel search home website returns the HTML of the search page, this HTML includes a regional identifier (e.g., a regional value) which may be defined as an environment variable. In response to the data returned by the hotel search home website, the browser may set the region using a cookie, e.g., a session cookie. Then, when a persistent connection is established to poll the hotel reservation search service for hotels, the request header includes the region obtained from the cookie, e.g., the session cookie. The gateway associated with the hotel search home website server, the hotel BFF server, and the hotel reservation search service server then route the request received from the browser to a group of servers associated with the geographical region which is the region defined by the cookie, e.g., the session cookie. This can be described as defining session affinity.
[0080] In this case, the exemplary process, which includes the browser process, includes the following steps: 1) The user sends a search request to the hotel search homepage using a client device, including a browser. The hotel search homepage receives the communication associated with this search request from the client device, including the browser, and makes an asynchronous pre-search request to the hotel reservation search service server, initiating the search cycle at the hotel reservation search service server. The browser receives the associated HTML and the region defined by the environment variable from the hotel search homepage server. The browser stores the region defined in the environment variable in a cookie, for example, a session cookie. 2) After the HTML is downloaded to the client device, including the browser, the browser parses the HTML. 3) When the browser encounters cascading stylesheets (CSS) and script tags while parsing HTML, the browser downloads external CSS and script (e.g., JavaScript) files from the frontend of the cloud static server. 4) After the CSS and script (e.g., JavaScript) files are downloaded from the frontend of the cloud static server, the browser parses the CSS to render the web page components, including the web page styles, and executes the script (e.g., JavaScript). 5) Once the web page component is rendered on the browser, the client device, including the browser, establishes a persistent connection to the hotel BFF server to poll the hotel reservation search service server (session affinity is set by the request header), and the gateway associated with the hotel search home website server then routes this traffic to the region defined by the cookie, e.g., the session cookie, along with the hotel BFF server and the hotel reservation search service server. The hotel BFF receives all hotel data, including all hotel rate information, and sends it to the client device, including the browser, renders it in the browser, and then, at intervals (e.g., every 500 milliseconds), requests the hotel reservation search service to send the hotel data related to the asynchronous pre-search request sent to the hotel reservation search service until the client device, including the browser, closes the persistent connection.
[0081] An example is shown in Figure 5.
[0082] For example, it may be appropriate to first provide static hotel information to the browser running on the client device, and then provide the relevant pricing information only later if the browser requests it. One reason for this is that hotel pricing information changes much faster than static hotel information, and is typically available much sooner than static hotel information. Therefore, requests for the latest pricing information may need to be made by the hotel booking search service before the pricing information is available. Another reason is that if the client device has a small screen, such as a smartphone, it may be preferable to first provide only static hotel information and then provide pricing information only when requested, thereby reducing the amount of data displayed on the screen and the amount of data sent to the mobile device, respectively, to suit the small screen size and mobile communication. In this case, the exemplary process, including the browser process, includes the following steps. 1) The user sends a search request to the hotel search homepage using a client device, including a browser. The hotel search homepage receives the communication associated with this search request from the client device, including the browser, and makes an asynchronous pre-search request to the hotel reservation search service server, initiating the search cycle at the hotel reservation search service server. The browser receives the associated HTML and the region defined by the environment variable from the hotel search homepage server. The browser stores the region defined in the environment variable in a cookie, for example, a session cookie. 2) After the HTML is downloaded to the client device, including the browser, the browser parses the HTML. 3) When the browser encounters cascading stylesheets (CSS) and script tags while parsing HTML, the browser downloads external CSS and script (e.g., JavaScript) files from the frontend of the cloud static server. 4) After the CSS and script (e.g., JavaScript) files are downloaded from the frontend of the cloud static server, the browser parses the CSS to render the web page components, including the web page styles, and executes the script (e.g., JavaScript). 5) When the web page component is rendered on the browser, the client device, including the browser, establishes a persistent connection to the hotel BFF server to poll the hotel reservation search service server (session affinity is set by the request header), and the gateway associated with the hotel search home website server then routes this traffic to the region defined by a cookie, e.g., a session cookie, for the hotel BFF server and the hotel reservation search service server. The hotel BFF requests the hotel reservation search service to send the hotel data related to the asynchronous pre-search request sent to the hotel reservation search service at intervals (e.g., every 500 milliseconds) until all hotel data, including hotel rate information, is received by the hotel BFF. However, in the first stage, the hotel BFF server sends hotel static data instead of hotel rate information to the client device, including the browser, and the hotel static data, not hotel rate information, is rendered in the browser, and a regional identifier from the hotel BFF server is sent to the browser and stored as a cookie. When the hotel BFF server has received all hotel static information and all hotel rate information, the hotel BFF server closes the persistent connection. The hotel BFF server sends hotel rate information to a client device, including a browser, only when the client device requests hotel rate information. Such a request may include a regional header from a cookie that records a regional identifier sent from the hotel BFF server, ensuring that the same region is used for the hotel rate information used to provide static hotel information.
[0083] An example is shown in Figure 6.
[0084] In one example, the client device is a mobile device, such as a smartphone.
[0085] In an optional further step, if the hotel BFF server sends hotel rate information to a client device, including a browser, the hotel BFF server sends an additional regional identifier from the hotel BFF server to the browser, which is stored in an additional cookie on the client device. Then, if the browser requests a checkout process from the hotel BFF server, the request includes a regional header from the additional cookie to ensure that the same region used for the checkout process that provided the hotel rate information is used. [Examples]
[0086] In an exemplary implementation, a pre-search request sent to a search service (e.g., a hotel booking) includes a new field indicating that this request is an asynchronous search request, which includes initiating a search cycle. In one example, the new field is a Boolean value, where TRUE indicates that the request is for initializing the search cycle.
[0087] In an exemplary implementation, the search homepage (for example, a hotel) uses JavaScript, TypeScript, Node.js JavaScript, and React languages and frameworks; the BFF server (for example, a hotel) uses Node.js JavaScript language and frameworks; and the search service (for example, a hotel booking) uses Python and AIOHTTP languages and frameworks.
[0088] A pre-search request for the hotel booking search service may include one or more, or all, of the following parameters: 'market', 'locale', 'rooms', 'adults', 'currency', 'checkin_date', 'checkout_date', 'sorting_version', 'children_ages', 'source', 'cug_segments', 'fast_search', 't_version', 'trace_info'
[0089] Additional or alternative methods for reducing TTFR In an exemplary implementation, for client devices such as desktops, mobile devices, or tablets running their respective browser programs, the same content is provided to all devices, including components containing CSS and scripts (e.g., JavaScript), and CSS media queries are then performed by the browser to provide responsive rendering that changes depending on the device (e.g., desktop computer, laptop computer, internet TV, smartphone, tablet computer), for example, based on the browser screen width.
[0090] However, the majority of components used on a search home website (e.g., a hotel search home website), including CSS and scripts (e.g., JavaScript), have completely different designs for different devices such as desktop computers and mobile devices (e.g., smartphones), making it impossible or impossible to reuse components. For example, it is impossible or impossible to use CSS and scripts (e.g., JavaScript) on a desktop computer on a smartphone, and vice versa. For example, in the case of content delivered by a cloud-based frontend, the content includes separate components containing CSS and scripts (e.g., JavaScript) for each of multiple devices (e.g., desktop computers, laptop computers, internet TVs, smartphones, tablet computers), and the content is bundled together. When a user accesses a search home website (e.g., a hotel search home website) using a mobile device (such as a smartphone), the CSS and scripts (e.g., JavaScript) implemented for the desktop design of a desktop device are received but not used, and the CSS and scripts (e.g., JavaScript) implemented for the desktop design of a desktop device are downloaded to the mobile device browser but not executed. This downloaded but unused content can significantly increase the Time To Stream (TTFR) because it requires downloading more data from the cloud-based frontend before search results can be received from the search service server (e.g., a hotel booking search service). TTFR is especially high if the user is using a low network speed (e.g., 3G), as all CSS and script (e.g., JavaScript) content must be downloaded, executed, and / or processed before the user can receive search results.
[0091] Therefore, to reduce TTFR, when a browser fetches CSS and script files from a cloud-based front-end server, the browser identifies the client device class (e.g., desktop computer, laptop computer, internet TV, smartphone, tablet computer) to the cloud-based front-end server, and in response, the cloud-based front-end server returns a corresponding selected set of CSS and script files to the device, which is selected based on the client device class identified by the browser. For example, if the browser identifies the client device class as a smartphone to the cloud-based front-end server, the cloud-based front-end server returns a corresponding set of CSS and script files to the device, selected based on the client device class being a smartphone identified by the browser. For example, if the browser identifies the client device class as a desktop computer to the cloud-based front-end server, the cloud-based front-end server returns a corresponding set of CSS and script files to the device, selected based on the client device class being a desktop computer identified by the browser.
[0092] In another example, TTFR can be reduced by reducing the polling interval.
[0093] Other search services While the above emphasizes applications related to hotel booking search services, other applications are also possible, such as flight search services, rental vehicle search services (e.g., cars, automobiles, vans, trucks, boats, ships, aircraft, motorcycles), mortgage search services, insurance search services (e.g., auto insurance, home insurance, travel insurance, life insurance, pet insurance), money loan search services, mortgage search services, mobile phone purchase search services, broadband transaction search services, real estate search services, rental accommodation search services, and dating search services.
[0094] Cascading Style Sheets (CSS) Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation of documents written in markup languages such as Hypertext Markup Language (HTML) or Extended Markup Language (XML) (including, for example, Scalable Vector Graphics (SVG), Math Markup Language (MathML), or XML dialects such as Extended Hypertext Markup Language (XHTML)). Along with HTML and JavaScript, CSS is a foundational technology of the World Wide Web.
[0095] CSS is designed to allow for the separation of content and presentation, including layout, color, and fonts. This separation improves content accessibility and provides greater flexibility and control in specifying presentation characteristics; it allows for the sharing of formatting across multiple web pages by specifying related CSS in separate .css files, which reduces complexity and repetition in structured content; and it allows for improved page loading speed between pages by enabling caching of .css files to share files and their formatting.
[0096] Separating formatting from content also allows the same markup page to be presented in different styles for different rendering methods, such as on screen, during printing, via audio (e.g., through a voice-based browser or screen reader), and on braille-based haptic devices. CSS also has rules for alternative formatting when content is accessed on mobile devices.
[0097] JAVASCRIPT JavaScript (often abbreviated as JS) is a programming language that, along with HTML and CSS, is one of the core technologies of the World Wide Web. As of 2022, 98% of websites use JavaScript on the client side to make their web pages function, and often incorporate third-party libraries. All major web browsers have a dedicated JavaScript engine for executing code on the user's device.
[0098] JavaScript is a high-level, often just-in-time compiled language that conforms to the ECMAScript standard (ECMAScript is a JavaScript standard aimed at ensuring interoperability of web pages across various browsers). JavaScript features dynamic typing, prototype-based object-oriented programming, and first-class functions. It is multi-paradigm and supports event-driven, functional, and imperative programming styles. It has an Application Programming Interface (API) for working with text, dates, regular expressions, standard data structures, and the Document Object Model (DOM).
[0099] The ECMAScript standard does not include input / output (I / O) functions such as networking, storage, and graphics capabilities. In practice, web browsers or other runtime systems provide JavaScript APIs for I / O.
[0100] While JavaScript engines were originally used only in web browsers, they are now core components of some servers and various applications. The most common runtime system for this purpose is Node.js.
[0101] HTML elements An HTML element is a type of HTML (Hypertext Markup Language) document component, and is one of several types of HTML nodes (including text nodes, comment nodes, etc.). An HTML document consists of a tree of simple HTML nodes, such as text nodes, and HTML elements that add semantics and formatting to parts of the document (for example, making text bold, organizing into paragraphs, lists, and tables, embedding hyperlinks and images). Each element can have specified HTML attributes. An element can also have content, including other elements and text.
[0102] Elements and tags As is generally understood, the position of an element is indicated as spanning from its opening tag and terminated by its closing tag. This is true for many, though not all, elements in an HTML document. Certain tags can be omitted. Omitting the opening tag of an element does not mean that the element does not exist; it is implied to exist, but it still does. Informally, HTML elements are sometimes referred to as "tags," but often the term "tag" is preferred more strictly to refer to the markup that separates the beginning and end of an element.
[0103] server When the term "server" is used, it may refer to a single server, a group of servers, or a server in a cloud, as will be obvious to those skilled in the art.
[0104] Note It should be understood that the above configuration is merely illustrative of the principles of the present invention. Numerous modifications and alternative configurations can be devised without departing from the spirit and scope of the present invention. Although the present invention is shown in the drawings and is fully described above in particular and in detail in relation to what is currently considered to be the most practical and preferred example of the present invention, it will be apparent to those skilled in the art that numerous modifications can be made without departing from the principles and concepts of the present invention described herein.
Claims
1. A computer implementation method for retrieving search results using a browser running on a client device, a search home website, a front-end backend (BFF) server, and a search service server, (i) The browser running on the client device sends a search request to the search home website, the search request including search parameters, (ii) The search home website sends an asynchronous pre-search request to the search service server, the asynchronous pre-search request includes the search parameters, and the search service server responds to the asynchronous pre-search request by starting a search cycle using the search parameters; (iii) The browser receives HTML data including cascading style sheets (CSS) and script tags from the search homepage website, (iv) The browser executes the CSS and script tags to download the CSS and script files from the front-end server, (v) The browser parses the CSS file and renders a web page component including the web page style, (vi) The browser executes the script file so that the client device, including the browser, establishes a persistent connection to the front-end backend (BFF) server and sends the search parameters to the BFF server, and the BFF server polls the search service server using the search parameters. (vii) The search service server recognizes that the search parameters received in step (vi) correspond to the search parameters received in step (ii), and using the search cycle initiated in step (ii), provides the BFF server with a first search result from the search cycle in response to the polling from the BFF server. (viiii) The BFF server sends the first search result to the browser running on the client computer, (ix) A computer implementation method comprising the step of the browser providing the first search results for display on the screen of the client device.
2. The method according to claim 1, wherein the search request is a search request for hotel reservations.
3. The method according to claim 1, wherein the search request is a search request for flights or rental vehicles (e.g., cars, automobiles, vans, trucks, boats, ships, aircraft, motorcycles), or mortgages or insurance (e.g., auto insurance, home insurance, travel insurance, life insurance, pet insurance), or money loans or mortgages, or mobile phone purchases or broadband transactions, or real estate, or rental accommodations, or dating.
4. The method according to any one of the prior claims, wherein the client device is a desktop computer, a laptop computer, an internet TV, a smartphone, or a tablet computer.
5. The method according to any one of the prior claims, wherein the client device is connected to the Internet wirelessly (for example, cellular or Wi-Fi).
6. The method according to any one of claims 1 to 4, wherein the client device is connected to the Internet by a wired connection.
7. The method according to any one of the prior claims, wherein the front-end server is a cloud server.
8. The method according to any one of the prior claims, wherein the front-end server is a content delivery network (CDN), for example, a static file server.
9. The method according to any one of the prior claims, wherein the BFF server is used to provide language translation, translate the results in a first language received from the search service server into a second language, and transmit the results in the second language to the browser running on the client device.
10. The method according to any one of the prior claims, wherein the BFF server polls the search service server at intervals and requests the search service server to transmit data relating to the asynchronous pre-search request sent to the search service server.
11. The method according to any one of the prior claims, wherein the BFF server receives all the search results, transmits them to the client device including the browser, renders them in the browser, and then polls the search service server at intervals until the client device including the browser closes the persistent connection, requesting the search service server to transmit data related to the asynchronous pre-search request transmitted to the search service server.
12. The method according to any one of the prior claims, wherein the search cycle includes the search service server using an external service to obtain search data relating to the search results.
13. The method according to any one of the prior claims, wherein the search homepage checks whether the search request is coming from a bot, and if it is determined that the search request is not coming from a bot, the search process continues.
14. The method according to any one of the prior claims, wherein the gateway associated with the search home website server selects a geographic region from a plurality of geographic regions, then routes the search request received from the browser to a group of servers in the geographic region, the group of servers includes the BFF server and the search service server, the search service website returns an identifier associated with the selected geographic region to the browser, and the browser uses the identifier associated with the selected geographic region to enable the gateway to route the search request received from the browser to the group of servers in the geographic region.
15. The method according to claim 14, wherein the browser uses cookies, for example, session cookies, to set the selected geographic region.
16. The method according to claim 14 or 15, wherein when the persistent connection is established to poll the search service, the request header includes the region obtained from the cookie, for example, the session cookie.
17. The method according to any one of the prior claims, wherein the BFF server provides first search data (e.g., static hotel information) to the browser running on the client device, and only if the browser running on the client device requests second search data (e.g., relevant fee information), the second search data (e.g., relevant fee information) is provided later.
18. The method according to claim 17, wherein a regional identifier is transmitted from the BFF server to the browser and stored, for example, as a cookie.
19. The method of claim 18, wherein a request from the browser running on the client device for the second search data (e.g., relevant fee information) is transmitted from the BFF server to the browser and includes the regional identifier, which is stored, for example, as a cookie.
20. The method according to claim 19, wherein after the BFF server transmits the second data (e.g., hotel price information) to the client device including the browser, the BFF server transmits a further regional identifier from the BFF server to the browser, which is stored on the client device, for example, in a further cookie.
21. The method of claim 20, wherein, after the checkout process has been requested from the browser to the BFF server, the request includes, for example, the further regional identifier from a further cookie, to ensure that the same region is used for the checkout process used to provide the second data (e.g., hotel rate information).
22. The method according to any one of the prior claims, indicating that the pre-search request transmitted to the aforementioned (e.g., hotel booking) search service is an asynchronous search request, which includes a field, and that the request initiates the search cycle.
23. The method according to any one of the prior claims, wherein the (e.g., hotel) search homepage uses JavaScript, TypeScript, Node JavaScript, and React languages and frameworks, the (e.g., hotel) BFF server uses the Node JavaScript language and frameworks, and the (e.g., hotel reservation) search service uses Python and AIOHTTP languages and frameworks.
24. The method according to any one of the prior claims, wherein when the browser is fetching the CSS and script files from the front-end server, the browser identifies the client device class (e.g., desktop computer, laptop computer, internet TV, smartphone, tablet computer) to the front-end server, and the browser receives a corresponding selected set of CSS and script files corresponding to the client device class identified by the browser in response from the front-end server.
25. The method according to any one of the prior claims, wherein the script file is a JavaScript file.
26. A system including a client device, which includes a browser program, a search home website, a front-end backend (BFF) server, and a search service server, the system configured to perform the method according to any one of claims 1 to 25.
27. A client device including a browser program for the system according to claim 26.
28. A search home website for the system described in claim 26.
29. A front-end backend (BFF) server for the system according to claim 26.
30. A search service server for the system described in claim 26.
31. A system including a client device with a browser program and screen, a search home website, a front-end back-end (BFF) server, and a search service server, (i) The browser is configured to run on the client device and send a search request to the search home website, and the search request includes search parameters, (ii) The search home website is configured to send an asynchronous presearch request to the search service server, the asynchronous presearch request includes the search parameters, and the search service server is configured to respond to the asynchronous presearch request by initiating a search cycle using the search parameters. (iii) The browser is configured to receive HTML data including cascading style sheets (CSS) and script tags from the search homepage website. (iv) The browser is configured to execute the CSS and script tags and download the CSS and script files from the front-end server. (v) The browser is configured to parse the CSS file and render web page components including web page styles, (vi) The browser is configured to execute the script file, and in response to the browser executing the script file, the client device including the browser is configured to establish a persistent connection to the front-end backend (BFF) server and send the search parameters to the BFF server, and the BFF server is configured to poll the search service server using the search parameters. (vii) The search service server is configured to recognize that the search parameters received in (vi) correspond to the search parameters received in (ii), and to use the search cycle initiated in (ii) to provide the BFF server with a first search result from the search cycle in response to polling from the BFF server. (viiii) The BFF server is configured to send the first search results to the browser running on the client device, (ix) A system in which the browser is configured to provide the first search results for display on the screen of the client device.
32. The system according to claim 31, wherein the system is configured to perform the method described in any one of claims 1 to 25.
33. A client device including a browser program for the system according to claim 31 or 32.
34. A search home website for the system according to claim 31 or 32.
35. A front-end backend (BFF) server for the system according to claim 31 or 32.
36. A search service server for the system according to claim 31 or 32.
37. A system including a search homepage, a backend for frontend (BFF) server, a frontend server, and a search service server, (i) The search homepage is configured to receive search requests from a browser running on a client device, and the search request includes search parameters, (ii) The search home website is configured to send an asynchronous presearch request to the search service server, the asynchronous presearch request includes the search parameters, and the search service server is configured to respond to the asynchronous presearch request by initiating a search cycle using the search parameters. (iii) The search homepage is configured to send HTML data including cascading style sheets (CSS) and script tags to the browser, and the CSS and script tags are executable in the browser to download the CSS and script files from the front-end server. (iv) The front-end server is configured to send the CSS and script files to the browser, the CSS file being parsable by the browser to render web page components including web page styles, the script file being executable by the browser to establish a persistent connection to a front-end back-end (BFF) server and send the search parameters to the BFF server, and the BFF server being configured to poll the search service server using the search parameters. (v) The search service server is configured to recognize that the search parameters received in (iv) correspond to the search parameters received in (ii), and to use the search cycle initiated in (ii) to provide the BFF server with a first search result from the search cycle in response to a poll from the BFF server. (vi) A system in which the BFF server is configured to transmit the first search results to the browser running on the client device and to provide the first search results for display on the screen of the client device.
38. The system according to claim 37, wherein the system is configured to perform the method described in any one of claims 1 to 25.
39. A front-end server for the system according to claim 37 or 38.
40. A search home website for the system according to claim 37 or 38.
41. A front-end backend (BFF) server for the system according to claim 37 or 38.
42. A search service server for the system according to claim 37 or 38.
43. A computer implementation method for retrieving search results using a search homepage, a front-end back-end (BFF) server, a front-end server, and a search service server, (i) The search homepage receives a search request from a browser running on a client device, and the search request includes search parameters, (ii) The search home website sends an asynchronous pre-search request to the search service server, the asynchronous pre-search request includes the search parameters, and the search service server responds to the asynchronous pre-search request by starting a search cycle using the search parameters; (iii) The search homepage sends HTML data including cascading style sheets (CSS) and script tags to the browser, and the CSS and script tags are executable in the browser to download the CSS and script files from the front-end server. (iv) The front-end server sends the CSS and script files to the browser, the CSS file is parsable by the browser to render web page components including web page styles, the script file is executable by the browser to establish a persistent connection to a front-end back-end (BFF) server and send the search parameters to the BFF server, the BFF server polls the search service server using the search parameters, (v) The search service server recognizes that the search parameters received in step (iv) correspond to the search parameters received in step (ii), and using the search cycle initiated in step (ii), provides the BFF server with a first search result from the search cycle in response to a poll from the BFF server. (vi) A method comprising the step of the BFF server sending the first search results to the browser running on the client device and providing the first search results for display on the screen of the client device.
44. The method according to claim 43, wherein the method includes the method according to any one of claims 1 to 25.