WO2002101585A2 - Streaming of real-time data to a browser - Google Patents

Streaming of real-time data to a browser Download PDF

Info

Publication number
WO2002101585A2
WO2002101585A2 PCT/GB2002/002746 GB0202746W WO02101585A2 WO 2002101585 A2 WO2002101585 A2 WO 2002101585A2 GB 0202746 W GB0202746 W GB 0202746W WO 02101585 A2 WO02101585 A2 WO 02101585A2
Authority
WO
WIPO (PCT)
Prior art keywords
browser
data
real
batch
data items
Prior art date
Application number
PCT/GB2002/002746
Other languages
French (fr)
Other versions
WO2002101585A3 (en
Inventor
Ian Alderson
Original Assignee
Caplin Systems Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Caplin Systems Limited filed Critical Caplin Systems Limited
Priority to US10/480,529 priority Critical patent/US20040201618A1/en
Publication of WO2002101585A2 publication Critical patent/WO2002101585A2/en
Publication of WO2002101585A3 publication Critical patent/WO2002101585A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Definitions

  • This invention relates to the field of streaming real-time data to a browser.
  • the World Wide Web is based on hypertext, which can be thought of as text which is not constrained to be sequential.
  • the Web can handle much more than just text, so the more general term hypermedia is used to cover all types of content, including but not Umited to pictures, graphics, sound and video.
  • the primary language for representing hypermedia content on the Web is HTML, other markup languages are constantly developing, including, for example, XML.
  • HTML defines the structure and layout of a Web document by reference to a number of pre-defined tags with associated attributes.
  • the tags and attributes are interpreted and the web page is accordingly displayed by a client application running on a computer, commonly referred to as a browser.
  • HTML Although the use of HTML on its own produces essentially static Web pages, it is well known to use scripting languages such as JavascriptTM to enhance HTML functionality; the combination is often referred to as Dynamic HTML.
  • the current generation of browsers use a document object model (DOM) to represent web pages internally.
  • DOM document object model
  • This is an application programming interface for valid HTML and well-formed XML documents. It defines the logical structure of a document and the way in which the document can be accessed and manipulated. In particular, it makes all of the content on a page available to scripting code and enables programs and scripts to dynamically access and update the content, structure and style of documents.
  • share prices displayed on a browser screen in the form of a table are each represented in the browser's document object model as a text object.
  • the browser can be arranged to display real-time updates of each share price by continuously overwriting each text object in the document object model with data items streamed from a real-time data source.
  • the browser screen is required to display a substantial amount of real-time data.
  • the provision of a large amount of constantly changing information to a browser can place an intolerably high load on the system processor, causing the display of updates to be delayed and in extreme cases, cause the browser to stop responding, resulting in the need to close and restart the browser or even reboot the entire system.
  • the continuous provision of real-information is crucial to obtain a commercial advantage, such behaviour is unacceptable.
  • the present invention aims to address the above problem.
  • a method of sending real-time data to a browser for display by the browser wherein the browser is operative to update its display on receipt of a data item for display, the method comprising the steps of receiving a plurahty of data items from a real-time data source, storing the plurahty of data items as a batch and sending the batch of data items to the browser at a predetermined time.
  • sending the data items to the browser as a batch aUows the browser to perform a single updating procedure to update the screen, rather than having to repeatedly update the screen every time a single data item arrives.
  • the batch of data items may be stored at the server to which the browser connects to obtain the real-time data, before being sent to the browser, or data items can be individually streamed from the server and stored as a batch at the chent computer on which the browser runs.
  • the batch storage method can comprise queuing the data items.
  • the batch of data items can be sent to the browser from the server or from the chent computer at predetermined intervals, for example around 4 times per second. The interval chosen should allow sufficient updates to be gathered to improve browser operation, without prejudicing the real-time nature of the data.
  • the step of sending the batch of data items to the browser can include writing all of the data items in the batch to the document object model concurrently.
  • the method can further include replacing a data item in the batch with an updated data item from the real-time source.
  • a server for providing realtime data to a browser comprising means for receiving a plurahty of data items from a real-time data source, means for storing the plurahty of data items as a batch and means for streaming the batch of data items to the browser at a predetermined time.
  • a program for providing real-time data to a browser comprising means for receiving a plurahty of data items from a real-time data source, means for storing the plurahty of data items as a batch and means for streaming the batch of data items to the browser at a predetermined time.
  • Figure 1 is a schematic diagram of an Internet based system for accessing real-time streaming data
  • Figure 2 is a schematic diagram of the architecture of a typical computer
  • Figure 3 illustrates a document object model corresponding to a first code extract
  • Figure 4 is a screen-shot corresponding to the first code extract
  • Figure 5 is a flow chart explaining the streaming of real-time financial data to a web browser in accordance with a first aspect of the invention
  • Figure 6 is a flow chart illustrating an improvement to the method of Figure 5;
  • Figure 7 is a flow chart explaining the streaming of real-time financial data to a web browser in accordance with a second aspect of the invention.
  • Figure 8 is a flow chart illustrating an improvement to the method of Figure 7.
  • Figure 1 is a schematic diagram of an Internet based system in which a chent computer 1 connects to a server computer 2 via the Internet 3.
  • the client computer 1 is capable of running browser software 4, for example, Internet ExplorerTM or Netscape NavigatorTM for viewing web pages provided by web server software 5 at the server computer 2.
  • a further server computer 6 provides a source of real-time data and its functionality will be described in detail below.
  • the chent computer 1 and server computers 2, 6 are conventional computers, an example architecture for which is shown in Figure 2.
  • Each computer 1, 2, 6 comprises a central processing unit (CPU) 7 for executing computer programs and managing and controlling the operation of the computer.
  • the CPU 7 is connected to a number of devices via a bus 8, the devices including a read/write device 9, for example a floppy disk drive for reading and writing data and computer programs to and from a removable storage medium such as a floppy disk 10, a storage device 11 , for example a hard disk drive for storing system and application software, a CD- ROM drive 12 and memory devices including ROM 13 and RAM 14.
  • the computer further includes a network card 15 for interfacing to a network 3 and user input/output devices, such as a mouse 16, keyboard 17 and display 18.
  • DOM document object model
  • the DOM is an application programming interface (API) for documents which defines the logical structure of documents and the way a document is accessed or manipulated.
  • the DOM specification is under constant development by the World Wide Web Consortium (W3C), but it is currently implemented differently depending on the browser software being used, so that access to and manipulation of the elements on a web page is browser type and browser version specific.
  • Document object models are implemented by, for example, Internet Explorer version 4 and above and Netscape Navigator version 6.
  • HTML extract shown as Code Extract 1 below is represented by the document object model shown in Figure 3.
  • Code Extract 1 also corresponds to the browser display shown at Figure 4.
  • a data item is embedded at a particular position in a web page by placing it into an HTML element at that position.
  • An HTML element is defined by a pair of tags between which text can be placed, such as ⁇ td> ... ⁇ /td>, ⁇ div> ... ⁇ /div> or ⁇ p>... ⁇ /p> tags.
  • the chent computer 1 connects to the server machine 2 to obtain a financial information service (step si).
  • the web server 5 at the server 2 provides a web page which includes code for implementing the invention, referred to herein as a script (step s2).
  • the HTML code for the web page includes a SCRIPT tag in the general form:
  • the 'src' attribute points to the url of the directory containing the program, written for example in Javascript, which provides the functionality according to the invention.
  • the script performs browser detection (step s3) in a manner well-known per se to determine whether the browser is at least Internet Explorer version 4, Netscape Navigator version 6 or some other browser which implements a DOM and therefore to determine which DOM should be used.
  • the script sets up the screen display by writing supplied or default attribute values to the document object model specifying how the data retrieved from the data source is to be presented (step s4).
  • these attributes define what constitutes 'up' and what constitutes 'down' for the purpose of determining temporary background colour change (flashing) when a value updates.
  • An attribute may specify that a value greater than the previous value is interpreted as 'up' and a value less than the previous value interpreted as 'down'.
  • a positive value is interpreted as 'up' and a negative value as 'down'.
  • Other attributes define the colour to be used for the background flash for down, up and no change updates respectively.
  • the colour may be any valid HTML colour.
  • the script is then arranged to identify the data items which are required to be updated (step s5), so that the corresponding real-time information can be extracted from the relevant real-time data source.
  • each item is identified by symbol and field identifier (fid) attributes, which reference information from an external data source.
  • symbol and field identifier (fid) attributes which reference information from an external data source.
  • RTTP Real Time Text Protocol
  • Caphn Systems Ltd., London, UK have developed a web protocol known as Real Time Text Protocol (RTTP), which implements real-time streaming for almost all types of information, including logical records, news and free-format pages.
  • RTTP data sources for providing information which is capable of being referenced by the symbol and fid attributes are available by subscription over the Internet.
  • the identification of a data item can be performed, for example, by extracting identification information for that item included in the web page, in accordance with the procedure set out in our co- pending apphcation no. 00309703.7, the disclosure of which is incorporated herein by reference.
  • the 'symbol' attribute specifies the financial instrument which is being referenced.
  • the symbol used to identify a particular instrument depends on the symbology being used by the data source. For example, symbol ⁇ "IBM.N" represents the Reuters symbology for the real-time price of IBM ordinary shares traded on the New York Stock Exchange.
  • the 'fid' attribute specifies a piece of data relating to the financial instrument selected by the 'symbol' attribute. For example, typical values for a particular stock are "Bid”, “Ask”, “Mid”, “Chng” and “Cls”, representing the bid price, asking price, mid price, change on the day and previous day's closing price respectively.
  • the range of 'fids' available for a particular financial instrument depends on the symbology being used by the data source. For example, fid ⁇ "Ask” displays the most recent price at which the instrument specified by the 'symbol' attribute was offered for sale in the market.
  • the specified attributes are used to retrieve the data from the real-time data source as described in detail below.
  • a Java applet is used to implement a connection between the script and the data server 6 shown in Figure 1.
  • a request is sent via the applet to the data server 6 specifying the required data (step s6).
  • the script then waits to receive data from the server (step s7).
  • the data server 6 notes the data request (step s8) and sends the latest available value of the updated data to the script (step s9).
  • the data server 6 then waits for further updates (step slO). Every time the value of the requested data is updated, the updated value is sent to the script by the data server (step s9).
  • Each data item sent comprises a value, together with a symbol and a field identifier to enable identification of the item.
  • step sl l Over a given time interval, for example 0.25 seconds, all the updated values received from the data server 6 are temporarily stored, for example by placing them into a queue as each is received (step sl l).
  • the queue is emptied at predetermined intervals, for example, four times a second, by writing all the data items in the queue to the document object model concurrently (step sl2).
  • the browser then updates the screen display (step sl3), taking account of all the changes made, rather than needing to recalculate the screen display based on each change as it arrives.
  • step si 4 the script tests for this condition (step si 4), and if it determines that a later data item supersedes an earlier one, the earlier data item is replaced in the queue by the more recent data item (step si 5), so that the earher data item is never written to the document object model. If there is no existing item in the queue corresponding to the latest update, the update is queued as before (step sl l). All queued data is then written to the DOM and the browser screen updated as described in relation to Figure 5 (steps sl2 and sl3).
  • the queuing is performed at the server rather than the browser.
  • the initial steps si to s8 proceed as described in relation to the first aspect above.
  • the data server 6 receives an updated value it queues the value together with all previously updated values within a given interval, for example 0.25 seconds (step si 6).
  • the server determines whether the queue should be emptied (step si 7), which is done, for example, 4 times a second. If the queue is to be emptied, all of the items in the queue are streamed to the browser (step si 8) where they are written to the document object model concurrently (step si 9).
  • the browser updates the screen display (step s20), taking account of all the changes made, rather than needing to recalculate the screen display based on each change as it arrives.
  • the server waits for updates (step s21), queues them (step si 6) and then repeats the queue checking/ emptying process.

Abstract

Browsers which are required to display a large amount of constantly changing real-time information tend to make excessive demands on available computational resources, since the browser needs to update the screen every time a piece of information in its document object model changes and this process is inherently inefficient. By queuing real-time data updates and emptying the queue at periodic intervals, all updates received within those intervals are simultaneously written to the browser's document object model, so reducing the burden of updating the screen. In addition, earlier updates held in the queue can be overwritten by subsequent updates, so that out-of-date information is never provided to the browser.

Description

Streaming of Real-Time Data to a Browser
Field of the Invention
This invention relates to the field of streaming real-time data to a browser.
Background
The World Wide Web is based on hypertext, which can be thought of as text which is not constrained to be sequential. The Web can handle much more than just text, so the more general term hypermedia is used to cover all types of content, including but not Umited to pictures, graphics, sound and video. While the primary language for representing hypermedia content on the Web is HTML, other markup languages are constantly developing, including, for example, XML.
HTML defines the structure and layout of a Web document by reference to a number of pre-defined tags with associated attributes. The tags and attributes are interpreted and the web page is accordingly displayed by a client application running on a computer, commonly referred to as a browser.
Although the use of HTML on its own produces essentially static Web pages, it is well known to use scripting languages such as Javascript™ to enhance HTML functionality; the combination is often referred to as Dynamic HTML. The current generation of browsers use a document object model (DOM) to represent web pages internally. This is an application programming interface for valid HTML and well-formed XML documents. It defines the logical structure of a document and the way in which the document can be accessed and manipulated. In particular, it makes all of the content on a page available to scripting code and enables programs and scripts to dynamically access and update the content, structure and style of documents.
For example, share prices displayed on a browser screen in the form of a table are each represented in the browser's document object model as a text object. The browser can be arranged to display real-time updates of each share price by continuously overwriting each text object in the document object model with data items streamed from a real-time data source.
However, in commercial systems for use, for example, in financial trading environments, the browser screen is required to display a substantial amount of real-time data. In this case, it has been found that the provision of a large amount of constantly changing information to a browser can place an intolerably high load on the system processor, causing the display of updates to be delayed and in extreme cases, cause the browser to stop responding, resulting in the need to close and restart the browser or even reboot the entire system. In environments where the continuous provision of real-information is crucial to obtain a commercial advantage, such behaviour is unacceptable.
The present invention aims to address the above problem.
Summary of the Invention
According to the present invention, there is provided a method of sending real-time data to a browser for display by the browser, wherein the browser is operative to update its display on receipt of a data item for display, the method comprising the steps of receiving a plurahty of data items from a real-time data source, storing the plurahty of data items as a batch and sending the batch of data items to the browser at a predetermined time.
Advantageously, sending the data items to the browser as a batch aUows the browser to perform a single updating procedure to update the screen, rather than having to repeatedly update the screen every time a single data item arrives.
The batch of data items may be stored at the server to which the browser connects to obtain the real-time data, before being sent to the browser, or data items can be individually streamed from the server and stored as a batch at the chent computer on which the browser runs.
The batch storage method can comprise queuing the data items. The batch of data items can be sent to the browser from the server or from the chent computer at predetermined intervals, for example around 4 times per second. The interval chosen should allow sufficient updates to be gathered to improve browser operation, without prejudicing the real-time nature of the data.
In a browser which is configured to represent the data items as objects in a document object model, the step of sending the batch of data items to the browser can include writing all of the data items in the batch to the document object model concurrently.
The method can further include replacing a data item in the batch with an updated data item from the real-time source. By replacing a data item which has not yet been sent to the browser with a later update, the earlier data item is never sent to the browser, resulting in a more efficient updating procedure.
According to the invention, there is further provided a server for providing realtime data to a browser comprising means for receiving a plurahty of data items from a real-time data source, means for storing the plurahty of data items as a batch and means for streaming the batch of data items to the browser at a predetermined time.
According to the invention, there is additionally provided a program for providing real-time data to a browser comprising means for receiving a plurahty of data items from a real-time data source, means for storing the plurahty of data items as a batch and means for streaming the batch of data items to the browser at a predetermined time.
Brief Description of the Drawings
Embodiments of the invention will now be described by way of example with reference to the accompanying drawings, in which:
Figure 1 is a schematic diagram of an Internet based system for accessing real-time streaming data; Figure 2 is a schematic diagram of the architecture of a typical computer;
Figure 3 illustrates a document object model corresponding to a first code extract;
Figure 4 is a screen-shot corresponding to the first code extract;
Figure 5 is a flow chart explaining the streaming of real-time financial data to a web browser in accordance with a first aspect of the invention;
Figure 6 is a flow chart illustrating an improvement to the method of Figure 5;
Figure 7 is a flow chart explaining the streaming of real-time financial data to a web browser in accordance with a second aspect of the invention; and
Figure 8 is a flow chart illustrating an improvement to the method of Figure 7.
Detailed Description
Figure 1 is a schematic diagram of an Internet based system in which a chent computer 1 connects to a server computer 2 via the Internet 3. The client computer 1 is capable of running browser software 4, for example, Internet Explorer™ or Netscape Navigator™ for viewing web pages provided by web server software 5 at the server computer 2. A further server computer 6 provides a source of real-time data and its functionality will be described in detail below.
The chent computer 1 and server computers 2, 6 are conventional computers, an example architecture for which is shown in Figure 2. Each computer 1, 2, 6 comprises a central processing unit (CPU) 7 for executing computer programs and managing and controlling the operation of the computer. The CPU 7 is connected to a number of devices via a bus 8, the devices including a read/write device 9, for example a floppy disk drive for reading and writing data and computer programs to and from a removable storage medium such as a floppy disk 10, a storage device 11 , for example a hard disk drive for storing system and application software, a CD- ROM drive 12 and memory devices including ROM 13 and RAM 14. The computer further includes a network card 15 for interfacing to a network 3 and user input/output devices, such as a mouse 16, keyboard 17 and display 18. It will be understood by the skilled person that the above described architecture is not limiting, but is merely an example of a typical computer architecture. It will be further understood that the described computer has all the necessary operating system and application software to enable it to fulfil its purpose. As mentioned above, the current generation of web browsers represent the content and format of web pages as a document object model (DOM). The DOM is an application programming interface (API) for documents which defines the logical structure of documents and the way a document is accessed or manipulated. The DOM specification is under constant development by the World Wide Web Consortium (W3C), but it is currently implemented differently depending on the browser software being used, so that access to and manipulation of the elements on a web page is browser type and browser version specific. Document object models are implemented by, for example, Internet Explorer version 4 and above and Netscape Navigator version 6.
For example, the HTML extract shown as Code Extract 1 below is represented by the document object model shown in Figure 3.
<table>
<tbody>
<tr>
<td>British Energy</td> <td>£15.12</td>
Figure imgf000006_0001
<tr>
<td>British Power</td>
<td>/J3.24</td>
Figure imgf000006_0002
</tbody>
</table>
Code Extract 1
Code Extract 1 also corresponds to the browser display shown at Figure 4. A data item is embedded at a particular position in a web page by placing it into an HTML element at that position. An HTML element is defined by a pair of tags between which text can be placed, such as <td> ... </td>, <div> ... </div> or <p>... </p> tags.
The efficient streaming of real-time data to a browser is described below with reference to Figure 5.
Referring to Figure 5, the chent computer 1 connects to the server machine 2 to obtain a financial information service (step si). The web server 5 at the server 2 provides a web page which includes code for implementing the invention, referred to herein as a script (step s2). For example, the HTML code for the web page includes a SCRIPT tag in the general form:
<script language=javascript src=url ></script>
The 'src' attribute points to the url of the directory containing the program, written for example in Javascript, which provides the functionality according to the invention.
The script performs browser detection (step s3) in a manner well-known per se to determine whether the browser is at least Internet Explorer version 4, Netscape Navigator version 6 or some other browser which implements a DOM and therefore to determine which DOM should be used.
The script then sets up the screen display by writing supplied or default attribute values to the document object model specifying how the data retrieved from the data source is to be presented (step s4). For example, in relation to share price data, these attributes define what constitutes 'up' and what constitutes 'down' for the purpose of determining temporary background colour change (flashing) when a value updates. An attribute may specify that a value greater than the previous value is interpreted as 'up' and a value less than the previous value interpreted as 'down'. Alternatively, a positive value is interpreted as 'up' and a negative value as 'down'. Other attributes define the colour to be used for the background flash for down, up and no change updates respectively. The colour may be any valid HTML colour. Similarly, other attributes define the corresponding up/down definitions and colour changes for the foreground (text) colour change when a value updates. A 'flashtime' attribute is the length of time in milliseconds for which the background to each element remains highlighted, i.e. flashes, when the value of that element is updated. For example, flashtime=500 causes the colour of each element to change when the value updates and to revert to the original colour half a second later.
The script is then arranged to identify the data items which are required to be updated (step s5), so that the corresponding real-time information can be extracted from the relevant real-time data source. For example, each item is identified by symbol and field identifier (fid) attributes, which reference information from an external data source. For example, Caphn Systems Ltd., London, UK, have developed a web protocol known as Real Time Text Protocol (RTTP), which implements real-time streaming for almost all types of information, including logical records, news and free-format pages. RTTP data sources for providing information which is capable of being referenced by the symbol and fid attributes are available by subscription over the Internet. The identification of a data item can be performed, for example, by extracting identification information for that item included in the web page, in accordance with the procedure set out in our co- pending apphcation no. 00309703.7, the disclosure of which is incorporated herein by reference.
The 'symbol' attribute specifies the financial instrument which is being referenced. The symbol used to identify a particular instrument depends on the symbology being used by the data source. For example, symbol^ "IBM.N" represents the Reuters symbology for the real-time price of IBM ordinary shares traded on the New York Stock Exchange.
The 'fid' attribute specifies a piece of data relating to the financial instrument selected by the 'symbol' attribute. For example, typical values for a particular stock are "Bid", "Ask", "Mid", "Chng" and "Cls", representing the bid price, asking price, mid price, change on the day and previous day's closing price respectively. The range of 'fids' available for a particular financial instrument depends on the symbology being used by the data source. For example, fid^ "Ask" displays the most recent price at which the instrument specified by the 'symbol' attribute was offered for sale in the market.
The specified attributes are used to retrieve the data from the real-time data source as described in detail below.
For example, a Java applet is used to implement a connection between the script and the data server 6 shown in Figure 1. A request is sent via the applet to the data server 6 specifying the required data (step s6). The script then waits to receive data from the server (step s7). The data server 6 notes the data request (step s8) and sends the latest available value of the updated data to the script (step s9). The data server 6 then waits for further updates (step slO). Every time the value of the requested data is updated, the updated value is sent to the script by the data server (step s9). Each data item sent comprises a value, together with a symbol and a field identifier to enable identification of the item.
Over a given time interval, for example 0.25 seconds, all the updated values received from the data server 6 are temporarily stored, for example by placing them into a queue as each is received (step sl l). The queue is emptied at predetermined intervals, for example, four times a second, by writing all the data items in the queue to the document object model concurrently (step sl2). The browser then updates the screen display (step sl3), taking account of all the changes made, rather than needing to recalculate the screen display based on each change as it arrives.
While data is held in a queue, a data update which supersedes an existing data item may arrive. In a further improvement of the above method illustrated in Figure 6, the script tests for this condition (step si 4), and if it determines that a later data item supersedes an earlier one, the earlier data item is replaced in the queue by the more recent data item (step si 5), so that the earher data item is never written to the document object model. If there is no existing item in the queue corresponding to the latest update, the update is queued as before (step sl l). All queued data is then written to the DOM and the browser screen updated as described in relation to Figure 5 (steps sl2 and sl3).
In a second aspect of the invention shown in Figure 7, the queuing is performed at the server rather than the browser. The initial steps si to s8 proceed as described in relation to the first aspect above. However, when the data server 6 receives an updated value it queues the value together with all previously updated values within a given interval, for example 0.25 seconds (step si 6). The server then determines whether the queue should be emptied (step si 7), which is done, for example, 4 times a second. If the queue is to be emptied, all of the items in the queue are streamed to the browser (step si 8) where they are written to the document object model concurrently (step si 9). The browser then updates the screen display (step s20), taking account of all the changes made, rather than needing to recalculate the screen display based on each change as it arrives.
In the event that the queue is not to be emptied, the server waits for updates (step s21), queues them (step si 6) and then repeats the queue checking/ emptying process.
While the item updating embodiment of Figure 6 has been described in relation to the first aspect of the invention illustrated in Figure 5, it can also be used in conjunction with the second aspect of the invention described above with reference to Figure 7, as shown in Figure 8. The overwriting mechanism in this example is operative after each update is received (step s21).
While the above methods have been described in relation to a data server which provides a source of streaming data, it will be understood that the invention is not limited to this, but can be implemented with any data source, including a source from which data can be periodically requested, or by any method by which numerical or other information is updated or computed. Although the Web server machine 2 and data server 6 have been shown as separate computers, it will be understood that the web server 5 and data server 6 can be server processes running on the same physical machine.

Claims

Claims
1. A method of sending real-time data to a browser for display by the browser, wherein the browser is operable to update its display on receipt of a data item for display, the method comprising the steps of: receiving a plurahty of data items from a real-time data source; storing the plurahty of data items as a batch; and sending the batch of data items to the browser at a predetermined time.
2. A method according to claim 1 , wherein the browser is operable to connect to a server to request the real-time data, the batch of data items being stored at the server.
3. A method according to claim 1, comprising receiving the plurality of data items at a chent computer on which the browser is running, further comprising storing the plurality of data items as a batch at the client computer.
4. A method according to any one of the preceding claims, "wherein the step of storing the batch of data items comprises queuing the data items.
5. A method according to any one of the preceding claims, further comprising replacing a data item in the batch with an updated data item from the real-time source.
6. A method according to any one of the preceding claims, comprising sending the batch of data items to the browser at predetermined intervals.
7. A method according to claim 6, wherein the predetermined intervals comprise around 4 times per second.
8. A method according to any one of the preceding claims, wherein the browser is configured to represent the data items as objects in a document object model and wherein the step of sending the batch of data items to the browser includes writing the data items to the document object model concurrently.
9. A server for providing real-time data to a browser comprising: means for receiving a plurahty of data items from a real-time data source; means for storing the plurahty of data items as a batch; and means for streaming the batch of data items to the browser at a predetermined time.
10. A server according to claim 9, further comprising means for replacing a data item in the batch with an updated data item from the real-time source.
11. A program which, when executed by a processor, is operative to implement the steps of any one of claims 1 to 8.
12. A program for providing real-time data to a browser comprising: means for receiving a plurahty of data items from a real-time data source; means for storing the plurahty of data items as a batch; and means for streaming the batch of data items to the browser at a predetermined time.
13. A program according to claim 12, further comprising means for replacing a data item in the batch with an updated data item from the real-time source.
14. A program according to any one of claims 11 to 13 on a carrier medium.
PCT/GB2002/002746 2001-06-12 2002-06-12 Streaming of real-time data to a browser WO2002101585A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/480,529 US20040201618A1 (en) 2001-06-12 2002-12-06 Streaming of real-time data to a browser

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01305106A EP1267278A1 (en) 2001-06-12 2001-06-12 Streaming of real-time data to a browser
EP01305106.5 2001-06-12

Publications (2)

Publication Number Publication Date
WO2002101585A2 true WO2002101585A2 (en) 2002-12-19
WO2002101585A3 WO2002101585A3 (en) 2003-03-20

Family

ID=8182020

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2002/002746 WO2002101585A2 (en) 2001-06-12 2002-06-12 Streaming of real-time data to a browser

Country Status (3)

Country Link
US (1) US20040201618A1 (en)
EP (1) EP1267278A1 (en)
WO (1) WO2002101585A2 (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908396A (en) * 2017-10-17 2018-04-13 广东广业开元科技有限公司 A kind of chart data Online Processing System and method based on browser
US11340792B2 (en) 2020-07-30 2022-05-24 EMC IP Holding Company LLC Ordered event stream merging
US11340834B2 (en) 2020-05-22 2022-05-24 EMC IP Holding Company LLC Scaling of an ordered event stream
US11347568B1 (en) 2020-12-18 2022-05-31 EMC IP Holding Company LLC Conditional appends in an ordered event stream storage system
US11354054B2 (en) 2020-10-28 2022-06-07 EMC IP Holding Company LLC Compaction via an event reference in an ordered event stream storage system
US11354444B2 (en) 2020-09-30 2022-06-07 EMC IP Holding Company LLC Access control for an ordered event stream storage system
US11360992B2 (en) 2020-06-29 2022-06-14 EMC IP Holding Company LLC Watermarking of events of an ordered event stream
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11513714B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Migration of legacy data into an ordered event stream
US11526297B2 (en) 2021-01-19 2022-12-13 EMC IP Holding Company LLC Framed event access in an ordered event stream storage system
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
US11599546B2 (en) * 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11604788B2 (en) 2019-01-24 2023-03-14 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11960441B2 (en) 2023-02-06 2024-04-16 EMC IP Holding Company LLC Retention management for data streams

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1129417A4 (en) * 1998-12-04 2004-06-30 Technology Enabling Company Ll Systems and methods for organizing data
US20090077020A9 (en) * 1998-12-04 2009-03-19 Toong Hoo-Min Systems and methods of searching databases
US20030208539A1 (en) * 2002-05-02 2003-11-06 Gildenblat Ilya G. Event-driven information publication
US20060224978A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht System for creating a graphical application interface
US20060224973A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Method of using a browser
US20060224980A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Method of creating graphical visualizations of data with a browser
US20060225000A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Graphical application interface using browser
US20060224976A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Graphical application interface product
US20060224972A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Graphical application interface with a browser
US20060224983A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Graphical visualization of data using browser
US8316001B1 (en) 2002-07-22 2012-11-20 Ipvision, Inc. Apparatus and method for performing analyses on data derived from a web-based search engine
US20060224975A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht System for creating a graphical application interface with a browser
US20060224977A1 (en) * 2005-04-01 2006-10-05 Paul Albrecht Graphical application interface
US20060229959A1 (en) * 2005-04-07 2006-10-12 Yaacov Heidingsfeld Customized automation of financial asset trading
US7814412B2 (en) * 2007-01-05 2010-10-12 Microsoft Corporation Incrementally updating and formatting HD-DVD markup
US9122650B1 (en) 2007-11-14 2015-09-01 Appcelerator, Inc. Web server based on the same paradigms as web clients
US8914774B1 (en) 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US8954989B1 (en) 2007-11-19 2015-02-10 Appcelerator, Inc. Flexible, event-driven JavaScript server architecture
US8260845B1 (en) 2007-11-21 2012-09-04 Appcelerator, Inc. System and method for auto-generating JavaScript proxies and meta-proxies
US8719451B1 (en) 2007-11-23 2014-05-06 Appcelerator, Inc. System and method for on-the-fly, post-processing document object model manipulation
US8566807B1 (en) 2007-11-23 2013-10-22 Appcelerator, Inc. System and method for accessibility of document object model and JavaScript by other platforms
US8819539B1 (en) 2007-12-03 2014-08-26 Appcelerator, Inc. On-the-fly rewriting of uniform resource locators in a web-page
US8806431B1 (en) 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US8756579B1 (en) 2007-12-03 2014-06-17 Appcelerator, Inc. Client-side and server-side unified validation
US8938491B1 (en) 2007-12-04 2015-01-20 Appcelerator, Inc. System and method for secure binding of client calls and server functions
US8527860B1 (en) 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US8285813B1 (en) 2007-12-05 2012-10-09 Appcelerator, Inc. System and method for emulating different user agents on a server
US8335982B1 (en) 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US8639743B1 (en) 2007-12-05 2014-01-28 Appcelerator, Inc. System and method for on-the-fly rewriting of JavaScript
US8890874B2 (en) 2007-12-14 2014-11-18 Microsoft Corporation Changing visual content communication
US8291079B1 (en) 2008-06-04 2012-10-16 Appcelerator, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8880678B1 (en) 2008-06-05 2014-11-04 Appcelerator, Inc. System and method for managing and monitoring a web application using multiple cloud providers
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US9626197B1 (en) * 2010-07-30 2017-04-18 Amazon Technologies, Inc. User interface rendering performance
US9348609B2 (en) * 2010-08-02 2016-05-24 Sap Se Framework for ad-hoc process flexibility
US8884970B2 (en) 2011-09-09 2014-11-11 Microsoft Corporation Aligning script animations with display refresh
US20130067314A1 (en) * 2011-09-10 2013-03-14 Microsoft Corporation Batch Document Formatting and Layout on Display Refresh
US9992306B2 (en) 2012-12-21 2018-06-05 E*Trade Financial Corporation Dynamic execution
US10097989B2 (en) 2012-12-21 2018-10-09 E*Trade Financial Corporation Dynamic communication
US10324943B2 (en) * 2015-08-10 2019-06-18 Business Objects Software, Ltd. Auto-monitoring and adjustment of dynamic data visualizations
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
FR2760110A1 (en) * 1997-02-21 1998-08-28 Netgem METHOD FOR DYNAMICALLY DISPLAYING DATA ON AN INTERNET TERMINAL SCREEN
EP0889421A1 (en) * 1997-06-12 1999-01-07 Yahoo, Inc. Dynamic page generator

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157439A (en) * 1999-04-26 2000-12-05 Hewlett-Packard Company Copy system with document previewing
US20020032637A1 (en) * 2000-02-18 2002-03-14 Moshal David Clive Method and apparatus for graphical representation of real-time data
US20020100039A1 (en) * 2001-01-19 2002-07-25 Nicholas Iatropoulos Media interactivity method and architecture
US7437670B2 (en) * 2001-03-29 2008-10-14 International Business Machines Corporation Magnifying the text of a link while still retaining browser function in the magnified display

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
FR2760110A1 (en) * 1997-02-21 1998-08-28 Netgem METHOD FOR DYNAMICALLY DISPLAYING DATA ON AN INTERNET TERMINAL SCREEN
EP0889421A1 (en) * 1997-06-12 1999-01-07 Yahoo, Inc. Dynamic page generator

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ENGLAND P ET AL: "RAVE: Real-time services for the Web" COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 28, no. 11, 1 May 1996 (1996-05-01), pages 1547-1558, XP004018250 ISSN: 0169-7552 *
MEIJER E ET AL: "Client-side Web scripting with HaskellScript" PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES. FIRST INTERNATIONAL WORKSHOP, PADL'99. PROCEEDINGS, PROCEEDINGS OF FIRST INTERNATIONAL WORKSHOP ON PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES 1999 (CO-LOCATED WITH POPL'99), SAN ANTONIO, TX, USA, 18-19 JAN., [Online] pages 196-210, XP002192758 1999, Berlin, Germany, Springer-Verlag, Germany ISBN: 3-540-65527-1 Retrieved from the Internet: <URL:http://link.springer.de/link/service/ series/0558/papers/1551/15510196.pdf> [retrieved on 2002-03-12] *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908396A (en) * 2017-10-17 2018-04-13 广东广业开元科技有限公司 A kind of chart data Online Processing System and method based on browser
US11604788B2 (en) 2019-01-24 2023-03-14 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11599546B2 (en) * 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11340834B2 (en) 2020-05-22 2022-05-24 EMC IP Holding Company LLC Scaling of an ordered event stream
US11360992B2 (en) 2020-06-29 2022-06-14 EMC IP Holding Company LLC Watermarking of events of an ordered event stream
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11340792B2 (en) 2020-07-30 2022-05-24 EMC IP Holding Company LLC Ordered event stream merging
US11354444B2 (en) 2020-09-30 2022-06-07 EMC IP Holding Company LLC Access control for an ordered event stream storage system
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11762715B2 (en) 2020-09-30 2023-09-19 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
US11354054B2 (en) 2020-10-28 2022-06-07 EMC IP Holding Company LLC Compaction via an event reference in an ordered event stream storage system
US11347568B1 (en) 2020-12-18 2022-05-31 EMC IP Holding Company LLC Conditional appends in an ordered event stream storage system
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11526297B2 (en) 2021-01-19 2022-12-13 EMC IP Holding Company LLC Framed event access in an ordered event stream storage system
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11513714B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Migration of legacy data into an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11960441B2 (en) 2023-02-06 2024-04-16 EMC IP Holding Company LLC Retention management for data streams

Also Published As

Publication number Publication date
US20040201618A1 (en) 2004-10-14
EP1267278A1 (en) 2002-12-18
WO2002101585A3 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
EP1267278A1 (en) Streaming of real-time data to a browser
JP4791452B2 (en) Method, system and computer program for prefetching and caching portlet on client side
US8103742B1 (en) Deferred and off-loaded rendering of selected portions of web pages to incorporate late-arriving service data
US6405192B1 (en) Navigation assistant-method and apparatus for providing user configured complementary information for data browsing in a viewer context
US7194678B1 (en) Dynamic web page generation method and system
US7502867B2 (en) Selective display of content
JP3776939B2 (en) Apparatus and method for obtaining information using standard objects
US8321875B2 (en) Selectively updating web pages on a mobile client
US20020156803A1 (en) Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation
US20050120180A1 (en) Cache time determination
US8627344B2 (en) Methods and apparatuses for user interface management
US20020078165A1 (en) System and method for prefetching portions of a web page based on learned preferences
US10198414B2 (en) Methods for optimizing interaction with a form in a website page and systems thereof
CN111143729B (en) Optimization method, device, equipment and storage medium based on single page application
WO2008100883A1 (en) Managing web page links using structured data
US8516041B1 (en) Pre-fetching asynchronously requested content
US20040255003A1 (en) System and method for reordering the download priority of markup language objects
EP1182589A2 (en) Provision of electronic documents from cached portions
EP1204030A1 (en) Extending hypermedia documents by adding tagged attributes
AU779907B2 (en) Method for extracting digests, reformatting and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation
US20230350969A1 (en) Automatic display control method for web content
KR20040005868A (en) Method, computer system and computer program product for updating a web page
CN109324858A (en) The acquisition methods and device of content are shown in webpage
GB2452282A (en) Remote insertion of content

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 10480529

Country of ref document: US

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP