WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for modifying copies of remotely stored documents using a web browser    
United States Patent5991760   
Link to this pagehttp://www.wikipatents.com/5991760.html
Inventor(s)Gauvin; William Joseph (Leominster, MA); Jones; Harold (Northboro, MA); Taranto; Edward James (Boston, MA)
AbstractA local client computer includes a local hypertext server, a local application program, and a downloader for downloading a copy of a remote network document (local copy), that is accessible by the local application program, onto the client computer. When connected to the network, a downloader is executed to create the local copy on the client. When disconnected, the local copy may be accessed and modified through the client browser in a manner that is similar to when the client is connected to the network.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Gauvin; William Joseph (Leominster, MA); Jones; Harold (Northboro, MA); Taranto; Edward James (Boston, MA)
Owner/Assignee     Digital Equipment Corporation (Maynard, MA)
Patent assignment
All assignments
Publication Date     November 23, 1999
Application Number     08/883,240
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 26, 1997
US Classification     707/10 709/217 709/218 715/501.1 715/513
Int'l Classification     G06F 017/30
Examiner     Black; Thomas G.
Assistant Examiner     Alam; Hosain T.
Attorney/Law Firm     Williams, Morgan & Amerson, P.C.
Address
Parent Case    
Priority Data    
USPTO Field of Search     707/10 707/501 707/513 707/104 707/1 707/2 707/3 395/200.47 395/200.48 395/200.54 395/200.57 395/200.3 395/200.32 395/200.33 395/200.49
Patent Tags     modifying copies remotely stored documents web browser
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5841978
Rhoads
709/217
Nov,1998

[0 after 0 votes]
5826242
Montulli
705/27
Oct,1998

[0 after 0 votes]
5784564
Camaisa

Jul,1998

[0 after 0 votes]
5781909
Logan
707/200
Jul,1998

[0 after 0 votes]
5774670
Montulli

Jun,1998

[0 after 0 votes]
5764906
Edelstein
709/219
Jun,1998

[0 after 0 votes]
5754774
Bittinger

May,1998

[0 after 0 votes]
5732219
Blumer
709/227
Mar,1998

[0 after 0 votes]
5721851
Cline
715/839
Feb,1998

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


Having thus described the invention, what we desire to claim and secure by Letters Patent is:

1. A computer system having a processor and a memory, and being connectable to a remote network device by a network, the computer system comprising:

A) a downloader for downloading a copy of a remote document from the remote network device into the memory of the computer system;

B) a local hypertext server;

C) a client a browser coupled with the local hypertext server for producing browser request to modify the remote document;

D) an interceptor coupled with the client browser for intercepting transmissions between the client browser and the remote network device, the transmissions including a browser request to modify the remote document;

E) a local application program executable by the processor of the computer system for receiving information in a template from the client browser through the local hypertext server, and, responsive to the intercepted browser request, modifying the remote document copy to reflect the information provided by the template; and

F) an update mechanism for causing the remote document on the remote network device to be updated to reflect modifications made by the application program to the remote document copy.

2. The computer system of claim 1, wherein the local hypertext server can format the browser requests and direct the formatted requests to the local application program.

3. The computer system of claim 1, wherein the local application program utilizes CGI.

4. The computer system of claim 1, wherein the local application program utilizes JAVA Applet.

5. The computer system of claim 1, wherein the local application program utilizes ISAPI.

6. The computer system of claim 1, further including:

means for downloading an application program into the memory of the computer system from the remote network device to produce the application program, whereby the local application is compatible with the application program on the remote network device.

7. The computer system of claim 6, wherein the downloading means includes:

A) means for receiving a transmission list from the remote network device to the computer system;

B) means for downloading onto the local computer system, in response to receipt of the list, the remote document from the remote network device to produce the remote document copy;

C) means for creating a directory structure on the local computer system that is substantially similar to a tree structure on the remote network device, the tree structure on the remote network device including the remote document; and

D) means for creating a mapping table including data for identifying the location of the remote document copy in the local directory structure.

8. The computer system of claim 7:

A) further including means for using the local mapping table in locating the remote document copy in the memory of the computer system; and

B) wherein, in response to the browser request to modify the remote document, the local application program produces a modified remote document copy.

9. The computer system of claim 8, further including:

means for displaying the modified remote document copy on a display device included in the local computer system.

10. The computer system of claim 8, further including:

means for transmitting the modified remote document copy to the remote network device for reconciliation with the remote document.

11. The computer system of claim 1, further including:

the downloader that is responsive to the browser request in downloading the remote document copy; the application program making modifications in the remote document copy in accordance with the browser request; and the update mechanism causing the modifications in the remote document copy to be reflected in the remote document on the remote network device.

12. The computer system of claim 1, further comprising a connection manager for determining if the computer system is connected to the network, and wherein, in response to the connection manager:

A) the downloader downloads the remote document copy when the computer system is connected to the network;

B) the application program modifies the remote document copy when the computer system is disconnect from the network; and

C) the update mechanism causes the remote document to be updated when the computer system is connected to the network.

13. The computer system of claim 1, wherein the remote document is a database.

14. A computer system having a processor and a memory, and being connectable to a remote network device by a network, the computer system comprising:

A) a browser;

B) an interceptor coupled with the browser for intercepting transmissions between the browser and the remote network device when the computer system is not connected to the network, the transmissions including a browser request to modify a remote document that is stored on the remote network device;

C) a downloader responsive to the browser request for downloading a local copy of the remote document into the memory of the computer system from the remote network device;

D) a hypertext server coupled with the interceptor for formatting data received from the interceptor into formatted data having a selected interface format, said formatted data including a number of changes to be made in the remote document;

E) a local application program executable by the processor for receiving the formatted data from the hypertext server and effectuating the changes in the local copy of the remote document; and

F) a mechanism for accessing a reconciliation engine in the remote network device to cause the changes in the local copy to be reflected in the remote document on the remote network device.

15. The computer system of claim 14, wherein the local hypertext server comprises:

A) an engine for formatting data received from the interceptor into the formatted data;

B) a directory mapping table for identifying a location of the local copy of the remote document in a directory structure that is substantially similar to a tree structure on the remote network device, the tree structure containing the remote document;

C) a data pump for downloading the remote document from the remote network device; and

D) a cache control for causing the data pump to download the local copy of the remote document from the remote network device to the memory of the computer system.

16. The computer system of claim 14, wherein the interceptor comprises:

A) a redirector for receiving browser requests from the browser and directing specified requests to the local hypertext server; and

B) a connection manager for determining if the computer system is connected to the network.

17. A method of processing a remote document stored in a network device remote from a local computer system, the local computer system having a processor, a memory, and a client browser, and being connectable to the remote network device by a network, the method comprising the steps of:

A) a client browser producing a browser request to modify the remote document;

B) intercepting the browser request;

C) responsive to the browser request, downloading a copy of the remote document from the remote network device into the memory of the computer system;

D) a local hypertext server conveying information in a template from the client browser to a local application program executable by the processor of the local computer system;

E) using the local application program in modifying the remote document copy to reflect modifications to the remote document as indicated by the browser request; and

F) causing the remote document on the remote network device to be updated to reflect the modifications made by the application program to the remote document copy.

18. The method of claim 17, further comprising the step of the local hypertext server formatting the browser request and directing the formatted request to the local application program.

19. The method of claim 17, wherein the downloading step further comprises the steps of:

A) receiving a transmission list from the remote network device to the local computer system;

B) downloading onto the local computer system, in response to receipt of the list, the remote document from the remote network device to produce the remote document copy;

C) creating a local directory structure on the local computer system that is substantially similar to a tree structure on the remote network device, the tree structure on the remote network device including the remote document; and

D) creating a local mapping table including data for identifying the location of the remote document copy in the local directory structure.

20. The method of claim 17, further including the step of:

A) locating the remote document copy in the memory of the computer system if the computer system is not connected to the network; and

B) executing the local application program, in response to a browser request, to modify the remote document copy, the local application program producing a modified remote document copy.

21. The method of claim 17, further including the step of:

displaying the modified remote document copy on a display device included in the local computer system.

22. The method of claim 17, further including the step of:

transmitting the modified remote document copy to the remote network device for reconciliation with the remote document.

23. A computer program product comprising:

A) a computer usable media having computer readable program code thereon for processing a remote document stored in a network device remote from a local computer system executing the computer readable program code, the local computer system having a processor, a memory, and a browser, and being connectable to the remote network device by a network, the computer readable program code comprising:

B) program code for producing a browser request to modify the remote document;

C) program code for intercepting the browser request;

D) program code, responsive to the browser request, for downloading a copy of the remote document from the remote network device into the memory of the computer system;

E) program code for causing a local hypertext server to convey information in a template from the client browser to a local application program executable by the processor of the local computer system;

F) program code for using the local application program in modifying the remote document copy to reflect modifications to the remote document as indicated by the browser request; and

G) program code for causing the remote document on the remote network device to be updated to reflect the modifications made by the application program to the remote document copy.

24. The computer program product of claim 23, further comprising program code for causing the local hypertext server to format the browser request and direct the formatted request to the local application program.

25. The computer program product 23, further comprising:

A) program code for receiving a transmission list from the remote network device;

B) program code for downloading onto the local computer system, in response to receipt of the list, the remote document from the remote network device to produce the remote document copy;

C) program code for creating a local directory structure on the local computer system that is substantially similar to a tree structure on the remote network device, the tree structure on the remote network device including the remote document; and

D) program code for creating a local mapping table including data for identifying the location of the remote document copy in the local directory structure.

26. The computer program product of claim 23, further including:

A) program code for locating the remote document copy in the memory of the computer system if the computer system is not connected to the network; and

B) program code for causing execution of the local application program, in response to a browser request, to modify the remote document copy, the local application program producing a modified remote document copy.

27. The computer program product of claim 23, further including:

program code for causing the modified remote document copy to be displayed on a display device included in the local computer system.

28. The computer program product of claim 23, further including:

program code for causing the modified remote document copy to be transmitted to the remote network device for reconciliation with the remote document.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

This invention relates generally to data transmission networks and, more particularly, to using a common gateway interface for updating a copy of a remote document stored in a local computer system.

BACKGROUND OF THE INVENTION

FIG. 1 shows a commonly used network arrangement in which a plurality of local computer systems in a local area network (LAN) may access a plurality of remote servers through the Internet. Each remote server may include World Wide Web sites (web sites) that each include a plurality of World Wide Web pages (web pages). Each local computer system may access the remote web sites with web browser software, such as Netscape Navigator.TM., available from Netscape Communications Corporation of Mountain View, Calif.

The World Wide Web is a collection of servers on the Internet that utilize the Hypertext Transfer Protocol (HTTP). HTTP is a known application protocol that provides users with access to files (which can be in different formats, such as text, graphics, images, sound, and video) using a standard page description language known as Hypertext Markup Language (HTML). HTML is used to transmit data and instructions between a remote computer (server) and a local computer (client) in a form that is understandable to the browser software on the client computer. More particularly, HTML files may include many different types of format descriptions that are translated and displayed by the client browser. One such format description, for example, may describe a template for receiving information that is intended to modify a selected database on a remote server. A remote database application program, also stored on the remote server, receives the information from the template and consequently modifies the database. Information entered in the template by the client browser typically is transferred into the database, via the database application program, by an interface specification (interface) that is a part of a hypertext server within the server. The interface format may be any known interface format such as, for example, Common Gateway Interface (CGI), Internet Server Application Program Interface (ISAPI, co-developed by Microsoft Corporation and Process Software Company), or JAVA Applet (developed by Sun Microsystems). CGI is discussed in more detail in "The WWW Common Gateway Interface", version 1.1, in Internet draft form, dated Feb. 16, 1996, by DRT Robinson.

As shown in simplified form in FIG. 2, the interface is a data specification used by the hypertext server to format data transferred between the client web browser and a database application program stored on the server (application program). More particularly, the hypertext server first extracts data submitted from the templates (by the client browser), translates such data into the format of the interface specification, and then transmits the translated data to the application program to update the data stored in the database. After the database is updated, the hypertext server may create a new HTML document reflecting the modifications to the database. The new HTML document then may be transmitted to the client, through the network, for review by the users of the client.

Problems arise, however, when the client is not connected to the network and thus, not able to access the database or the application program. Specifically, the client can not modify the database until reconnected to the network.

Accordingly, it would be desirable to have an apparatus and method that enables a client to locally update a database, normally located on a remote server, when the client is not connected to the network.

SUMMARY OF THE INVENTION

In accordance with one aspect of the invention, the client computer includes a local hypertext server, a local application program, and a downloader for downloading a copy of a remote network document (remote document copy), that is accessible by the local application program, onto the client computer. When connected to the network, a user executes the downloader to create the remote document copy on the client. When disconnected, the user is able to access and modify the remote document copy through the client browser in a manner that is similar to when the client is connected to the network. Specifically, the client browser conveys information in a template to the local application program through the local hypertext server. The application program consequently modifies the remote document copy in accordance with the information to be added to the remote document copy. Upon reconnect to the network, the client computer then updates the remote document to reflect the changes made by the client computer during disconnect.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects and advantages of the invention will be appreciated more fully from the following further description thereof with reference to the accompanying drawings wherein:

FIG. 1 is a block diagram of a generic network configuration that may be used with the disclosed system;

FIG. 2 is a block diagram of a prior art network configuration using a hypertext server with a common gateway interface at an origin server;

FIG. 2A is a block diagram of a client computer system suitable for use with the disclosed system;

FIG. 3A is a block diagram of a prior art client computer;

FIG. 3B is a block diagram of the client computer shown in FIG. 3A with the disclosed system;

FIG. 4 is an illustration showing the graphical user interface used to initiate the disclosed system;

FIG. 5 is a block diagram of a network configuration that may utilize an interface specification at a client computer;

FIG. 6 is a block diagram of the local interface specification on the client computer;

FIG. 7 is a flow chart illustrating a process for downloading a database from an origin server; and

FIG. 8 is a flow chart illustrating a process for accessing and modifying a downloaded database.

FIG. 9 is a flow chart illustrating a process for downloading selected web pages onto the client computer;

FIG. 10 is a flow chart illustrating a process of filtering web pages in the CFHD system;

FIGS. 11A and 11B are flow charts illustrating a tree retrieval process that may be utilized with the cache from here down (CFHD) system;

FIGS. 11C, 11D, and 11E are flow charts that collectively illustrate a process of creating a local directory structure;

FIG. 12 is a flow chart illustrating a process for creating a local image map mapping table;

FIG. 13 is an exemplary network configuration that may be used with the autoupdate system;

FIG. 14 is a flow chart illustrating a process for initiating the autoupdate process prior to disconnect;

FIG. 15 is a flow chart illustrating a process for updating an update copy during disconnect;

FIG. 16 is a flow chart illustrating a process for updating a client copy after reconnect;

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 2A illustrates the system architecture for an exemplary client computer system 200, such as an IBM THINKPAD 701.RTM. computer or Digital Equipment Corporation HiNote.TM. computer, on which the disclosed network access system (system) can be implemented. The exemplary computer system of FIG. 2 is discussed only for descriptive purposes, however, and should not be considered a limitation of the invention. Although the description below may refer to terms commonly used in describing particular computer systems, the described concepts apply equally to other computer systems, including systems having architectures that are dissimilar to that shown in FIG. 2.

The client computer 200 includes a central processing unit (CPU) 205, which may include a conventional microprocessor, random access memory (RAM) 210 for temporary storage of information, and read only memory (ROM) 215 for permanent storage. A bus controller 225 is provided for controlling bus 230, and an interrupt controller 235 is used for receiving and processing various interrupt signals from the other system components.

Mass storage may be provided by diskette 242, CD-ROM 247, or hard disk 252. Data and software may be exchanged with client computer 200 via removable media, such as diskette 242 and CD-ROM 247. Diskette 242 is insertable into diskette drive 241, which is connected to bus 230 by controller 240. Similarly, CD-ROM 247 is insertable into CD-ROM drive 246, which is connected to bus 230 by controller 245. Finally, the hard disk 252 is part of a fixed disk drive 251, which is connected to bus 230 by controller 250.

User input to the client computer 200 may be provided by a number of devices. For example, a keyboard 256 and a mouse 257 may be connected to bus 230 by keyboard and mouse controller 255. An audio transducer 296, which may act as both a microphone and a speaker, is connected to bus 230 by audio controller 297. It should be obvious to those reasonably skilled in the art that other input devices, such as a pen and/or tablet and a microphone for voice input, may be connected to client computer a 200 through bus 230 and an appropriate controller. DMA controller 260 is provided for performing direct memory access to system RAM 210. A visual display is generated by a video controller 265, which controls video display 270.

Client computer 200 also includes a network adapter 290 that allows the client computer 200 to be interconnected to a network 295 via a bus 291. The network 295, which may be a local area network (LAN), a wide area network (WAN), or the Internet, may utilize general purpose communication lines that interconnect a plurality of network devices. FIG. 1 shows one network arrangement for use with the system in which a plurality of local computer systems (client computers 200) in a LAN are connected to the a plurality of remote network sites 100 via the Internet. The remote sites 100 may be World Wide Web sites (web sites), stored on one or more remote network devices, that each include a plurality of web pages. Each accessible web site may be accessed with web browser software 399 (FIG. 3B), such as Netscape Navigator.TM., available from Netscape Communications Corporation of Mountain View, California.

Client computer system 200 generally is controlled and coordinated by operating system software, such as the WINDOWS 95.RTM. operating system (available from Microsoft Corp., Redmond, Wash.). Among other computer system control functions, the operating system controls allocation of system resources and performs tasks such as process scheduling, memory management, networking and I/O services.

FIG. 3A shows in more detail a prior art configuration of the client computer 200 connected to a network. Specifically, the client computer 200 includes the network adapter 290, the operating system 292, a network protocol stack 393 (e.g., Microsoft TCP/IP.RTM., from Microsoft Corp.), and the browser 399. The browser 399 transmits requests to the network stack 393, which processes the requests and transmits them to the network 295 via the network adapter 290 and operating system 292. Similarly, responses from the network 295 are received by the network stack 393, via the network adapter 290 and operating system 292, and then provided to the browser 399. When downloading a remote web page from a remote server, for example, the browser 399 first transmits a request for the web page, with the web page Uniform Resource Locator ("URL"), to the network stack 393. The network stack 393 responsively locates the a remote server and then transmits the request to the remote server via the operating system 292 and network adapter 290. The web page then is transmitted to the network adapter 290, via the network 395, and received by the network stack 393. The retrieved web page then is provided to the browser 399 for display on the client computer 200.

Improving on the configuration shown above in FIG. 3A, FIG. 3B shows a preferred embodiment of the system. Specifically, an interceptor 394 is added to the client computer 200 to intercept transmissions between the browser 399 and the network stack 393. Such transmissions may be a request by the browser 399 to access a web page on a remote server. Upon receipt of such transmissions, the interceptor 394 provides improved functionality for the client computer 200. Among the improvements is the capability of accessing locally stored web pages through the browser 399 without requiring that the user either preconfigure the browser 399, or notify the browser 399 that the client computer 200 is disconnected from the network 295.

The system thus includes the interceptor 394 and a mechanism for ascertaining if the client computer 200 is connected to the network 295. If the client computer 200 is connected to the network 295, the address (ie., URL) of the web page is determined from the request. A fetch command then is transmitted to the remote server having the web page, thereby causing the client computer 200 to download the web page from the remote server. Conversely, if the client computer 200 is not connected to the network 295, the system includes a mechanism for locating the web page in the memory of the client computer 200 if such web page already had already been downloaded. The downloaded web page preferably is stored in a local directory structure constructed as discussed below with reference to FIGS. 11C, 11D, and 11E.

Use of the interceptor 394 thus enables the user to access a web page via the browser 399, during disconnect, in a manner similar to that when the client computer 200 is connected to the network 295. The user thus may access the downloaded web page without knowing if the client computer 200 is connected to or disconnected from the network 295.

As shown schematically in FIG. 5, another aspect of the system automatically enables the client computer 200 to first download a copy 504 of a remote network document 506 (e.g., a database) from an origin server 510 ("origin server 510"), and then modify the (database) copy 504 while disconnected from the network 295. Upon reconnect to the network 295, the client computer 200 then updates the remote (database) document 506 to reflect the changes made by the client computer 200 during disconnect. This enables the user to modify such a database during disconnect while automatically ensuring that such modifications will be made to the remote (database) document 506 upon re-connect.

To that end, as shown in FIG. 5, the client computer 200 may include a local hypertext server 500 for formatting data received from the interceptor 394 into a selected interface format, a local application program 502, which is compatible with the database and receives formatted information from the hypertext server, and a downloader 398 for downloading, prior to disconnect, a local copy 504 of the database 506 onto the client computer 200 from the remote network device. The local application program 502 is a substantial duplicate of the application program 512 on the origin server 510. In addition, program 502 may be either downloaded with the local copy 504, preloaded into the memory of the client computer 200, or otherwise accessible by the client computer 200 during disconnect. The interface format may be any known interface format such as, for example, Common Gateway Interface (CGI), Internet Server Application Program Interface (ISAPI, co-developed by Microsoft Corporation and Process Software Company), or JAVA Applet (developed by Sun Microsystems). CGI is discussed in more detail in "The WWW Common Gateway Interface", version 1.1, in Internet draft form, dated Feb. 16, 1996, by DRT Robinson.

Accordingly, during disconnect, requests from the browser 399 to modify the database are intercepted by the interceptor 394. Such request may include data from a template. The interceptor 394 responsively determines that the client computer 200 is disconnected from the network, and then directs the request to the local hypertext server. The local hypertext server responsively translates the request and transfers the data (from the template) to the local application program 502 to modify the locally stored database copy. This process is done completely while disconnected from the network 295 and thus, does not require access to the hypertext server on the origin server 510. Moreover, this process is a background process and thus, does not interrupt the execution of the browser or other application programs on the system. The modifications to the database copy 504 then may be made to the database 506 on the origin server 510 upon reconnect.

More particularly, FIG. 6 is a block diagram of a preferred embodiment of the local hypertext server 500 stored on the client computer 200 in relation to the interceptor 394. The local hypertext server 500 may include the following elements:

an engine 604 for performing the interfacing functions of the interface;

a directory mapping table 606 for storing the location of the database copy 504 within the directory structure of the client local computer;

a data pump 608 for downloading the database 506 from the origin server 510; and

a cache control 610 for causing the data pump to download the database from the origin server 510 to the client computer 200.

The interceptor 394 may include the following elements:

a redirector 600 for receiving browser requests and directing specified requests to the local hypertext server; and

a connection manager 602 for determining if the client computer 200 is connected to the network 295.

The function of each of these elements are more fully understood with reference to FIGS. 7 and 8. FIG. 7 is a flow chart illustrating a process for downloading the database 506 from the remote network device, and FIG. 8 is a flow chart illustrating a process for accessing and modifying the downloaded database copy 504 of the database.

With reference to FIG. 7, the process begins at step 700 in which the browser 399 on the client computer 200 requests that the database 506 be downloaded from the origin server 510. This request is intercepted by the interceptor 394, which determines if the client computer 200 is connected to the network. The function of the interceptor 394 is effected here by the redirector 600 and the connection manager 602. At step 702, the connection manager 602 determines if the client computer 200 is connected to the network 295. If disconnected, the process ends because the database 506 cannot be downloaded. If connected to the network 295, the interceptor 394 transmits the request to the origin server 510. The origin server 510 responds at step 706 by transmitting a list, having a "mime" header, to the client computer 200. The list then is transmitted to the cache control 610 (step 708) that first determines from the list which databases will be downloaded, and then causes the data pump 608 to begin downloading a copy of each of the databases in the list. After the database copy 504 is downloaded, the cache control 610 creates a directory mapping table (if not already created) having fields "URL" and "location in local directory structure" (step 710). The cache control 610 then adds data to the directory mapping table, thereby providing the information for creating a client directory structure, if necessary, in the client computer 200 that is similar to the hierarchical tree structure on the origin server 510. The client directory structure may be created by conventional means.

Once the database copy 504 is downloaded into the client directory structure and its location is stored in the directory mapping table, the client may access and modify the database copy 504 with the client browser 399 while disconnected from the network 295. FIG. 8 thus shows a process of accessing and modifying the downloaded database copy 504 in the client computer 200 when disconnected. Specifically, after data is entered into the templates, the browser 399 first requests access to the database 506 via the interceptor 394 and the redirector 600 (step 800). The redirector then queries the connection manager 602 at step 802 to determine if the client computer 200 is connected to the network 295. If connected to the network 295, the database 506 on the origin server 510 is accessed and modified, by conventional means, over the network 295 (step 804).

If the client computer 200 is not connected to the network 295, the redirector 600 accesses the mapping table 606 to ascertain the location of the database and local application program 502 in the client directory structure (step 806). The redirector 600 then transmits the location of the local application program 502, the database copy 504, and the data to modify the database copy 504 to the local engine 604 at step 808. The local engine 604 then locates the database copy 504 and local application program 502, translates the data, and then transmits the translated data to the local application program 502, (step 810). The application program 502 then modifies the database at step 812 and responsively sends an HTML response to the browser 399 reflecting the modifications (step 814). Upon reconnect, the data pump 608 may upload the modified database to the origin server 510 to reflect the changes made in the database.

In the preferred embodiment, which is implemented using CGI, the cache control 610 accesses a plurality of functions to modify the mapping table 606. Among those functions are:

addCGlcacheEntry(CString cURL, CString cDirectory);

removeCGlcacheEntry(CStringcURL);

mapCache(CString cURL, CString & cResult);

findCGIcasheEntry(CStringcURL);

getCGIcacheEntry(intnIndex, CString cURL, CString & cDirectory);

getCGIcacheCount();

readCGIcacheList(); and

writeCGIcacheList();

Each function is briefly discussed below:

The function "add CGIcache Entry" creates a new directory entry on the client computer 200 that represents a remote (CGI) application, given the URL string and the root directory. It is assumed that the full root directory path is specified in the cDirectory parameter passed to this routine, and that cURL is the standard reference to the application on the remote server. An example of the input parameter for cURL could be "//www.server1.com/.about.alias/aca.about.1/dispatch.cgi", where www.serverl.com is the remote address of the server, "/.about.alias/aca.about.1/" is a directory specification on the server and "dispatch.cgi" is the CGI application to run. An example of the input parameter for cDirectory might be "C:.backslash.WIN32APP.backslash.WGWF.backslash.", which identifies the root directory for all mapped entries. The result of this function is that an entry is created in the directory mapping table, and an associated directory is created that is used to contain files required to locally download the remote application specified. The database mapping created for the above example, having a URL of:

"HTTP://www.server1.com/.about.alias/aca.about.1/dispatch.cgi"

maps to the directory:

"C:.backslash.WIN32APP.backslash.WGWF.backslash.WWW.SERVER1. COM.backslash..about.ALIAS.backslash.ACA.about.I.backslash.."

on the local system when disconnected.

The function "removeCGlcacheEntry" enables the cache control 610 to remove a "URL to directory" mapping in the directory mapping table given cURL, where cURL is the specific URL map entry. If there is no matching URL, the request returns an error. If a URL exists in the database mapping table, it is removed.

The function "mapCache" is used by the redirector to search the directory mapping table for matching the passed cURL to an existing entry. If a match is found, the directory mapping is returned using cResult. This routine is used when the client computer 200 is disconnected to determine if the remote request can be satisfied by a stored CGI entry. If cResult returns non-zero, an entry exists and the request is directed to the engine with a SCRIPT.sub.-- NAME environment parameter pointing to the local application as a result of this mapping. An example of the input parameter for the URL could be "//www.server1.com/-alias/aca-1/dispatch.cgi." If a match existed, an example of the output parameter for cResult might be

"C:.backslash.WIN32APP.backslash.WGWF.backslash.WWW.SERVER1.COM.backslash.- ALIAS.backslash.ACA-1.backslash.DISPATCH.CGI." The URL has been mapped to a local directory, and the executable file DISPATCH.CGI has been parsed and appended to the directory specification.

The functions "findCGIcasheEntry," "getCGIcacheEntry" and "getCGlcacheCount" are enumeration routines used by the graphical user interface of the application to display and manage information in the directory mapping table.

The functions "readCGlcacheList" and "writeCGlcacheList" are low level routines used to read and write the basic objects used in the directory mapping table.

After the database copy 504 is modified and the client is reconnected to the network 295, the client computer 200 may access the server again and modify the database to reflect the data added, removed, or modified during disconnect (database transaction). This may be done by conventional methods, such as by means of a reconciliation engine to update the database, or by directly overwriting the database on the origin server 510.

When the preferred embodiment of this aspect of the system is in use, a user of the client computer 200 connects to the origin server 510, via the network 295, and accesses a application program associated with the database. The interface associated with that application program may include a "download" button which, when selected by the client user, causes the database and associated origin server 510 directory structure to be downloaded from the origin server 510 to the client computer 200. A status bar may be displayed by the client computer 200 during the download. The user then may disconnect from the network 295 and modify the database copy 504 via the local application and the browser 399 in a manner that is substantially identical (to the user) to when the client computer 200 is connected to the network. Access through the browser 399 is necessary in all CGI application programs, for example, designed for the World Wide Web because such applications frequently do not have a user interface. Specifically, the CGI application "standard in" (a part of each application program that specifies from where data may be received;