downloading a web page optimized for event-driven traffic spikes
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- ORANGE SA
- Filing Date
- 2023-11-09
- Publication Date
- 2026-06-26
Abstract
Description
Title of the invention: downloading a web page optimized for event-related traffic peaks FIELD OF THE INVENTION
[0001] The present invention relates to the downloading from a server to a telecommunications client of a web page referencing a set of elements to be dynamically determined. It applies particularly to web pages of web applications that may face significant traffic peaks, such as "web TV" type applications.
[0002] A Web TV type application aims to offer the usual services of a connected television from a browser that can connect to a website. A user of a computer or any telecommunications device (such as a digital tablet, smartphone, etc.) can thus connect to the “web TV” application and view a chosen audio or audio-video program via their browser.
[0003] “Web TV” type applications thus aim to offer a bouquet of audio and / or video content to users, this content being able to be broadcast live (or “live streaming” in English) or delayed in the form of videos on demand.
[0004] Such an application can aggregate content from different sources.
[0005] The content offering may vary over time, particularly because audio-video content is by nature linked to current events, but also because content providers may regularly update their offering for marketing reasons.
[0006] Also, the content offering may vary depending on the users. They may be registered with the application and have access to content that may therefore depend on their profile, including channels or packages to which they have subscribed.
[0007] It therefore appears that the application cannot present a static web page, at least as a home page, but a page dynamically constructed depending on the time at which the request is received and the user from whom this request comes.
[0008] The web page then typically consists of a minimal static frame and references to elements that are dynamically incorporated into the page, in order to construct this web page on demand so that it can be produced on the human-machine interface of the user's browser.
[0009] These elements can in particular be determined by computer code (typically in Javascript language) incorporated or referenced in the frame of the web page. This computer code is intended to retrieve dynamic elements in databases based for example on contextual parameters (identifier of the user, current time, etc.) and the logic implemented by the computer code.
[0010] When it receives a request from a user's client (telecommunications terminal, computer, etc. hosting a web browser), the server hosting the web application can return the web page frame, leaving it up to the client to execute the computer code and determine and then download the various constituent elements of the web page, in order to produce it on the terminal screen.
[0011] However, a "web TV" type application can have a commercial purpose and therefore obtain the greatest possible visibility on the Web. This visibility requires good referencing with the various search engines.
[0012] Therefore, the server hosting the web application cannot return only this web page frame and the computer code because they would not be correctly processed by search engines. In particular, these are not adapted to execute the computer code and therefore could not retrieve the different constituent elements of the web page. Therefore, search engines could not take into account the content of these pages and therefore could not reference them correctly.
[0013] The web page must therefore be constructed by the server and transmitted to the clients, once constructed, that is to say after integration of the different constituent elements, dynamically determined.
[0014] This type of operation is generally called SSR for “Server Side Rendering” in English.
[0015] This is a technique used in web development that involves using scripts on a web server that produce a customized response for each user (client) request on the website. Scripts can be written in any of the available server-side scripting languages (such as Javascript, PHP, Python...). SSR is distinct from client-side rendering, in which embedded scripts are executed client-side in a web browser, but the two techniques are often used together. The alternative to either or both types of scripting is for the web server itself to provide a static web page.
[0016] This technique therefore places a significant load on the server, which must be able to construct web pages on the fly for each request received from a user. Conventionally, servers are sized to cope with the load induced by this operation. However, in the context of a Web TV type application, as previously explained, the server must cope with a high variability in the number of requests over time and extremely large peaks.
[0017] For example, before an important event (speech by the President of the Re-
[0018]
[0019]
[0020]
[0021]
[0022]
[0023] public, start of a sports competition match, announcement of a disaster, etc.), the server can receive a number of requests several dozen times higher than the nominal rate (a few minutes before). Sizing the server based on these load peaks would be theoretically possible, but would require, on the one hand, predicting the maximum intensity of these peaks, and also having resources that are far too large for the nominal regime. To the extent that these load peaks can be relatively exceptional or at least infrequent, this oversizing would be suboptimal in terms of costs for the server operator and detrimental in ecological terms. There is therefore a need to improve current state-of-the-art proposals. Summary of the invention The invention aims to efficiently manage traffic peaks on servers deploying web applications, particularly of the "web TV" type, with a referencing constraint, and by avoiding oversizing the servers. For these purposes, according to a first aspect, the present invention can be implemented by a method of downloading a web page from a server to a client through a telecommunications network, said method comprising steps of: - transmission of a request designating a page, said page referencing a set of so-called dynamic elements, requiring to be dynamically determined; - determination of a load by said server; - dynamic determination of a subset of said set whose cardinality depends on said load, and incorporation of said subset into said page; - transmission to said client of said page. Thus, the computational work that the server must deploy to transmit a requested page can be dynamically adapted to its load. According to preferred embodiments, the invention comprises one or more of the following features which may be used separately or in partial combination with each other or in total combination with each other: - said server determines the entire set of dynamic elements if said load is below a determined threshold. The fully constituted page (i.e. with all the determined dynamic elements) can be directly processed by the client, in particular if the client is not adapted to make these determinations like a search engine. - the method further comprises a step of determination by said client of the remainder of said set (when this remainder exists). The client can thus produce a complete page on a human-machine interface, even when the server has not determined all of the dynamic elements. - said elements are dynamically determined by the execution of computer codes contained or referenced in said web page. - said load includes the load of a microprocessor of said server. - the said cardinal also depends on the said client. It is thus possible to carry out sampling on the clients in order to manage the server load optimization differently.
[0024] Another aspect of the invention relates to a server accessible to a client through a telecommunications network, comprising at least one processor adapted to put in work: - a reception of a request designating a page, said page referencing a set of so-called dynamic elements, requiring to be dynamically determined; - a determination of a load by said server; - a dynamic determination of a subset of said set whose cardinality depends on said load, and incorporation of said subset into said page; - and a transmission to said client of said page
[0025] According to one embodiment, said client can then determine the remainder of said set.
[0026] Another aspect of the invention relates to a computer program capable of being implemented on a web server, the program comprising code instructions which, when executed by a processor, carry out the steps of the method as previously defined.
[0027] Another aspect of the invention relates to a data medium on which at least one series of program code instructions has been stored for the execution of a method as previously defined.
[0028] Other characteristics and advantages of the invention will appear on reading the following description of a preferred embodiment of the invention, given by way of example and with reference to the appended drawings. BRIEF DESCRIPTION OF THE FIGURES
[0029] [Fig.l] illustrates a context for implementing a method and a server, according to embodiments of the invention,
[0030] [Fig.2] illustrates an example of a graphical interface that can be displayed by a screen associated with a client, according to an embodiment of the invention,
[0031] [Fig. 3] shows a diagram of a timing diagram according to an embodiment of the invention.
[0032] DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0033] [Fig. 1] illustrates a context for implementing a server S capable of hosting a web application A.
[0034] This server S is accessible to clients through a telecommunications network N.
[0035] This telecommunications network can typically be composed of several interconnected networks, in particular an access network allowing customers to connect to a main network (itself made up of an interconnection of subnetworks) or “backbone” in English.
[0036] The clients can be locally connected to a local area network, LN, for example a wireless local area network, allowing them to access a gateway P to the access network. This wireless local area network, commonly called WLAN for "Wireless Local Area Network" in English, can comply with the Wi-Fi protocols, or wifi, as specified in the IEEE 802.11 family (or ISO / IEC 8802-11) standards documents.
[0037] The client can also directly access the access network, for example a third, fourth, fifth generation cellular network (3G / 4G / 5G) for example.
[0038] The clients can be of different natures, their common feature being to have means allowing connection to the network. These are essentially radiocommunication components and electronic and computer components allowing the implementation of the protocol stacks necessary for the management of the protocols associated with the network and the reception and transmission of data packets.
[0039] In [Fig.l], three types of clients are represented: a computer ORD, a mobile communication terminal, MOB, and a connected television TV.
[0040] The mobile terminal MOB is typically a smartphone type smart phone or a digital tablet.... The computer can be a fixed computer (or "desktop" according to the English vocabulary) or portable (or "laptop").
[0041] The TV can be natively connected or connected via an associated device such as, for example, an HDMI key connected to the TV.
[0042] An example of an external device communicating with a TV is Chromecast. Chromecast is a real-time media streaming device (media gateway) developed and marketed by Google. The device plugs into the HDMI port of a TV and communicates, via Wi-Fi, with another device connected to the Internet (computer, smartphone, tablet, etc.), in order to display on the TV the multimedia content received from an application compatible with Google Cast technology, from the Google Chrome browser on a computer, or from certain Android devices.
[0043] In the illustrative example of [Fig.l], the clients ORD and TV can access the web application A via the local network LN and the gateway P. The client MOB accesses the web application A directly via the telecommunications network N. These two types of access are illustrative and essentially aim to show the diversity of possible connections between a client and the web application A.
[0044] Clients have software tools adapted to allow the user to connect to a web application and to view content transmitted from this web application. In particular, in the case of a web application of the “Web TV” type, the software tool (commonly called “browser” or “web browser” in English) is adapted to allow the production of audio or audio-video content on a human-machine interface associated with the client (client screen, external screen connected to the client, etc.)
[0045] Audio or audio-video content includes live broadcast content that may be linked to television channels, radio broadcasts, etc. It may also be on-demand content (podcast, video on demand, VoD (“video on demand”), etc.).
[0046] The web application A is intended to provide, upon request from clients, web pages referencing different elements.
[0047] These elements may correspond to areas of the web page, the content of which may be individually determined. For example, in the case of a “web TV” type application, the elements may correspond to channels, particular video content, menus, advertising spaces, etc.
[0048] The elements may be associated with both a visual or graphical representation, and a behavior, particularly when pointed at or selected by the user.
[0049] For example, video content may be highlighted or animated differently when the user points at it (e.g., using a mouse or remote control), and triggered to play full screen when selected.
[0050] Selecting other items may result in other actions, such as opening a new web page.
[0051] In particular, the first page, or home page, can thus be dynamically determined. The web application can also contain dynamically determined pages and static pages (pure HTML code). Some pages can also be a mix of the two, i.e. contain static elements and elements to be determined dynamically.
[0052] [Fig.2] illustrates an example of a graphical interface that can be displayed by a screen associated with a client. This example page can be a home page.
[0053] This graphical interface can display, concomitantly, content, or flow, video in a Cl zone, and a NAV navigation zone allowing interactions with the terminal user and in particular allowing the video stream to be displayed in the Cl zone to be changed.
[0054] The navigation zone NAV comprises a set of zones CS1, CS2, CS3, CS4, CS5 intended for the display of secondary video streams, or content. These secondary contents may, for example, correspond to other television channels.
[0055] Selecting a secondary zone can trigger the display of secondary video content in the main zone CL. The content previously displayed in this main zone Cl can then be displayed in a secondary zone. The user can thus zap from one video content to another video by means of this graphical interface.
[0056] The navigation area may also include menus M1, M2, M3, M4, M5, allowing other navigation options, for example changing the source of multimedia content: this may for example involve connecting to another content server SC, retrieving locally stored multimedia content, etc.
[0057] The graphical interface may include other elements not shown in the figure: menus, drop-down menus or others, accessible for example by means of the selection of a menu M1, M2, ML3, M4, M5, or a key on a remote control associated with the terminal 10, etc. These elements may allow access to still other options, for example to all the available television channels.
[0058] As previously specified, elements of this page can be dynamically determined in order to reflect the different contents available and accessible to the user depending on his profile and the current time. The web page therefore references these elements which must be determined dynamically, and which will subsequently be called “dynamic elements”.
[0059] The web page may also include static elements, i.e. elements that do not have to be dynamically determined. These static elements do not depend on current events or the user: they may be general information, graphic elements of the web page that are always present, the CSS style sheet, etc.
[0060] According to one embodiment, the web page may be a canvas, or a frame, comprising very few static elements and mainly consisting of elements that must be determined dynamically (dynamic elements).
[0061] Referencing elements in a web page can be done by any known means. These are typically tags or keywords from the HTML language (HyperText Markup Language).
[0062] In particular, the referencing of an element to be dynamically determined can be done by technical means making it possible to automatically trigger this determination. These technical means can be links to resources containing computer code.
[0063] This computer code can be scripts written in one of the available server-side scripting languages (such as Javascript, PHP, Python...).
[0064] It is intended to retrieve dynamic elements from databases based, for example, on contextual parameters (user ID, current time, etc.) and the logic implemented by the computer code. In particular, it may be intended to retrieve the visuals of a video broadcast, a television channel, a menu, as well as the associated actions (in particular allowing the triggering of the downloading of the associated multimedia content from a content server).
[0065] [Fig.3] shows a diagram of a timing diagram according to one embodiment of the invention.
[0066] In a step SI, the client C transmits a request ml to the server S. This request designates a page available on this server. This page can, for example, be the home page. This can be designated by the URL (for "Unified Resource Locator" in English, or any other address previously provisioned on the client.
[0067] The request may comply with the HTTP protocol (for “HyperText Transfer Protocol” in English).
[0068] This may in particular be a GET request of this HTTP protocol.
[0069] In a step S2, the server S can determine its load. This load represents the capacity of the server to be able to process the different requests ml received from the different clients.
[0070] The main contributions to this server load may be the load on the microprocessor(s) and, possibly, the load on the server's RAM. Other limiting factors may also be considered. When several factors are considered, the load may aggregate these different factors in order to establish a metric for effectively evaluating the server's capacity to process requests.
[0071] According to another embodiment, the load of the server S can be estimated by a number of requests received per unit of time.
[0072] This load can be periodically determined, for example at regular intervals. When a request is received, the latest estimate is then taken into account. According to another embodiment, the load of the server S is determined upon receipt of a request ml.
[0073] In a step S3, the server S dynamically determines a subset of all the elements referenced in the web page requested by the client. The cardinality of this subset depends on the load determined in step S2. The elements determined by the server are then incorporated into this web page.
[0074] Thus, the number or proportion of dynamic elements actually determined by the server may vary depending on the server load S.
[0075] Among the set of elements to be dynamically determined, the server can for example determine all of these elements when the load is low or none of these elements when the load is high. Between these two extreme situations, a balance can be carried out according to progressive thresholds or a linear function, or according to any other mechanisms.
[0076] Generally speaking, we can for example determine a proportion P of dynamic elements determined by the server S according to an expression linking this proportion to the load L:
[0077] [Math.l] P = .f\Q
[0078] In which f() is a decreasing function: the higher the load L, the lower the proportion P.
[0079] According to one embodiment, the proportion is equal to 100% as long as the load L is below a determined threshold. In other words, in this situation the server determines the entire set of dynamic elements.
[0080] When the proportion is not equal to 100%, that is to say when the subset of dynamic elements determined by the server is less than the number of dynamic elements referenced in the web page, the identification of these dynamic elements of this subset can be carried out in different ways.
[0081] According to one embodiment, the identification of these dynamic elements can be arbitrary: for example, in the order of the web page, the first dynamic elements are determined by the server S until the proportion P is reached.
[0082] According to another embodiment, the subset is chosen from among the least expensive dynamic elements to determine for the server.
[0083] For example, dynamic elements linked to the user's profile (for example, television channels or packages to which he has subscribed) are more expensive because they require an analysis of this profile and less easily allow sharing for a large number of customers. Also, being more expensive, they may not be determined by the server S.
[0084] The server can, on the other hand, preferentially determine the dynamic elements linked to current events, for example.
[0085] According to one embodiment, the subset is also determined according to the client C. The subset, both in its content and in its cardinality, can be different according to the clients.
[0086] In particular, the cardinality of each client's subset can be made to depend on the load, so that the processing induced by a large number of clients is adapted to the load. The higher the load on the server, the fewer clients C will be cor- served directly.
[0087] For example, it is thus possible to establish a proportion of clients, P' (“P prime”), as a function of the server load. Depending on this load L, it may be chosen to determine all (or a high proportion PI) of the dynamic elements for a proportion P' of clients, and to determine none (or a proportion P2 lower than PI) of the dynamic elements for the other clients.
[0088] The choice of customers can also be made in different ways, including arbitrarily: for example, by one customer every N customers with N=100 / P'.
[0089] Thus, according to the different embodiments, the adaptation to the server load can be done by determining a subset whose cardinality is determined uniformly for all clients or, on the contrary, adapted for each client.
[0090] The elements dynamically determined by the server S are incorporated into the web page.
[0091] In case the server load is high, a static page can be transmitted to the client C. Instead of transmitting a web page with undetermined dynamic elements, these can be replaced by static elements.
[0092] Thus the web page may contain information that is either a little old and not dynamically updated, or generic information. For example, a static image may represent a television channel by its logo, rather than by an image of the current program or the flagship program of the day.
[0093] In a step S4, the web page is transmitted to the client C in a message m2.
[0094] According to one embodiment, just like the ml request message, this message m2 response can be compliant with the HTTP protocol. According to the protocol, a set of m2 messages can be transmitted in order to convey the different constituent elements of the web page.
[0095] In a step S5, the client C can analyze the web page and the various elements received in order to be able to produce the web page on a human-machine interface. In particular, the client C determines the remainder of the elements of the set which have not been determined on the server side.
[0096] Thus, any dynamic element referenced in the web page can be determined either by the server S or by the client C. Thus, the web page produced on the human-machine interface can be complete and not impact the user experience.
[0097] The proportion of dynamic elements determined by the server versus by the client depends on the server load. When the server is loaded, more (possibly all) dynamic elements are determined by the client, while when the load is low all dynamic elements are preferentially determined by the server S.
[0098] When the server is loaded and not all dynamic elements are determined, it is possible that a search engine retrieves an incomplete web page. In this case, since it cannot determine the dynamic elements itself, it will not be able to correctly reference the web page.
[0099] However, the probability that a search engine will send a request to the server during a peak in its activity is relatively low. In addition, search engines send requests regularly to the same page, so that the impact of poor ranking on a query is minimized over a set of queries.
[0100] Furthermore, it is considered that the slight inconvenience that may result from this low risk is favorably offset by maintaining a positive user experience, whatever the server load, and not oversizing the server.
[0101] Of course, the present invention is not limited to the examples and the embodiment described and shown, but is defined by the claims. It is in particular susceptible of numerous variants accessible to those skilled in the art.
Claims
Claims
1. Method for downloading a web page from a server (S) to a client (C) through a telecommunications network, said method comprising steps of: transmission (SI) of a request designating a page, said page referencing a set of so-called dynamic elements, requiring to be dynamically determined, determination (S2) of a load by said server dynamic determination (S3) of a subset of said set whose cardinality depends on said load, and incorporation of said subset into said page; transmission (S4) to said client of said page.
2. Method according to the preceding claim in which said server determines the entire set of dynamic elements if said load is below a determined threshold.
3. Method according to one of claims 1 or 2, further comprising a step of determination (S5) by said client of the remainder of said set.
4. Method according to one of the preceding claims, in which said elements are dynamically determined by the execution of computer codes contained or referenced in said web page.
5. Method according to one of the preceding claims, wherein said load comprises the load of a microprocessor of said server (S).
6. Method according to one of the preceding claims, wherein said cardinal further depends on said client.
7. Server (S) accessible to a client (C) through a telecommunications network, comprising at least one processor adapted to implement: a reception (SI) of a request designating a page, said page referencing a set of so-called dynamic elements, requiring to be dynamically determined; a determination (S2) of a load by said server; a dynamic determination (S3) of a subset of said set whose cardinal depends on said load, and incorporation of said subset into said page; and a transmission (S4) to said client of said page.
8. Computer program capable of being implemented on a multimedia stream playback terminal, the program comprising instructions
9. of code which, when executed by a processor, carries out the steps of the method defined in claims 1 to 6. Data carrier on which has been stored at least one series of program code instructions for the execution of a method according to one of claims 1 to 6.