WO2001046863A1 - Server-based active document control - Google Patents

Server-based active document control Download PDF

Info

Publication number
WO2001046863A1
WO2001046863A1 PCT/US2000/034848 US0034848W WO0146863A1 WO 2001046863 A1 WO2001046863 A1 WO 2001046863A1 US 0034848 W US0034848 W US 0034848W WO 0146863 A1 WO0146863 A1 WO 0146863A1
Authority
WO
WIPO (PCT)
Prior art keywords
active document
client
server
executable portion
dom
Prior art date
Application number
PCT/US2000/034848
Other languages
French (fr)
Inventor
Simon Waterhouse
David Halls
Robert Van Der Linden
Original Assignee
Citrix Systems, Inc.
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 Citrix Systems, Inc. filed Critical Citrix Systems, Inc.
Priority to AU24480/01A priority Critical patent/AU2448001A/en
Priority to KR1020027008175A priority patent/KR20020063602A/en
Priority to IL15010700A priority patent/IL150107A0/en
Priority to EP00988253A priority patent/EP1240603A1/en
Priority to JP2001547310A priority patent/JP2003518297A/en
Priority to CA002392799A priority patent/CA2392799A1/en
Publication of WO2001046863A1 publication Critical patent/WO2001046863A1/en
Priority to HK02109430.7A priority patent/HK1047985A1/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

Definitions

  • the present invention relates generally to an apparatus and method for accessing
  • Computer communication networks typically include one or more server nodes and one or more client nodes.
  • a server node provides a service to a client node upon receiving a request
  • One example of a service is providing to the client node a web page for display.
  • An interactive web page can be referred to as an active document. As shown in FIG. 1,
  • an active document 10 generally contains at least two portions, a "contents" portion 38 and an
  • a string of text 38a such as a string of text 38a, an image 38b, a table 38c, or a bullet
  • Content components may also include graphics to be displayed as the document 10 is
  • active document 10 changes the content components associated with the document 10 while the
  • the executable portion 34 may include
  • the executable portion 34 of the active document 10 may be provided as
  • the executable coc e 34a alters the content of the text component 38a, the color characteristic, from black to red.
  • changes in the text component 34a occur in response to the movement of the cursor over the displayed active document 10.
  • the present invention addresses this need.
  • the invention relates to an apparatus and method for accessing, displaying and
  • Another advantage of the present invention is that the amount of code required to be
  • code (e.g., scripts and applets) which will run on the server also can run on the client browser
  • the present invention allows an active document to be delivered to a
  • the invention relates to a method for providing an active
  • the active document includes a
  • This method includes the steps of transmitting over
  • the method also includes the step of maintaining said executable portion of said
  • the method also includes the step of
  • the request from the client includes receiving a Uniform Resource Locator (URL) address identifying the active
  • the method also includes the steps of receiving data from the
  • the method also includes the step of changing at
  • the method also includes executing the executable portion of the active
  • method also includes the steps of executing a second application that interacts with the active
  • the invention also relates to a server for providing an active document to a client over a communication channel.
  • the server includes an output data generator and
  • the output data generator produces output data in response to the executable
  • the transceiver receives generated output data for transmission
  • the transceiver includes an Application Program Interface
  • output data generator produces output data in response to input data received from the
  • the server API includes a Document Object
  • the server transceiver transmits generated output
  • the invention also relates to a client for receiving over a communications channel and
  • the client includes a browser interface and a transceiver.
  • the browser interface is in communication with a browser application.
  • the transceiver receives data
  • FIG. 1 is a block diagram of an embodiment of an active document.
  • FIG. 2 is a block diagram of a process of transmitting an active document from a
  • server node to a client node as known in the prior art.
  • FIG. 3 is a logical diagram of an embodiment of an active document in which an
  • FIG. 4 is a block diagram of an embodiment of a system for providing and displaying
  • FIG. 5 is a more detailed block diagram of the embodiment of the invention shown in
  • FIG. 6 is a state diagram illustrating one embodiment of DAM behavior useful in
  • FIG. 7 is a state diagram illustrating one embodiment of DOM Proxy behavior useful
  • FIG. 8 is a screen shot of an embodiment of the invention, depicting in more detail a
  • an active document 10 may include many different content
  • component of the contents portion 38 may be created and modified by the executable portion 34
  • each cont jnt component 38 is described by a Document Object Model (DOM) ⁇ _nd the DOM exposes an Application Programming Interface
  • portion 34 of the active document 10 remains on the server 14 while the contents portion 38 is
  • the DOM API 42 allows the executable portion 34 to manipulate
  • content components 38 may be manipulated in a standard way regardless of the browser application 22 used to display the active document 10.
  • invention permits a user acting on a client computer 18 to communicate with a server computer
  • a communication channel 30 also referred to as a network
  • executable portion 34 of the active document 10 is retained on the server 14. In response to a
  • the server 14 transmits over the
  • the contents components 38 may be transmitted all together, or each component may be
  • the components 38 may be transmitted "on
  • the server 14 provides a DOM Proxy 50, which includes a DOM API 42.
  • executable portion 34 of the active document 10 issues commands to the DOM Proxy 50 and
  • the DOM Proxy 50 may accept more commands than
  • the DOM Proxy does.
  • the DOM Proxy translates additional commands into one or more commands the DOM API provides.
  • the DOM API 42 provided by the DOM Proxy 50 may be enhanced to provided additional functionality, or it may
  • the DOM Proxy 50 receives commands from the executable portion of the active
  • DOM Proxy 50 may also receive data from the client 18 over the communications channel 30 and provide the received data to the executable portion 34 of the active document 10.
  • the DOM may also receive data from the client 18 over the communications channel 30 and provide the received data to the executable portion 34 of the active document 10.
  • Proxy 50 may be provided as a servlet or application program.
  • the DOM Proxy 50 may be provided as a servlet or application program.
  • DOM Proxy 50 may be provided as a JAVA bean or an Active X control.
  • the DOM Proxy 50 may be provided as a JAVA bean or an Active X control.
  • the DOM Proxy 50 may be provided as a JAVA bean or an Active X control.
  • the DOM Proxy 50 may be provided as a JAVA bean or an Active X control.
  • the DOM Proxy 50 may be provided as a JAVA bean or an Active X control.
  • the client node 18 and the server node 14 can communicate with each other using a
  • network connections including standard telephone lines, LAN or WAN links (e.g., TI,
  • T3, 56kb, X.25 broad band connections (ISDN, Frame Relay, ATM), and wireless connections.
  • Connections can be established using a variety of communication protocols (e.g., TCP IP, HTTP,
  • IPX IPX
  • SPX NetBIOS
  • Ethernet RS232
  • direct asynchronous connections IPX, SPX, NetBIOS, Ethernet, RS232, and direct asynchronous connections
  • the client 18 includes a DOM Access Module (DAM) 46.
  • DAM DOM Access Module
  • the DAM 46 issues DOM API
  • the DOM Proxy 50 and the DAM 46 may pack
  • Proxy 50 and the DAM 46 may enhance a standard protocol or provide their own protocol for transmission of data.
  • the DAM 46 may be provided as a script, applet, plug-in or application
  • the DAM 46 may be provided as a JAVA bean or an Active X control.
  • FIG. 5 depicts the system of FIG. 4 in more detail.
  • the client the client
  • the browser 22 may be any type of software 54 located on the server 14 using the communications channel 30.
  • the browser 22 may be any type of software 54 located on the server 14 using the communications channel 30.
  • the browser 22 may be any type of software 54 located on the server 14 using the communications channel 30.
  • the browser 22 may be any type of software 54 located on the server 14 using the communications channel 30.
  • the browser 22 may be any type of software
  • the server 14 executes any web server
  • APACHE WEB SERVER an open-source web server coordinated by The Apache Foundation of Forest Hill, Maryland or INTERNET INFORMATION SERVER,
  • the server 14 may retrieve the active
  • the server 14 may retrieve the document 10 from memory, such as RAM or ROM,
  • This second channel 30b is a communication channel established between a
  • the protocol used by the DAM 46 and the DOM Proxy 50 allows the
  • the DOM Proxy 50 associates a handler routine with the ticket
  • the DAM 46 notifies the DOM Proxy 50.
  • the DAM 46 notifies the DOM Proxy 50.
  • DAM 46 notifies the DOM Proxy 50 by sending a message to the DOM Proxy indicating the
  • Proxy may also indicate that it is no longer interested in an event by sending a message to the
  • the DAM 46 including the ticket identifying the event.
  • the DAM 46 responds to such a message with an acknowledgement, allowing the DOM Proxy 50 to release
  • the binding between the ticket and the handler for the event e.g., the DOM Proxy 50 can remove
  • FIGs. 6 and 7 depict state machines describing one embodiment of DAM behavior
  • the DAM 46 is in an Initial
  • the DAM 46 initiates a connection with
  • initiation of the connection yarrow 62) is accomplished by sending a
  • the connect message may include information relaxing to the requested connection, such as the active document 10 to which the connection request relates, a maximum number of content components
  • the DAM 46 receives one or more
  • the DAM 46 transitions to a Connected state 68 and the DOM Proxy transitions to a Connected state 84.
  • Proxy 50 may include application initialization results, including one or more commands
  • the DAM 46 returns to the Initial state 60.
  • Synchronous messages require acknowledgement of completion, while asynchronous messages do not require any
  • Table 1 lists a number of exemplary messages that may be generated by a server.
  • the DOM Proxy 50 may generate a number of asynchronous commands that may be sent to the
  • Proxy 50 remains in the Connected state 85 (arrow 86), as does the DAM 46 (arrow 70).
  • the DOM Proxy 50 transmits a synchronous event to the DAM 46, the DOM Proxy enters a
  • Client Busy state 90 (arrow 88). In this state, the DOM Proxy 50 waits for the DAM 46 to
  • the DAM 46 transmits a
  • Event Received state 96 (arrow 94). While in Event Sent state 76, the DAM 46
  • DOM Proxy 50 transitions to an Event Received state 96 (arrow 94). In this state, the DOM
  • Proxy 50 interacts with the executable portion of the active document 10 to update the active
  • Fig. 8 shows an active document 10 that is a real estate
  • This web page 100.
  • One feature of this web page is to create a table 120 within the active document
  • This web a ⁇ e 100 displays several components 104,
  • One component is an ima e map of the United Kingdom 104. This is used to select a
  • check box component 108 for the user to
  • the picture component 124 is not initially sent to the client 18 as part of the contents
  • the executable portion 34 may also add or remove components from the contents portion 38.
  • picture component 124 is an example of a component that is not sent to the client 18 until there is
  • the executable portion 34 of the web page 100 remains on the server 14.
  • portion 34 monitors the user inputs (i.e., monitors the components 104, 108, 1 12, 1 16 of the
  • the database of available real estate that is used to select from may be part of the executable
  • portion 34 or it may be part of the other applications 58.
  • the executable portion also alters the other components of the contents portion 38. For example,
  • the client 18 establishes initial communication with the server 14 over communication
  • the browser 22 sends the web server software 54 the URL
  • the web server software retrieves the web page
  • the web page 100 (i.e., active document 10) from its storage location.
  • the web page 100 is defined in accordance with the DOM Level 1 specification.
  • the server 14 transmits the contents portion 38 of the web page 100 to the client 18.
  • the browser 22 accesses the contents portion 38 of the web
  • the browser 22 initializes the DAM
  • the DAM 46 If the client does not have a DAM 46, then one may be downloaded in several
  • the web server software 54 initializes the DOM Proxy 50, if not initialized and establishes a communication channel 30b for data transfer to and from the
  • this event is captured by the client-based DOM API 42 and sent to the DAM 46.
  • the DAM is captured by the client-based DOM API 42 and sent to the DAM 46.
  • the DOM Proxy 50 unpacks the data
  • the executable portion 34 creates a command to alter the town selection list
  • the executable portion retrieves the list of applicable towns.
  • the executable portion 34 issues a
  • portion 34 sends this command to the server 14 based DOM API 42.
  • the DOM Proxy 50 packs
  • the DAM 46 unpacks the data representing this command and transmits it to the DAM 46.
  • the DAM 46 unpacks the data representing this command and transmits it to the DAM 46.
  • the DAM 46 unpacks the data representing this command and transmits it to the DAM 46.
  • the client-based DOM API 42 The client-based DOM API 42
  • the client based DOM API 42 then alters the component 112a according to the command and the selection list is updated. As the DOM API is
  • the browser modifies the display accordingly.

Abstract

The invention relates to an apparatus and method for displaying the contents (38) of an active document (10) on a client (18) while retaining and executing the executable portion (34) of the active document on a server (14). In one embodiment, the method includes the step of transmitting, from the server to the client, the contents portion of the active document. The server executes the executable portion of the active document to generate output data associated with the active document. The server transmits the output data to manipulate the active document being displayed by the client.

Description

SERVER-BASED ACTIVE DOCUMENT CONTROL
Field of the Invention
The present invention relates generally to an apparatus and method for accessing,
changing and displaying an active document in a client/server environment and more specifically
to an apparatus and method for processing the active document on the server and displaying the
result of the processing on the client.
Background of the Invention
Computer communication networks typically include one or more server nodes and one or more client nodes. A server node provides a service to a client node upon receiving a request
from the client. One example of a service is providing to the client node a web page for display.
An interactive web page can be referred to as an active document. As shown in FIG. 1,
an active document 10 generally contains at least two portions, a "contents" portion 38 and an
"executable" portion 34. The contents portion of the active document includes the components
or contents of the web page, such as a string of text 38a, an image 38b, a table 38c, or a bullet
point 38d. Content components may also include graphics to be displayed as the document 10 is
viewed or style sheets associated with the active document 10. The executable portion 34 of the
active document 10 changes the content components associated with the document 10 while the
user is interacting with the active document 10. The executable portion 34 may include
executable code 34a. The executable portion 34 of the active document 10 may be provided as
an applet, script or any other form of executable code.
As a simple example, and using the embodiment depicted in FIG. 1, the active document
10 includes a text component 38a that is initially displayed in black. Executable code 34a
monitors the position of the cursor on the display and wher the cursor is placed over the text component 38a, the executable coc e 34a alters the content of the text component 38a, the color characteristic, from black to red. Thus changes in the text component 34a occur in response to the movement of the cursor over the displayed active document 10.
As depicted in FIG. 2, when a client 18 requests an active document 10, a server 14
currently sends both the contents portion 38 and the executable portion 34 of the active document
10 to the client 18. Document processing, like the simple example given above, typically occurs
in a browser application 22 executing on the client 18. Because the creator of the active document 10 has no control over which browser application 22 will be used to display the active
document 10, the creator of the active document 10 must contend with issues of deployment,
security, administration and management of the executable portion 34 of the active document 10. The existence of many different browser applications 22 creates a need for a singular, stable
environment in which the executable portion 34 of an active document 10 can be run that,
nonetheless, allows access by multiple browser applications 22.
The present invention addresses this need.
Summary of the Invention
The invention relates to an apparatus and method for accessing, displaying and
changing an active document in a client/server environment. More specifically, the invention
relates to executing the executable portion of the active document on the server, which processes
and manipulates the active document, while displaying the results of the processing and
manipulating of the active document on a client. Executing the executable code portion of the
active document on the server ensures that the execution environment is known and stable. In such a system, the executable program needs to be tested only once. Also, this allows the
executable portion of the active document to manipulate the content independently of any
platform on which the content is displayed. Thus, security and administration issues are minimized. Another advantage of the present invention is that the amount of code required to be
downloaded to the client is minimized. This helps increase the speed of transmittal of an active
document and by keeping the executable portion on the server, proprietary code is not revealed to the user on the client. Further there are no irreversible deployment decisions because executable
code (e.g., scripts and applets) which will run on the server also can run on the client browser
should the need arise. Thus, the present invention allows an active document to be delivered to a
wide variety of personal computers, Internet appliances, personal digital assistants, and other
similar client devices.
In one embodiment, the invention relates to a method for providing an active
document to a client over a communication channel, wherein the active document includes a
contents portion and an executable portion. This method includes the steps of transmitting over
the communication channel to a client at least a part of the contents portion of the active
document, generating output data from the executable portion of the active document and transmitting over the communication channel to the client the generated output data to change at
least a part of said transmitted content portion of said active document by the client. In another
embodiment, the method also includes the step of maintaining said executable portion of said
active document on a server. In another embodiment, the method also includes the step of
receiving from the client, prior to the step of transmitting the contents portion of the active
document, a request identifying the active document. In another embodiment, the request from the client includes receiving a Uniform Resource Locator (URL) address identifying the active
document. In another embodiment the method also includes the steps of receiving data from the
client and generating, responsive to the received data, output data from the executable portion of
the active document. In another embodiment the method also includes the step of changing at
least a part of the content portion of the active document in response to the received data. In another embodiment the method also includes executing the executable portion of the active
document and changing at least a part of the contents portion of the active document in response
to the execution of the executable portion of the active document. In another embodiment the
method also includes the steps of executing a second application that interacts with the active
document and changing at least a part of the contents portion of the active document in response
to the execution of the second application.
The invention also relates to a server for providing an active document to a client over a communication channel. In one embodiment, the server includes an output data generator and
a transceiver. The output data generator produces output data in response to the executable
portion of the active document. The transceiver receives generated output data for transmission
over the communications channel and the transceiver includes an Application Program Interface
(API) for manipulating the content portion of the active document. In another embodiment, the
output data generator produces output data in response to input data received from the
communications channel. In another embodiment, the server API includes a Document Object
Model (DOM) API. In another embodiment, the server transceiver transmits generated output
data over the communications channel.
The invention also relates to a client for receiving over a communications channel and
displaying an active document. The client includes a browser interface and a transceiver. The
browser interface is in communication with a browser application. The transceiver receives data
via the communication channel and transmits received data to the browser interface.
Brief Description of the Drawings
The invention is pointed out with particularity in the appended claims. The advantages of
the invention described above, together with further advantages, may be better understood by
referring to the following description taken in conjunction with the accompanying drawings. In the drawings, like reference characters generally refer to the same parts throughout the different
views. Also, the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention.
FIG. 1 is a block diagram of an embodiment of an active document.
FIG. 2 is a block diagram of a process of transmitting an active document from a
server node to a client node as known in the prior art.
FIG. 3 is a logical diagram of an embodiment of an active document in which an
application-programming interface for manipulating the content components of the active
document is provided.
FIG. 4 is a block diagram of an embodiment of a system for providing and displaying
an active document in a client/server environment.
FIG. 5 is a more detailed block diagram of the embodiment of the invention shown in
FIG. 4.
FIG. 6 is a state diagram illustrating one embodiment of DAM behavior useful in
connection with the present invention.
FIG. 7 is a state diagram illustrating one embodiment of DOM Proxy behavior useful
in connection with the present invention.
FIG. 8 is a screen shot of an embodiment of the invention, depicting in more detail a
specific example of an interactive web page.
Detailed Description of the Invention
Referring now to FIG. 3, an active document 10 may include many different content
components 38a, 38b, ..., 38n (referred to generally as the contents portion 38), and each
component of the contents portion 38 may be created and modified by the executable portion 34
of the active documents 10. In one embodiment, each cont jnt component 38 is described by a Document Object Model (DOM) <_nd the DOM exposes an Application Programming Interface
(DOM API) 42 to the executable portion 34. As described in more detail below, the executable
portion 34 of the active document 10 remains on the server 14 while the contents portion 38 is
transmitted to the client 18 and thus the DOM API 42 functions are performed over the
communication channel 30. The DOM API 42 allows the executable portion 34 to manipulate
content components 38 of the active document 10 in a standard way. Because the DOM API is
standardized, content components 38 may be manipulated in a standard way regardless of the browser application 22 used to display the active document 10.
In broad overview and referring to FIG. 4, a system constructed in accordance with the
invention permits a user acting on a client computer 18 to communicate with a server computer
14 over a communication channel 30 (also referred to as a network) to access an active document
10. In this embodiment, only the content components 38 are transmitted to the client 18. The
executable portion 34 of the active document 10 is retained on the server 14. In response to a
user request from the client 18 for the active document 10, the server 14 transmits over the
communication channel 30 the content components 38 of the active document 10 to the client 18.
The contents components 38 may be transmitted all together, or each component may be
transmitted as the browser 22 encounters it, i.e., the components 38 may be transmitted "on
demand."
The server 14 provides a DOM Proxy 50, which includes a DOM API 42. The
executable portion 34 of the active document 10 issues commands to the DOM Proxy 50 and
receives output from the DOM Proxy 50 as if it were directly interacting with the DOM API
provided by the browser application 22. The DOM Proxy 50 may accept more commands than
the DOM API does. In this embodiment, the DOM Proxy translates additional commands into one or more commands the DOM API provides. In some embodiments, the DOM API 42 provided by the DOM Proxy 50 may be enhanced to provided additional functionality, or it may
conform to the DOM Level 0 specification or DOM Level 1 specification promulgated by the
World Wide Web Consortium.
The DOM Proxy 50 receives commands from the executable portion of the active
document 10 and transmits them to the client node 18 via the communication channel 30. The
DOM Proxy 50 may also receive data from the client 18 over the communications channel 30 and provide the received data to the executable portion 34 of the active document 10. The DOM
Proxy 50 may be provided as a servlet or application program. For example, the DOM Proxy 50
may be provided as a JAVA bean or an Active X control. Alternatively, the DOM Proxy 50 may
be provided by modifying a browser application 22 to transmit data over the communications channel 30 rather than rendering the results of DOM API commands as visual display.
The client node 18 and the server node 14 can communicate with each other using a
variety of network connections including standard telephone lines, LAN or WAN links (e.g., TI,
T3, 56kb, X.25), broad band connections (ISDN, Frame Relay, ATM), and wireless connections.
Connections can be established using a variety of communication protocols (e.g., TCP IP, HTTP,
IPX, SPX, NetBIOS, Ethernet, RS232, and direct asynchronous connections).
The client 18 includes a DOM Access Module (DAM) 46. The DAM 46 communicates
with the DOM Proxy 50 over the communications channel 30. The DAM 46 issues DOM API
calls to the DOM API 42 provided by the browser 22 in response to data received from the DOM
Proxy 50 over the communications channel 30. The DOM Proxy 50 and the DAM 46 may pack
and unpack data for transfer over the communications channel 30. Alternatively, the DOM
Proxy 50 and the DAM 46 may enhance a standard protocol or provide their own protocol for transmission of data. The DAM 46 may be provided as a script, applet, plug-in or application
program. For example, the DAM 46 may be provided as a JAVA bean or an Active X control.
FIG. 5 depicts the system of FIG. 4 in more detail. In the embodiment shown, the client
18 executes a browser 22 which establishes an initial connection 30a with web server software
54 located on the server 14 using the communications channel 30. The browser 22 may be any
appropriate browser application, such as NETSCAPE NAVIGATOR, manufactured by Netscape
Communications of Mountain View, California or INTERNET EXPLORER manufactured by
Microsoft Corporation of Redmond, Washington. The server 14 executes any web server
software 54, such as the APACHE WEB SERVER, an open-source web server coordinated by The Apache Foundation of Forest Hill, Maryland or INTERNET INFORMATION SERVER,
manufactured by Microsoft Corporation of Redmond, Washington. The web server software 54
receives a request for an active document 10 from the client browser 22 executing on the client 14 and retrieves the requested active document 10. The server 14 may retrieve the active
document 10 from mass storage, such as tape, magnetic disk, optical disk, or CD-ROM. Alternatively, the server 14 may retrieve the document 10 from memory, such as RAM or ROM,
or from another server, for example, via a network connection.
Once the browser 22 has established the initial communications between client 18 and
server 14, active document 10 data transfer between client 18 and server 14 occurs through a
second channel 30b. This second channel 30b is a communication channel established between a
DAM 46 on the client 18 and the DOM Proxy 50 on the server 14. Data transfer to and from the
active document 10 also occurs through this channel 30b. The DAM 46 and the DOM Proxy 50
communicate using a protocol that allows individual elements of an active document to be
identified and represented so that changes in an individual element can be communicated between the DAM 46 and the DOM proxy 50. In some embodiments, a numeric handle or
"ticket" uniquely identifies each component.
In one embodiment, the protocol used by the DAM 46 and the DOM Proxy 50 allows the
DOM Proxy 50 to indicate that it should receive notification of certain events occurring on the
client 18. In these embodiments, the DOM Proxy 50 associates a handler routine with the ticket
identifying the event in which it has an interest, such as a "MouseClicked" event. When that
event occurs on the client 18, the DAM 46 notifies the DOM Proxy 50. In embodiment, the
DAM 46 notifies the DOM Proxy 50 by sending a message to the DOM Proxy indicating the
event has occurred and includes the ticket and, optionally, a description of the event. The DOM
Proxy may also indicate that it is no longer interested in an event by sending a message to the
DAM 46 including the ticket identifying the event. In a particular embodiment, the DAM 46 responds to such a message with an acknowledgement, allowing the DOM Proxy 50 to release
the binding between the ticket and the handler for the event, e.g., the DOM Proxy 50 can remove
an entry in a table associating the handler and the event.
FIGs. 6 and 7 depict state machines describing one embodiment of DAM behavior and
DOM Proxy behavior that implement a protocol useful in connection with the present invention.
Once the client 18 has made the initial connection with a server 14, the DAM 46 is in an Initial
state 60 and the DOM Proxy 50 is in an Initial state 80. The DAM 46 remains in the Initial state
60 until an active document 10 identifies an executable portion 34 associated with a content
component. Once an executable portion 34 is identified, the DAM 46 initiates a connection with
the DOM Proxy 50 on the server 14 (arrow 62) and enters a Connect Pending state 64.
In one embodiment, initiation of the connection yarrow 62) is accomplished by sending a
message to the server 14 indicating that a connection is rec uested. In some embodiments, the connect message may include information relaxing to the requested connection, such as the active document 10 to which the connection request relates, a maximum number of content components
that may be specified during the connection, the preferred speed at which to transfer information
relating to content components, and whether to use encryption when transferring data.
If the DOM Proxy 50 accepts the connection request, the DAM 46 receives one or more
messages from the DOM Proxy 50 acknowledging the connection request (arrow 82 of FIG. 7
and arrow 66 of FIG. 6). The DAM 46 transitions to a Connected state 68 and the DOM Proxy transitions to a Connected state 84. The acknowledgment messages received from the DOM
Proxy 50 may include application initialization results, including one or more commands
instructing the DAM 46 to make changes to one or more content components of the active
document 10.
If the DOM Proxy 50 rejects the connection request or if the connection fails for some
other reason, such as physical media failure, absence of a response from the server 14, server
failure or an explicit signal from the local transport mechanism indicating a loss of server
responsiveness, the DAM 46 returns to the Initial state 60.
While in their respective Connected states 68, 84 the DAM 46 and the DOM Proxy 50
may both initiate synchronous and asynchronous messages. Synchronous messages require acknowledgement of completion, while asynchronous messages do not require any
acknowledgement. Table 1 below lists a number of exemplary messages that may be generated by a server.
Table 1 - Exemplary messages generated by server
Figure imgf000012_0001
Figure imgf000014_0001
The DOM Proxy 50 may generate a number of asynchronous commands that may be sent to the
DAM 46 in any order. When transmitting asynchronous commands to the DAM 46, the DOM
Proxy 50 remains in the Connected state 85 (arrow 86), as does the DAM 46 (arrow 70). When
the DOM Proxy 50 transmits a synchronous event to the DAM 46, the DOM Proxy enters a
Client Busy state 90 (arrow 88). In this state, the DOM Proxy 50 waits for the DAM 46 to
respond to the synchronous command. The DOM Proxy 50 returns to the Connected state 84
upon receipt of a response from the DAM 46 (arrow 92). The DAM remains in the Connected
state 68 when responding to synchronous messages from the DOM Proxy 50 (arrow 72). Examples of DAM 46 responses are shown in Table 2 below:
Table 2 - Exemplary messages generated by client
Figure imgf000014_0002
Input from the user that the DOM Proxy 50 has identified as being of interest is sent from
the browser 22 to the DAM 46 for transmission to the DOM Proxy 50. The DAM 46 transmits a
synchronous event message to the DOM Proxy 50 and transitions to an Event Sent state 76
(arrow 74). When the DOM Proxy receives the synchronous message from the DAM 46, it
transitions to an Event Received state 96 (arrow 94). While in Event Sent state 76, the DAM 46
remains able to receive and respond to messages from the DOM Proxy 50 as in its Connected
state 68 (arrows 72', 70'). While in its Event Sent state 76, however, the DAM 46 may not
generate additional event messages and, therefore, the browser 22 will not respond to user input. When the DAM 46 transmits a synchronous event message to the DOM Proxy 50, the
DOM Proxy 50 transitions to an Event Received state 96 (arrow 94). In this state, the DOM
Proxy 50 interacts with the executable portion of the active document 10 to update the active
document 10. Once the active document has been updated with the user input, the DOM Proxy
50 transmits a message indicating that the event has been processed to the DAM 46 and
transitions to the Connected state 84 (arrow 98). Similarly, the DAM transitions to its Connected
state 68 (arrow 78).
Data associated with the active document 10 is received by the DOM proxy 50 and
communicated to the executable portion 34 of the active document 10 and/or other applications
58 residing on the server 14. Similarly, data associated with the active document 10 destined for the client 18 is sent to the DOM proxy 50 for transmittal.
In one exemplary embodiment, Fig. 8 shows an active document 10 that is a real estate
web page 100. One feature of this web page is to create a table 120 within the active document
10 according to the user's selected criteria. This web a^e 100 displays several components 104,
108, 112, 116, 120 that would be included as part of the co tents portion 38 of the active
document that is sent to the client 18. One component is an ima e map of the United Kingdom 104. This is used to select a
particular county. There are also several instances of a check box component 108 for the user to
identify criteria to be used in the search. There are four instances of a selection component 1 12
for the user to select out of a group of items. There are 2 instances of a text field component 116
for the user to select price. There is a table component 120 and it is empty when it is initially
sent as part of the contents portion 38 of the active document 10.
The picture component 124 is not initially sent to the client 18 as part of the contents
portion 38. As stated above, in addition to altering the components of the contents portion 38,
the executable portion 34 may also add or remove components from the contents portion 38. The
picture component 124 is an example of a component that is not sent to the client 18 until there is
some user input.
The executable portion 34 of the web page 100 remains on the server 14. The executable
portion 34 monitors the user inputs (i.e., monitors the components 104, 108, 1 12, 1 16 of the
contents portion 38) and creates the table component 120 in response to those user selections.
The database of available real estate that is used to select from may be part of the executable
portion 34 or it may be part of the other applications 58.
The executable portion also alters the other components of the contents portion 38. For
example, when the cursor is moved over a county in the UK image map 104 and there is a mouse
click, the executable portion 34 will change the list of towns in the town selection component
1 12a to match the selected county. In more detail, to effect this change, the following steps
occur. The client 18 establishes initial communication with the server 14 over communication
channel 30, which is the Internet. The browser 22 sends the web server software 54 the URL
corresponding to the real estate web page 100. The web server software retrieves the web page
100 (i.e., active document 10) from its storage location. The web page 100 is defined in accordance with the DOM Level 1 specification. The server 14 transmits the contents portion 38 of the web page 100 to the client 18. The browser 22 accesses the contents portion 38 of the web
page using the DOM API 42 and displays the web page 100 by displaying each of the
components 104, 108, 1 12, 116, 1120 of the contents portion 38.
For data transfer associated with the web page 100, the browser 22 initializes the DAM
46, if not initialized and establishes a communication channel 30b for data transfer to and from
the DAM 46. If the client does not have a DAM 46, then one may be downloaded in several
different ways including with the contents portion 38 of the web page 100. For data transfer
associated with the web page 100, the web server software 54 initializes the DOM Proxy 50, if not initialized and establishes a communication channel 30b for data transfer to and from the
DOM Proxy 50.
As the user on the client 18 performs a mouse click on one county on the UK image map
104, this event is captured by the client-based DOM API 42 and sent to the DAM 46. The DAM
46 packs the data representing this event and transmits it to the DOM Proxy 50 according to, for
example, the steps identified in connection with FIG. 6. The DOM Proxy 50 unpacks the data
and transmits it, via the server 14 based DOM API 42 to the executable portion 34. In response to this event, the executable portion 34 creates a command to alter the town selection list
component 112a in the contents portion 38 to make the list match the county selected. The
executable portion retrieves the list of applicable towns. The executable portion 34 issues a
command to change the selection list component 112a to the retrieved list. The executable
portion 34 sends this command to the server 14 based DOM API 42. The DOM Proxy 50 packs
the data representing this command and transmits it to the DAM 46. The DAM 46 unpacks the
data and sends the command to the client 18 based DOM API 42. The client-based DOM API 42
readily understands this command, as it was issued for the server-based DOM API 42. Beside the transmission delay, this creates a seamless operation, even though the executable portion 34
is executed remotely from the client 18. The client based DOM API 42 then alters the component 112a according to the command and the selection list is updated. As the DOM API is
altering the component 112a in its storage location, the browser modifies the display accordingly.
The invention may be embodied in other specific forms without departing from the spirit
or essential characteristics thereof. The foregoing embodiments are therefore to be considered in
all respects illustrative rather than limiting on the invention described herein. Scope of the
invention is thus indicated by the appended claims rather than by the foregoing description, and
all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.

Claims

CLAIMS What is claimed is: 1. A method for providing an active document to a client over a communication channel, said active document including a contents portion and an executable portion, said method comprising the steps of:
(a) transmitting over said communication channel to said client at least a part of said contents portion of said active document;
(b) generating output data from said executable portion of said active document; and
(c) transmitting over said communication channel to said client said generated output data to change at least a part of said transmitted content portion of said active document by said client.
2. The method of claim 1 further comprising the step of receiving from said client a request identifying said active document.
3. The method of claim 1 further comprising the step of receiving from said client a URL address identifying said active document.
4. The method of claim 1 wherein step (b) comprises:
(b-a) receiving data from said client; and
(b-b) generating, responsive to said received data, output data from said executable portion of said active document.
5. The method of claim 1 further comprising the step of maintaining said executable portion of said active document on a server.
6. The method of claim 1 further comprising the steps of:
a) executing said executable portion of said active document; b) changing at lea it a part of said contents portion of said active document in response to said execution of said executable portion of said active document.
7. The method of claim 1 further comprising the steps of:
a) executing a second application that interacts with said active document; and
b) changing at least a part of said contents portion of said active document in response to said execution of said second application.
8. A server for providing an active document to a client over a communication channel, said active document including a contents portion and an executable portion, said server comprising:
an output data generator producing output data in response to said executable portion of said active document; and
a transceiver receiving said generated output data for transmission over said communications channel, said transceiver including an API for manipulating said contents portion of said active document.
9. The server of claim 8 wherein said output data generator produces output data in response to input data received from said communications channel.
10. The server of claim 9 wherein said API comprises a DOM API.
11. The server of claim 9 wherein said transceiver transmits generated output data over said communications channel.
12. A client for receiving over a communications channel and displaying an active document, said active document including a contents portion and an executable portion, said client comprising:
a browser interface, said browser interface in communication with a browser application;
a transceiver receiving data via said communication channel and transmitting received data to said browser interface.
PCT/US2000/034848 1999-12-23 2000-12-20 Server-based active document control WO2001046863A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
AU24480/01A AU2448001A (en) 1999-12-23 2000-12-20 Server-based active document control
KR1020027008175A KR20020063602A (en) 1999-12-23 2000-12-20 Server-based active document control
IL15010700A IL150107A0 (en) 1999-12-23 2000-12-20 Server-based active document control
EP00988253A EP1240603A1 (en) 1999-12-23 2000-12-20 Server-based active document control
JP2001547310A JP2003518297A (en) 1999-12-23 2000-12-20 Working with server-based active documents
CA002392799A CA2392799A1 (en) 1999-12-23 2000-12-20 Server-based active document control
HK02109430.7A HK1047985A1 (en) 1999-12-23 2002-12-31 Server-based active document control

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47082599A 1999-12-23 1999-12-23
US09/470,825 1999-12-23

Publications (1)

Publication Number Publication Date
WO2001046863A1 true WO2001046863A1 (en) 2001-06-28

Family

ID=23869211

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/034848 WO2001046863A1 (en) 1999-12-23 2000-12-20 Server-based active document control

Country Status (8)

Country Link
EP (1) EP1240603A1 (en)
JP (1) JP2003518297A (en)
KR (1) KR20020063602A (en)
AU (1) AU2448001A (en)
CA (1) CA2392799A1 (en)
HK (1) HK1047985A1 (en)
IL (1) IL150107A0 (en)
WO (1) WO2001046863A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
US5973696A (en) * 1996-08-08 1999-10-26 Agranat Systems, Inc. Embedded web server

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
US5973696A (en) * 1996-08-08 1999-10-26 Agranat Systems, Inc. Embedded web server

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JERN M: ""Thin" vs. "fat" visualization client", PROCEEDINGS COMPUTER GRAPHICS INTERNATIONAL (CAT. NO. 98EX149), HANNOVER, GERMANY, 22 June 1998 (1998-06-22) - 26 June 1998 (1998-06-26), IEEE Comput. Soc., Los Alamitos, CA, USA, pages 772 - 788, XP002166588, ISBN: 0-8186-8445-3 *
KÖPPEN E ET AL: "A practical approach towards active hyperlinked documents", COMPUTER NETWORKS AND ISDN SYSTEMS, vol. 30, no. 1-7, 1 April 1998 (1998-04-01), NORTH HOLLAND PUBLISHING, AMSTERDAM, NL, pages 251 - 258, XP004121422, ISSN: 0169-7552 *

Also Published As

Publication number Publication date
IL150107A0 (en) 2002-12-01
CA2392799A1 (en) 2001-06-28
JP2003518297A (en) 2003-06-03
EP1240603A1 (en) 2002-09-18
HK1047985A1 (en) 2003-03-14
AU2448001A (en) 2001-07-03
KR20020063602A (en) 2002-08-03

Similar Documents

Publication Publication Date Title
US6489980B1 (en) Software apparatus for immediately posting sharing and maintaining objects on a web page
US6067579A (en) Method for reducing message translation and traffic through intermediate applications and systems in an internet application
US5870767A (en) Method and system for rendering hyper-link information in a printable medium from a graphical user interface
US6505242B2 (en) Accessing page bundles on a portable client having intermittent network connectivity
US6449635B1 (en) Electronic mail deployment system
EP2256646B1 (en) Improvements in and relating to remote user interfaces
US5787254A (en) Web browser method and system for display and management of server latency
US7167142B2 (en) Multi-user display system
US7725906B2 (en) Method and device for executing a function with selection and sending of multiple results in a client-server environment
US6880010B1 (en) Methods, systems, and computer program products that request updated host screen information from host systems in response to notification by servers
US20020038346A1 (en) Method for screen image sharing
US20020198964A1 (en) Method and system for wireless remote monitoring and control of a manufacturing execution system
MXPA01008827A (en) Dual ethernet stack for maximum speed access to a plc
EP2254302A2 (en) Method and apparatus for restoring state information of remote user interface
WO2002050706A2 (en) Method and system for fulfilling requests for information from a network client
EP1454247A1 (en) System and method for downloading data using a proxy
US9342141B2 (en) Audio/video device, apparatus and method for controlling audio/video device
US20030149749A1 (en) Method of data refreshing of a mark-up- language document
KR20020041332A (en) Content server device
WO2001046863A1 (en) Server-based active document control
EP1225748A2 (en) Communications terminal
EP1146710A1 (en) Network image communication system
CA2421530A1 (en) Systems and methods for virtually representing devices at remote sites
FR2796511A1 (en) Internet high rate remote client controlled server document amendments system having terminal request with dynamic library address identifying function Internet sent and server analyzing word field/selecting table/functions.
JP2001306450A (en) Network image communication system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG 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 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: 2392799

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 24480/01

Country of ref document: AU

Ref document number: IN/PCT/2002/727/KOL

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 150107

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 2000988253

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2001 547310

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020027008175

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020027008175

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2000988253

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2000988253

Country of ref document: EP