U.S. patent application number 11/850192 was filed with the patent office on 2008-03-06 for browser based web conferencing employing layering to display screen updates.
This patent application is currently assigned to RHUB COMMUNICATIONS, INC.. Invention is credited to Lawrence A. Dorie, Yanlin Guan, Chengjiang Mao.
Application Number | 20080059583 11/850192 |
Document ID | / |
Family ID | 39153316 |
Filed Date | 2008-03-06 |
United States Patent
Application |
20080059583 |
Kind Code |
A1 |
Mao; Chengjiang ; et
al. |
March 6, 2008 |
BROWSER BASED WEB CONFERENCING EMPLOYING LAYERING TO DISPLAY SCREEN
UPDATES
Abstract
A browser based web conferencing method is disclosed, wherein
Hypertext Markup Language (HTML) code is transmitted to a browser
of an attendee computer. A first screen update request is
transmitted over a network, and HTML code is received identifying a
screen update image of a first layer. A request to receive the
screen update image of the first layer is transmitted over the
network, and the screen update image of the first layer is
displayed. A second screen update request is transmitted over a
network, and HTML code is received identifying a screen update
image of a second layer. A request to receive the screen update
image of the second layer is transmitted over the network, and the
screen update image of the second layer is displayed, wherein the
screen update image of the second layer overlaps the screen update
image of the first layer.
Inventors: |
Mao; Chengjiang; (San Jose,
CA) ; Guan; Yanlin; (Santa Clara, CA) ; Dorie;
Lawrence A.; (Los Altos, CA) |
Correspondence
Address: |
Howard H. Sheerin, Attorney at Law
23233 N. Pima Rd., Suite 113, PMB 174
Scottsdale
AZ
85255
US
|
Assignee: |
RHUB COMMUNICATIONS, INC.
Santa Clara
CA
|
Family ID: |
39153316 |
Appl. No.: |
11/850192 |
Filed: |
September 5, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60842729 |
Sep 6, 2006 |
|
|
|
Current U.S.
Class: |
709/205 |
Current CPC
Class: |
H04L 12/1813 20130101;
H04L 65/80 20130101; H04L 67/02 20130101; H04L 65/4053
20130101 |
Class at
Publication: |
709/205 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. A browser based web conferencing method, the method comprising
transmitting Hypertext Markup Language (HTML) code to a browser of
an attendee computer connected to a network, the HTML code
comprising code segments for: transmitting over the network a first
screen update request; receiving over the network HTML code
identifying a screen update image of a first layer; transmitting
over the network a request to receive the screen update image of
the first layer; displaying the screen update image of the first
layer; transmitting over the network a second screen update
request; receiving over the network HTML code identifying a screen
update image of a second layer; transmitting over the network a
request to receive the screen update image of the second layer; and
receiving and displaying the screen update image of the second
layer, wherein the screen update image of the second layer overlaps
at least part of the screen update image of the first layer.
2. The method as recited in claim 1, wherein the HTML code
comprises an img HTML tag.
3. The method as recited in claim 1, wherein the HTML code
identifying the screen update image of the first layer comprises a
first z-index HTML tag and the HTML code identifying the screen
update image of the second layer comprises a second z-index HTML
tag.
4. The method as recited in claim 1, wherein: the first update
image of the first layer represents a substantially full screen
update; and the second update image of the second layer represents
a partial screen update.
5. The method as recited in claim 1, wherein the HTML code further
comprises code segments for: storing the HTML code of the first
layer in an HTML element; and appending the HTML code of the second
layer to the HTML element.
6. The method as recited in claim 5, wherein the HTML code further
comprises a code segment for deleting the HTML code from the HTML
element when a full screen update image is received.
7. The method as recited in claim 1, wherein the code segment for
transmitting over the network the screen update request comprises a
request-update script.
8. The method as recited in claim 7, wherein: the code segment for
receiving the HTML code of the first layer comprises a code segment
for receiving HTML code identifying a plurality of screen update
images of the first layer; and the code segment for transmitting
over the network a request to receive the screen update image of
the first layer comprises an image-load script executed in
connection with receiving one of the screen update images, wherein
the image-load script executes the request-update script after all
of the screen update images of the first layer have been
displayed.
9. The method as recited in claim 1, wherein the HTML code further
comprises code segments for: detecting a communication error by a
timeout period when a browser has not received any images; and
transmitting over the network a request for a full screen update
image in response to the communication error.
10. A computer readable medium comprising code segments to be
executed by a computer, the code segments for: transmitting over a
network a first screen update request; receiving over the network
Hypertext Markup Language (HTML) code identifying a screen update
image of a first layer; transmitting over the network a request to
receive the screen update image of the first layer; displaying the
screen update image of the first layer; transmitting over the
network a second screen update request; receiving over the network
HTML code identifying a screen update image of a second layer;
transmitting over the network a request to receive the screen
update image of the second layer; and receiving and displaying the
screen update image of the second layer, wherein the screen update
image of the second layer overlaps at least part of the screen
update image of the first layer.
11. The computer readable medium as recited in claim 10, wherein
the HTML code comprises an img HTML tag.
12. The computer readable medium as recited in claim 10, wherein
the HTML code identifying the screen update image of the first
layer comprises a first z-index HTML tag and the HTML code
identifying the screen update image of the second layer comprises a
second z-index HTML tag.
13. The computer readable medium as recited in claim 10, wherein:
the first update image of the first layer represents a
substantially full screen update; and the second update image of
the second layer represents a partial screen update.
14. The computer readable medium as recited in claim 10, further
comprising code segments for: storing the HTML code of the first
layer in an HTML element; and appending the HTML code of the second
layer to the HTML element.
15. The computer readable medium as recited in claim 14, further
comprising a code segment for deleting the HTML code from the HTML
element when a full screen update image is received.
16. The computer readable medium as recited in claim 10, wherein
the code segment for transmitting over the network the screen
update request comprises a request-update script.
17. The computer readable medium as recited in claim 16, wherein:
the code segment for receiving the HTML code of the first layer
comprises a code segment for receiving HTML code identifying a
plurality of screen update images of the first layer; and the code
segment for transmitting over the network a request to receive the
screen update image of the first layer comprises an image-load
script executed in connection with displaying one of the screen
update images, wherein the image-load script executes the
request-update script after all of the screen update images of the
first layer have been displayed.
18. The computer readable medium as recited in claim 10, further
comprising code segments for: detecting a communication error; and
transmitting over the network a request for a full screen update
image in response to the communication error.
19. A browser based web conferencing method comprising: an attendee
computer transmitting over a network a first screen update request;
the attendee computer receiving over the network Hypertext Markup
Language (HTML) code identifying a screen update image of a first
layer; the attendee computer transmitting over the network a
request to receive the screen update image of the first layer; the
attendee computer displaying the screen update image of the first
layer; the attendee computer transmitting over the network a second
screen update request; the attendee computer receiving over the
network HTML code identifying a screen update image of a second
layer; the attendee computer transmitting over the network a
request to receive the screen update image of the second layer; and
the attendee computer displaying the screen update image of the
second layer, wherein the screen update image of the second layer
overlaps at least part of the screen update image of the first
layer.
20. A browser based web conferencing system comprising a server
computer, a presenter computer, and an attendee computer, wherein
the server computer for receiving screen update images from the
presenter computer and for transmitting the screen update images to
the attendee computer; the attendee computer for transmitting to
the server computer a first screen update request; the attendee
computer for receiving from the server computer Hypertext Markup
Language (HTML) code identifying a screen update image of a first
layer; the attendee computer for transmitting to the server
computer a request to receive the screen update image of the first
layer; the attendee computer for displaying the screen update image
of the first layer; the attendee computer for transmitting to the
server computer a second screen update request; the attendee
computer for receiving from the server computer HTML code
identifying a screen update image of a second layer; the attendee
computer for transmitting to the server computer a request to
receive the screen update image of the second layer; and the
attendee computer for displaying the screen update image of the
second layer, wherein the screen update image of the second layer
overlaps at least part of the screen update image of the first
layer.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from Provisional
Application Ser. No. 60/842,729 filed Sep. 6, 2006.
BACKGROUND
[0002] 1. Field
[0003] The present invention relates to web conferencing, and in
particular, browser based web conferencing employing layering to
display screen updates.
[0004] 2. Description of the Related Art
[0005] Web conferencing can be implemented by screen sharing a
presenter's screen with attendees over the Internet. Various
techniques have been disclosed to implement the screen sharing
aspect, such as with a plug-in (e.g., Flash) that augments the
basic operation of a web browser (e.g., Internet Explorer, Safari,
Firefox, etc.). However, if the plug-in is not pre-installed on an
attendee's computer, an attendee typically must download and
install the plug-in before joining a meeting. Downloading a plug-in
increases the setup time and complexity for an attendee to join a
meeting. In addition, the attendee's computer (or gateway server)
may have firewall software installed that may inhibit or further
complicate the download and installation of the plug-in. Yet
another problem is that an attendee may be hesitant to download and
install a plug-in for fear of downloading a virus.
[0006] An alternative technique employs the basic functionality of
a browser to implement screen sharing (browser based web
conferencing) which obviates the need to download a plug-in. Thus,
any attendee with an appropriate browser installed can join a
meeting by simply launching the browser and visiting the designated
web site. However, several drawbacks have been identified with
browser based web conferencing, such as the comparatively slow
response time to transmit screen updates from the presenter to the
attendees.
SUMMARY OF THE EMBODIMENTS OF THE INVENTION
[0007] An embodiment of the present invention comprises a browser
based web conferencing method, wherein Hypertext Markup Language
(HTML) code is transmitted to a browser of an attendee computer. A
first screen update request is transmitted over a network, and HTML
code is received identifying a screen update image of a first
layer. A request to receive the screen update image of the first
layer is transmitted over the network, and the screen update image
of the first layer is displayed. A second screen update request is
transmitted over a network, and HTML code is received identifying a
screen update image of a second layer. A request to receive the
screen update image of the second layer is transmitted over the
network, and the screen update image of the second layer is
displayed, wherein the screen update image of the second layer
overlaps at least part of the screen update image of the first
layer.
[0008] In one embodiment, the HTML code comprises an img HTML
tag.
[0009] In another embodiment, the HTML code identifying the screen
update image of the first layer comprises a first z-index HTML tag
and the HTML code identifying the screen update image of the second
layer comprises a second z-index HTML tag.
[0010] In one embodiment, the first update image of the first layer
represents a substantially full screen update, and the second
update image of the second layer represents a partial screen
update.
[0011] In yet another embodiment, the HTML code of the first layer
is stored in an HTML element, and the HTML code of the second layer
is appended to the HTML element. In one embodiment, the HTML code
is deleted from the HTML element when a full screen update image is
received.
[0012] In still another embodiment, transmission of the screen
update request comprises a request-update script. In one
embodiment, the HTML code of the first layer comprises HTML code
identifying a plurality of screen update images of the first layer,
and an image-load script is executed in connection with displaying
one of the screen update images, wherein the image-load script
executes the request-update script after all of the screen update
images of the first layer have been displayed.
[0013] In another embodiment, when a communication error is
detected, a request for a full screen update image is
transmitted.
[0014] Another embodiment of the present invention comprises a
browser based web conferencing system comprising a server computer,
a presenter computer, and an attendee computer. The server computer
receives screen update images from the presenter computer and
transmits the screen update images to the attendee computer. The
attendee computer transmits to the server computer a first screen
update request, and receives from the server computer HTML code
identifying a screen update image of a first layer. The attendee
computer transmits a request to the server computer to receive the
screen update image of the first layer, and displays the screen
update image of the first layer. The attendee computer transmits a
second screen update request to the server computer, and receives
from the server computer HTML code identifying a screen update
image of a second layer. The attendee computer transmits a request
to the server computer to receive the screen update image of the
second layer, and displays the screen update image of the second
layer, wherein the screen update image of the second layer overlaps
at least part of the screen update image of the first layer.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] FIG. 1A is a flow diagram according to an embodiment of the
present invention for implementing browser based web conferencing
using layers.
[0016] FIG. 1B is example HTML code used to display images in
layers according to an embodiment of the present invention.
[0017] FIG. 2 shows a browser based web conferencing system
according to an embodiment of the present invention comprising a
presenter computer, a server computer, and a plurality of attendee
computers.
[0018] FIG. 3 shows an embodiment of the present invention wherein
the screen is divided into a grid of blocks which are then
aggregated into a macro block representing a screen update
image.
[0019] FIG. 4A is an example full screen update image transmitted
to the attendees.
[0020] FIG. 4B is an example screen update when a new window is
opened.
[0021] FIG. 4C is another example screen update when the new window
is moved.
[0022] FIG. 4D illustrates an embodiment of the present invention
wherein two macro blocks are generated and transmitted
corresponding to two screen update images.
[0023] FIG. 5 shows an embodiment of the present invention wherein
the macro blocks of a screen update are transmitted in a delta data
packet, wherein a full screen update image (still) is transmitted
periodically in order to synchronize the attendees.
[0024] FIG. 6A is a flow diagram according to an embodiment of the
present invention wherein the HTML code for displaying the screen
update images is appended to an HTML element.
[0025] FIG. 6B is a flow diagram according to an embodiment of the
present invention wherein the HTML code is deleted from the HTML
element when a full screen update image (still) is received.
[0026] FIG. 7 is a flow diagram according to an embodiment of the
present invention wherein all of the screen update images included
in a delta data packet are displayed before transmitting a new
update request.
[0027] FIG. 8 is a flow diagram according to an embodiment of the
present invention wherein an update request is executed by
executing a request-update JavaScript.
[0028] FIG. 9 is a flow diagram according to an embodiment of the
present invention wherein an update request is executed by
executing a request-update JavaScript from an image-load JavaScript
after displaying all of the images in the current delta data
packet.
[0029] FIG. 10 is a flow diagram according to an embodiment of the
present invention wherein a request for a full screen update image
is transmitted when a communication error is detected.
[0030] FIGS. 11A-11C is source code executed by the browser at each
attendee computer according to an embodiment of the present
invention.
[0031] FIG. 11D is source code executed by the server computer
according to an embodiment of the present invention.
[0032] FIGS. 12A-12C is source code executed by the browser at each
attendee computer according to an alternative embodiment of the
present invention.
[0033] FIG. 12D is source code executed by the server computer
according to an alternative embodiment of the present
invention.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0034] FIG. 1A is a flow diagram according to an embodiment of the
present invention for a browser based web conferencing system,
wherein Hypertext Markup Language (HTML) code is transmitted to a
browser of an attendee computer. A first screen update request is
transmitted over a network (step 2), and HTML code is received
identifying a screen update image of a first layer (step 4). A
request to receive the screen update image of the first layer is
transmitted over the network (step 6), and the screen update image
of the first layer is displayed (step 8). A second screen update
request is transmitted over a network (step 10), and HTML code is
received identifying a screen update image of a second layer (step
12). A request to receive the screen update image of the second
layer is transmitted over the network (step 14), and the screen
update image of the second layer is displayed (step 16), wherein
the screen update image of the second layer overlaps at least part
of the screen update image of the first layer.
FIG. 1B shows example HTML code for identifying a screen update
image according to an embodiment of the present invention. The HTML
code shown in FIG. 1B is received in response to a single update
request, for example, an update request for the No. 232 layer.
Three screen update images are identified by the HTML code using
three HTML image tags (img with image iid=0, iid=1, iid=2). Each
screen update image is identified by a source tag (src) followed by
an image request URL:
[0035]
"/request-img?mid=293902&uid=2&did=232&iid=0",
[0036]
"/request-img?mid=293902&uid=2&did=232&iid=1",
[0037]
"/request-img?mid=293902&uid=2&did=232&iid=2".
The first parameter (mid) in the URL identifies the web meeting,
the next parameter (uid) identifies an attendee, the next parameter
(did) identifies the layer, and the last parameter (iid) (0, 1, and
2) identifies the respective image files (.gif format in the
example, which can be any other image format such as .jpeg). The
screen update images are displayed according to suitable style
parameters as identified by an HTML style tag (style), including a
z-index id parameter (232 in the example) that identifies the layer
for displaying the screen update images. In one embodiment, the
browser displays the images of each layer in an ascending order
corresponding to the z-index (the images of layer 1 are displayed,
then the images of layer 2, etc.). Displaying the images in layers
enables the images of higher layers to overlap images of lower
layers as described in more detail below.
[0038] The update requests may be transmitted over the network to
any suitable computer, such as the computer that is displaying the
original presentation (the presenter computer). In an alternative
embodiment shown in FIG. 2, a server computer 20 acts as an
intermediary between a presenter computer 22 and the attendee
computers 24A-24C. Also in the embodiment of FIG. 2, the server
computer 20 communicates with the presenter computer 22 and the
attendee computers 24A-24C over the Internet using a suitable
communication protocol. An attendee computer (e.g., 24A) sends a
update to the Server computer 20. The server determines whether
there is a new image to send back to the attendee computer. If not,
the server sends a request to the presenter computer 22. The server
receives a screen a update image from the presenter computer and
sends the image to the attendee computer (24A) that makes the
initial update request. Meanwhile, the server buffers the received
images from the presenter computer in order to respond to later
update requests from other attendees (24B, 24C). In one embodiment,
each attendee computer 24A-24C communicates over a different
connection having a different data rate, and therefore the attendee
computers 24A-24C may be out of sync with respect to the screen
update images (i.e., some of the attendee computers may be slower
than others in receiving the screen update images). In an
embodiment disclosed in more detail below, the server computer 20
may periodically transmit a full screen update image to all of the
attendee computers 24A-24C in order to resynchronize all of the
attendee computers 24A-24C.
[0039] FIG. 3 shows an embodiment wherein the screen of the
presenter computer 22 is represented as a grid of blocks which are
aggregated to form a macro block (e.g., macro block 26A)
representing a screen update image. A full screen update image is
generated by forming a macro block comprising all of the blocks of
the screen. Thus, in one embodiment a full screen update image is
generated first (corresponding to the first layer) and transmitted
to the attendee computers 24A-24C. Then when the presenter's screen
changes (e.g., as shown by macro blocks 26A and 26B), only the
screen update images forming a delta are transmitted to the
attendee computers 24A-24C that display the delta in the next
layer.
[0040] FIGS. 4A-4B further illustrate an embodiment of the present
invention, wherein the presenter's screen initially comprises a
spread sheet document as shown in FIG. 4A and wherein a
corresponding initial full screen update image is generated and
transmitted to the attendee computers 24A-24C. FIG. 4B shows that
the presenter's screen changes by opening a new window, wherein a
corresponding screen update image is generated and transmitted to
the attendee computers 24A-24C for display in a new layer. Note
that the screen update image representing the newly opened window
overlaps the previous full screen update image. Thus, when the
browser of the attendee computers displays the update, it first
displays the initial full screen update image in a first layer, and
then displays the screen update image corresponding to the newly
opened window in a second layer that overlaps the first layer.
[0041] FIG. 4C illustrates an example wherein the newly opened
window is moved at the presenter computer 22, and FIG. 4D
illustrates two macro blocks 28A and 28B that are generated for two
screen update images corresponding to the screen change at the
presenter. Any suitable algorithm may be employed to identify the
macro blocks, wherein the dimensions of each macro block (screen
update image) is ultimately identified using suitable HTML tags,
such as the position, left, top, width and height tags shown in the
HTML code of FIG. 1B.
[0042] FIG. 5 shows an embodiment of the present invention wherein
the screen update images are transmitted to the attendee computers
24A-24C as delta data packets comprising one or more macro blocks.
The first delta data packet (Delta.sub.--1) comprises a single
macro block referred to as a "still" which represents a
substantially full screen update image of the presenter's screen.
The next delta data packet (Delta.sub.--2) comprises one or more
macro blocks identifying the screen update images of the
presenter's screen, the next delta data packet (Delta.sub.--3)
comprising the next screen update images, and so on. In one
embodiment, an attendee computer will receive a delta data packet
comprising a "still" macro block representing a full screen update,
and in one embodiment when the delta data packet comprising the
"still" macro block is received by the server computer 20 from the
presenter computer 22, all other pending delta's buffered by the
server 20 are flushed and the delta comprising the "still" macro
block transmitted to all of the attendee computers 24A-24C. In this
manner, all of the attendee computers 24A-24C will be synchronized
in that they will be displaying the same full screen image.
[0043] FIG. 6A is a flow diagram according to an embodiment of the
present invention wherein the HTML code for identifying the screen
update images is stored in an HTML element. The HTML element is
instantiated by the browser (step 30), and when the browser
receives the HTML code identifying the screen update images of a
first layer (step 32), the HTML code is stored in the HTML element
(step 34). The screen update images identified by the HTML code
stored in the HTML element are then retrieved from the sever
computer 20 and displayed at the attendee computer 24 (step 36).
When the browser receives the HTML code identifying the screen
update images of the second layer (step 38), the HTML code is
appended to the HTML element (step 40). The screen update images
identified by all of the HTML code stored in the HTML element are
then displayed at the attendee computer 24 (step 42). In one
embodiment, the previously displayed screen update images (e.g.,
for the first layer) are retrieved from a local cache at the
attendee computer 24, whereas the new screen update images (e.g.,
for the second layer) are received over the network from the server
computer 20.
[0044] The HTML code may be appended to the HTML element in any
suitable manner. In one embodiment illustrated by the source code
shown in FIGS. 11A-11D, the server computer 20 generates a suitable
script (e.g., a JavaScript) which is transmitted to the browser at
the attendee computer 24. When the browser executes the script (by
executing the eval command within the function StateChanged( )),
the browser appends the newly received HTML code to the HTML
element.
[0045] In an embodiment shown in FIG. 6B, when an attendee computer
24 receives a full screen update image (step 44), all of the
current HTML code stored in the HTML element is deleted (step 46)
and the flow diagram continues at step 32 of FIG. 6A. Otherwise,
the HTML code identifying the screen update images of the next
layer (e.g., 3.sup.rd layer) are received (step 48), appended to
the HTML element (step 50), and displayed (step 52) together with
the previous screen update images identified by the previous HTML
code for all other layers (displayed in ascending order). In one
embodiment, a script (e.g., a JavaScript) is received over the
network (as in the example source code shown in FIGS. 11A-11D)
which causes the current HTML code stored in the HTML element to be
deleted (step 46) and replaced by the HTML code identifying the
full screen update image.
[0046] In one embodiment, the browser at an attendee computer
displays all of the screen update images for the current layers
before sending a new update request over the network. This
embodiment is illustrated in the flow diagram of FIG. 7 wherein
after sending an update request over the network (step 54), the
HTML code identifying the next screen update images is received
over the network (step 56). The browser then executes the HTML code
to retrieve the screen update image of the first layer, which may
be retrieved from the local cache or loaded over the network (step
60). The screen update image is displayed on the attendee's screen
(step 62), and if there are more screen update images to display
(step 64), the flow diagram continues at step 60. Once all of the
screen update images have been displayed, including the screen
update images of the layer associated with the current update
request, the browser sends a new update request to receive the HTML
code identifying the next screen update images (step 54).
[0047] Any suitable code may be employed to generate the update
request at the attendee computer. In an embodiment shown in the
flow diagram of FIG. 8, a script (e.g., a JavaScript) is received
by the attendee computer within an HTML web page (step 66). An
example script RquestUpdate( ) is shown in the source code of FIGS.
11A-11D which is called from the function Start( ) in the body
section of the HTML web page as well as from the function
ImageLoad( ). Similarly, any suitable code may be employed to wait
for all of the screen update images to be displayed before sending
a new update request. In an embodiment shown in the flow diagram of
FIG. 9, a script (e.g., a JavaScript) is received by the attendee
computer within an HTML web page (step 68). An example script
ImageLoad( ) is shown in the source code of FIGS. 11A-11D which is
called after a screen update image is loaded (received over the
network at step 60). Referring to the example HTML code of FIG. 1B,
the onload HTML tag causes the browser to call function ImageLoad(
) after a screen update image is loaded over the network (as
opposed to retrieved from the local cache). After displaying all of
the cached screen update images (step 62), the screen update images
associated with the current update request are loaded over the
network, and the ImageLoad( ) function executed after each screen
update image is loaded (step 70). Once all of the new screen update
images have been loaded and displayed, the ImageLoad( ) function
calls the RquestUpdate( ) function to send a new update request
over the network (step 54).
[0048] FIG. 10 is a flow diagram according to another embodiment of
the present invention wherein when a communication error is
detected or when the update request is called the first time (step
72), the attendee computer sends a request for a full screen update
image (step 74). The HTML code identifying the full screen update
image is received over the network (step 76) and then executed to
load the full screen update image over the network (step 78). After
displaying the full screen update image (step 80), a new update
request is sent over the network (step 54) and the process
continues as described above. If a response is not received over
the network (e.g., after sending a request to load a screen update
image) over a period of time (timeout), a communication error is
detected (step 72) and a new update request for a full screen
update image is sent over the network (step 74).
[0049] Any suitable code may be employed to detect when to send an
update request for a full screen update image in response to a
communication error. In the source code of FIGS. 11A-11D, a
variable gUpdatedInTimeout tracks whether a response has been
received over the network. The variable gUpdatedInTimeout is
initialized to zero in the Start( ) function, and the Start( )
function is scheduled to be executed at a predetermined interval
(gTimeout). The variable gUpdatedInTimeout is set to one in the
ImageLoad( ) function after receiving a screen update image over
the network. If the ImageLoad( ) function is not called within the
timeout interval, the Start( ) function will call the RquestUpdate(
) function with a timeout parameter set to true so that a request
for a full screen update image is sent over the network.
[0050] Any suitable source code may be employed in the embodiments
of the present invention. For example, alternative source code
executed by the browser at each attendee computer is shown FIGS.
12A-12C, and alternative source code executed by the server
computer is shown in FIG. 12D. In addition, the layers aspect of
the present invention may be implemented in any suitable manner. In
the embodiments described above, a z-index HTML tag is employed to
simplify the display of images in the appropriate layers. However,
the z-index HTML tag may not be necessary to implement the layers
aspect. For example, the z-index HTML tag may not be necessary if
the gMaxDiv constant of FIG. 12A is sufficiently large. In
addition, future versions of browsers may not utilize a z-index
HTML tag, or may use a different type of HTML tag.
[0051] Any suitable browser (e.g., Internet Explorer, Safari,
Firefox, etc.) may be executed by the attendee computers 24A-24C in
order to implement the various embodiments of the present
invention. However, earlier versions of browsers may not include
sufficient resources to implement all of the embodiments disclosed
above. For example, the ability to display images in layers (e.g.,
using the z-index parameter) may not be supported by older
browsers. However, most computers have been installed or updated
with browsers having the capabilities to implement all of the above
embodiments. Further, if an attendee computer has not yet been
installed or updated with a newer browser, the concern of
downloading a virus is ameliorated since installing or updating a
browser typically involves downloading a trusted application.
* * * * *