WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Computer system and computer-implemented process for remote editing of computer files    
United States Patent5732219   
Link to this pagehttp://www.wikipatents.com/5732219.html
Inventor(s)Blumer; Thomas P. (Cambridge, MA); Amstein; Peter R. (San Francisco, CA); Drellishak; Scott F. (Sunnyvale, CA); Forgaard; Randy J. (Lexington, MA); Schulert; Andrew J. (Cambridge, MA)
AbstractA client/server computer system for remote editing of document objects stored on the server includes a client computer connected to a server computer via a communication channel over which messages are sent in a communication protocol. Typically, the client computer has an operating system with a first file name space and the server computer has an operating system with a second file name space and the first file name space does not include names of files which map to names of files in the second file name space. The connection is preferably a TCP/IP connection providing data transport according to TCP/IP. Messages in the HTTP protocol are preferably used. The client computer sends request messages to the server. A request message may indicate a request for either retrieval or storage of a document object, such as an HTML document or script program. The server receives the request messages and processes them to either store a document object or retrieve a document object and return it to the client in a response message. When the server is an HTTP server, the request messages from the client are processed by a single control script. The messages from the client indicate a desired document object and the action to be performed.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5732219
Computer system and computer-implemented process for remote editing of

     computer files - US Patent 5732219 Drawing
Computer system and computer-implemented process for remote editing of computer files
Inventor     Blumer; Thomas P. (Cambridge, MA); Amstein; Peter R. (San Francisco, CA); Drellishak; Scott F. (Sunnyvale, CA); Forgaard; Randy J. (Lexington, MA); Schulert; Andrew J. (Cambridge, MA)
Owner/Assignee     Vermeer Technologies, Inc. (Cambridge, MA)
Patent assignment
All assignments
Publication Date     March 24, 1998
Application Number     08/406,360
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 17, 1995
US Classification     709/227
Int'l Classification     G06F 013/14 G06F 013/42 G06F 015/16 200.09
Examiner     Pan; Daniel H.
Assistant Examiner    
Attorney/Law Firm     Anderson; Ronald M.
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/800 395/500 395/200.15 395/200.16 395/200.01 395/200.06 395/200.5 395/600 395/700 395/650 395/200.03 395/155 395/200.12 364/DIG. 1 364/DIG. 2 364/401 R
Patent Tags     computer computer-implemented remote editing of computer files
   
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
5553285
Krakauer
707/202
Sep,1996

[0 after 0 votes]
5515508
Pettus
709/203
May,1996

[0 after 0 votes]
5418945
Carter
707/8
May,1995

[0 after 0 votes]
5410688
Williams
707/10
Apr,1995

[0 after 0 votes]
5287103
Kasprzyk
340/825.52
Feb,1994

[0 after 0 votes]
5220674
Morgan

Jun,1993

[0 after 0 votes]
5218695
Noveck

Jun,1993

[0 after 0 votes]
5093914
Coplien
717/129
Mar,1992

[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
 


What is claimed is:

1. A computer-implemented process for a client to remotely edit a document object stored on a server, wherein the client and the server communicate using an HTTP protocol over a connection, comprising the steps of:

(a) establishing the connection between the client and the server;

(b) the client sending an HTTP request message over a TCP/IP connection to the server, wherein the HTTP request message specifies the document object and an indication that the client requests retrieval of the document object;

(c) the server receiving the HTTP request message and calling a script;

(d) the script retrieving a copy of the document object;

(e) the server sending the copy of the document object to the client over the TCP/IP connection in an HTTP response message;

(f) the client receiving the HTTP response message including the copy of the document object;

(g) the client permitting editing of the copy of the document object;

(h) the client sending another HTTP request message to the server, wherein said other HTTP request message contains a copy of an edited document object and an indication of a location on the server to store the copy of the edited document object and an indication that the client requests storage of the edited document object;

(i) the server receiving the other HTTP request message and calling the script;

(j) the script storing the copy of the edited document object on the server according to the indication of the location included in the other HTTP request message; and

(k) terminating the connection.

2. The process of claim 1, further comprising the step of the script checking authentication and wherein the step of the script retrieving the copy of the document object includes retrieving the copy only when access to the document object is authenticated.

3. The process of claim 1, further comprising the step of mapping the indication of the location of the document object to a file name on the server.

4. The process of claim 1, further comprising the step of the server responding with an HTTP response message to a client program, indicating one of acknowledgment that the document object was successfully saved and giving an error indication.

5. The process of claim 4, further comprising the step of terminating the TCP/IP connection after the step of the server sending a response message.

6. The process of claim 1, wherein the document object is part of an online service on the World Wide Web.

7. The process of claim 1, wherein the document object comprises an HTML file.

8. The process of claim 1, wherein the document object is a computer program written in a computer programming language.

9. The process of claim 1, wherein the script is a single computer program which processes both retrieve and store requests and is called by the server in response to either a store or a retrieve request from the client.

10. The process of claim 1, wherein the HTTP protocol includes a named message method which indicates transfer of arbitrary data from the client to the server and wherein the client sends the server a message including a name of the named message method for both retrieve and store requests.

11. The process of claim 10, wherein the named message method is an HTTP "PUT" message.

12. The process of claim 10, wherein the named message method is an HTTP "POST" message.

13. The process of claim 1, wherein the server and the client are on the same computer.

14. The process of claim 1, wherein the server and the client are on separate computers that are interconnected by a network.

15. The process of claim 14, wherein the network is a local area network.

16. The process of claim 14, wherein the network is an Internet network.

17. The process of claim 1, wherein the server calls one of a plurality of scripts.

18. The process of claim 1, wherein the connection established is a TCP/IP connection.

19. The process of claim 1, wherein the document object is an HTML file including an embedded graphic image.

20. A computer-implemented process for remotely editing an electronic document stored on a server, using a client, wherein the server and the client are connected via a communication channel using a communication protocol, and wherein the client has a first file name space and the server has a second file name space and no file in the second file name space can be accessed using the name of a file in the first file name space, comprising the steps, performed by the client, of:

(a) sending a request message in the communication protocol over the communication channel to the server requesting a copy of the electronic document;

(b) receiving a response message in the communication protocol from the server over the communication channel, wherein the response message contains the copy of the electronic document;

(c) permitting editing of the copy of the electronic document at the client; and

(d) sending another request message in the communication protocol including the edited electronic document over the communication channel to the server, wherein said message includes an indication of a location on the server where the electronic document is to be stored, said location being automatically mapped by the server to a name of a file in the second file name space.

21. A computer-implemented process for remotely editing an electronic document stored on a server, using a client, wherein the server and the client are connected via a communication channel using a communication protocol, comprising the steps, performed by the client, of:

(a) sending a request message in the communication protocol over the communication channel to the server requesting a copy of an electronic document using a name mappable to a file name space of the server and not mappable to a file name space of the client;

(b) receiving a response message in the communication protocol from the server over the communication channel, wherein said response message contains the copy of the electronic document;

(c) permitting editing of the copy of the electronic document at the client; and

(d) sending another request message in the communication protocol including the edited electronic document over the communication channel to the server, wherein said message includes an indication of a location on the server where the electronic document is to be stored, said location being automatically mapped to a name of a file in the file name space of the server.

22. A computer system for use with a server connected to a client via a communication channel using a communication protocol, wherein the client has a first file name space and the server has a second file name space, and the first file name space does not include names of files that map to names of files in the second file name space, the client comprising:

(a) means for sending a request message over the communication channel in the communication protocol to the server for a copy of an electronic document;

(b) means for receiving a response message in the communication protocol from the server and over the communication channel, wherein the response message contains the copy of the electronic document;

(c) means for permitting editing of the copy of the electronic document at the client; and

(d) means for sending a request message in the communication protocol including the edited electronic document over the communication channel to the server, wherein said message includes an indication of a location on the server where the electronic document is to be stored, so that the server will automatically map the location to a name of a file in the second file name space.

23. A computer system for use with a client connected to a server via a communication channel using a communication protocol, wherein the client has a first file name space and the server has a second file name space, and the first file name space does not include names of files that map to names of files in the second file name space, the server comprising:

(a) means for receiving a request message over the communication channel in the communication protocol from the client for a copy of an electronic document;

(b) means for retrieving the copy of the electronic document;

(c) means for sending a response message in the communication protocol to the client and over the communication channel, wherein the response message contains the copy of the electronic document;

(d) means for receiving another request message in the communication protocol including an edited copy of the electronic document over the communication channel and from the client, wherein said message includes an indication of a location on the server where the electronic document is to be stored;

(e) means for mapping automatically the location to a name of a file in the second file name space; and

(f) means for storing the edited electronic document in the second file name space.

24. A computer-implemented method for editing an electronic document for use in connection with a client connected to a server via a communication channel using a communication protocol, wherein the client has a first file name space and the server has a second file name space, and the first file name space does not include names of files that map to names of files in the second file name space, comprising the steps, performed by the server, of:

(a) receiving a request message over the communication channel in the communication protocol from the client for a copy of the electronic document;

(b) retrieving the copy of the electronic document;

(c) sending a response message in the communication protocol to the client over the communication channel, wherein the response message contains the copy of the electronic document;

(d) receiving another request message in the communication protocol including an edited copy of the electronic document over the communication channel from the client, wherein said message includes an indication of a location on the server where said electronic document is to be stored;

(e) automatically mapping the location into a name of a file in the second file name space; and

(f) storing the edited copy of the electronic document in the second file name space.

25. A computer-implemented process for remotely editing an electronic document stored on a server, wherein the client and the server communicate over a communication channel using a communication protocol, and wherein the client has a first file name space and the server has a second file name space, and the first file name space does not include names of files that map to names of files in the second file name space, comprising the steps of:

(a) the client establishing the communication channel with the server;

(b) the client sending a request message in the communication protocol over the communication channel to the server, wherein the message specifies the electronic document and an indication that the client requests retrieval of the electronic document;

(c) the server receiving the request message and verifying the access of the client to the requested electronic document;

(d) the server retrieving a copy of the electronic document if the access of the client is verified;

(e) the server sending the copy of the electronic document to the client over the communication channel in a response message in the communication protocol;

(f) the client receiving the response message from the server including the copy of the electronic document;

(g) the client permitting editing of the copy of the electronic document by a user;

(h) the client sending another request message over the communication channel in the communication protocol to the server, wherein said message contains a copy of the edited document and an indication of a location on the server where said document is to be stored;

(i) the server receiving the other request message and automatically mapping the location into a name of a file in the second file name space;

(j) the server storing the copy of the edited document in the second file name space; and

(k) the server sending another response message acknowledging an attempt at storage of the copy of the edited document.

26. A computer system for remotely editing an electronic document, comprising:

(a) a communication channel using a communication protocol that interconnects a server to a client, wherein the client has a first file name space and the server has a second file name space, and the first file name space does not include names of files that map to names of files in the second file name space;

(b) the client comprising:

(i) means for sending a request message over the communication channel in the communication protocol to the server, for a copy of the electronic document;

(ii) means for receiving a response message in the communication protocol from the server over the communication channel, wherein the response message contains the copy of the electronic document;

(iii) means for permitting editing of the copy of the electronic document at the client; and

(iv) means for sending another request message in the communication protocol including the edited copy of the electronic document over the communication channel to the server, wherein said message includes an indication of a location on the server where said document is to be stored; and

(c) the server comprising:

(i) means for receiving the request message over the communication channel in the communication protocol from the client, for the copy of the electronic document;

(ii) means for retrieving the copy of the electronic document;

(iii) means for sending the response message in the communication protocol to the client over the communication channel, wherein said message contains the copy of the electronic document;

(iv) means for receiving the other request message in the communication protocol including the edited copy of the electronic document over the communication channel from the client, wherein said message includes the indication of the location on the server where said document is to be stored;

(v) means for automatically mapping the location on the server into a name of a file in the second file name space; and

(vi) means for storing the edited copy of the electronic document on the server in the second file name space.

27. A method for a server to process a request message from an editor implemented in software executed by a client, comprising the steps of:

(a) determining whether the request message is from the editor of the client;

(b) determining whether the request message is for retrieval of a document object when the request message is from the editor of the client;

(c) sending a response message to the editor of the client including a copy of the document object when the request message is for retrieval of said object;

(d) determining whether the request message is for storage of the copy of the document object on the server when the request message is from the editor of the client, said message including an indication of a location where said object is to be stored on the server;

(e) automatically mapping the location into a name of a file in the second file name space;

(f) storing the copy of the document object in the second file name space when the request message is for storage of said object; and

(g) sending another response message to the editor of the client acknowledging storage of the document object when the request message is for storage of said object.

28. A process for saving a document object on a server in response to a request from a client, wherein the client has a first file name space and the server has a second file name space and the first file name space does not include names of files that map to names of files in the second file name space, comprising the steps of:

(a) the client sending a request message to the server, wherein the request message includes a document object, an indication of a location on the server where the document object is to be stored;

(b) the server receiving the request message and automatically converting the indication of the location on the server into a name of a file in the second file name space;

(c) the server storing the document object as a file using the name of the file in the second file name space; and

(d) the server sending a response message to the client that acknowledges the storage of the document object.

29. In a client/server computer system for remotely editing document objects stored on a server, a client comprising:

(a) an editing system having inputs connected to receive editing commands, a memory for storing a document object while it is edited in response to the editing commands, and an output for displaying the document object to the user during editing;

(b) a retrieve request message processor having an input connected to the server over a communication channel to receive an indication of the document object on the server to be retrieved and an output providing a retrieve request message, said retrieve request message including an indication of the document object;

(c) a response message processor having an input connected to receive a response message from the server and operative when the retrieve request message section sends a retrieve request message to the server, wherein the response message includes the document object, and an output providing the document object to the memory of the editing system; and

(d) a store request message processor, connected to access the memory of the editing system, and having an input connected to receive an indication of a location on the server for storing the document object and an output providing a store request message including the edited document object and the indication of the location on the server where the document object is to be stored, wherein the output connects to the communication channel connected to the server.

30. In a client/server computer system in which a client remotely edits document objects stored on a server, the server comprising:

(a) a memory in which document objects are stored;

(b) a retrieve request message processor having an input connected to receive a retrieve request message from the client, wherein the retrieve request message includes an indication of a document object stored on the server, and wherein the retrieve request message processor accesses the memory to retrieve the document object indicated in the retrieve request message, said retrieve request message processor further having an output providing a response message, including the retrieved document object, to the client; and

(c) a store request message processor having an input connected to receive a store request message from the client, wherein the store request message includes a document object and an indication of a location on the server for storing the document object, said store request message processor automatically mapping the location into a file name space employed by the server and storing the document object in said file name space.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

This invention is related to computer editing systems for editing electronic documents, other information and computer programs. More particularly, this invention is related to computer editing systems for developing on-line services in a client-server information system.

BACKGROUND OF THE INVENTION

An on-line information system typically includes one computer system (the server) that makes information available so that other computer systems (the clients) can access the information. The server manages access to the information, which can be structured as a set of independent on-line services. The server and client communicate via messages conforming to a communication protocol and sent over a communication channel such as a computer network or through a dial-up connection.

Typical uses for on-line services include document viewing, electronic commerce, directory lookup, on-line classified advertisements, reference services, electronic bulletin boards, document retrieval, electronic publishing, technical support for products, and directories of on-line services, among others. The service may make the information available free of charge, or for a fee.

Information sources managed by the server may include files, databases and applications on the server system or on an external system. The information that the server provides simply may be stored on the server, may be converted from other formats manually or automatically, may be computed on the server in response to a client request, may be derived from data and applications on the server or other machines, or may be derived by any combination of these techniques.

The user of an on-line service uses a program running on the client system to access the information managed by the on-line service. Possible user capabilities include viewing, searching, downloading, printing, and filing the information managed by the server. The user may also price, purchase, rent, or reserve services or goods offered through the on-line service.

For example, an on-line service for catalog shopping might work as follows. The user runs a program on the client system and requests a connection to the catalog shopping service using a service name that either is well known or can be found in a directory. The request is received by the server, and the server returns an introductory page that also asks for an identifier and password. The client program displays this page, the user fills in an identifier and password that were assigned by the service in a previous visit, and the user's information is sent to the server. The server verifies the identifier and password against an authorization database, and returns a menu page that is then presented to the user. Each time the user selects a menu item, the selection is sent to the server and the server responds with the appropriate new page of information, possibly including item descriptions or prices that are retrieved from a catalog database. By selecting a series of menu items the user navigates to the desired item in the catalog, and requests that the item be ordered. The server receives the order request, and returns a form where the user fills in some information about shipping and billing. The user response is returned to the server, and the server enters the order information into an order database.

On-line services are available on the World Wide Web (WWW), operating over the global Internet in which a large number of computers, or sites, are interconnected. The WWW is a "web" of interconnected document objects that are located on various sites on the Internet. The WWW is also described in "The World-Wide Web," by T. Berners-Lee, R. Cailliau, A. Luotonen, H. F. Nielsen, and A. Secret, Communications of the ACM, 37 (8), pp. 76-82, August 1994, and in "World Wide Web: The Information Universe," by Berners-Lee, T., et al., in Electronic Networking: Research, Applications and Policy, Vol. 1, No. 2, Meckler, Westport, Conn., Spring 1992. Among the types of document objects on the WWW are documents and scripts. Documents that are published on the WWW are written in the Hypertext Markup Language (HTML), such as described in Hypertext Markup Language Specification--2.0, by T. Berners-Lee and D. Connolly, Internet Draft Document, Oct. 14, 1994, and in "World Wide Web & HTML," by Douglas C. McArthur, in Dr. Dobbs Journal, December 1994, pp. 18-20, 22, 24, 26 and 86. HTML documents stored as such are generally static, that is, the contents do not change over time unless the service developer modifies the document. Scripts are programs that can generate HTML documents when executed.

HTML is a language used for writing hypertext documents. The formal definition is that HTML documents are Standard Generalized Markup Language (SGML) documents that conform to a particular Document Type Definition (DTD). An HTML document includes a hierarchical set of markup elements, where most elements have a start tag, followed by content, followed by an end tag. The content is a combination of text and nested markup elements. Tags are enclosed in angle brackets (`<` and `>`) and indicate how the document is structured and how to display the document, as well as destinations and labels for hypertext links. There are tags for markup elements such as titles, headers, text attributes such as bold and italic, lists, paragraph boundaries, links to other documents or other parts of the same document, in-line graphic images, and many other features.

For example, here are several lines of HTML:

Some words are <B>bold</B>, others are <I>italic</I>. Here we start a new paragraph.<P>Here's a link to the <A HREF="http://www.vermeer.com">Vermeer Technologies, Inc.</A>home page.

This sample document is a hypertext document because it contains a "link" to another document, as provided by the "HREF=." The format of this link will be described below. A hypertext document may also have a link to other parts of the same document. Linked documents may generally be located anywhere on the Internet. When a user is viewing the document using a Web browser (described below), the links are displayed as highlighted words or phrases. For example, using a Web browser, the sample document above would be displayed on the user's screen as follows:

Some words are bold, others are italic. Here we start a new paragraph.

Here's a link to Vermeer Technologies, Inc. home page.

In the Web browser, a link may be selected, for example by clicking on the highlighted area with a mouse. Selecting a link will cause the associated document to be displayed. Thus, clicking on the highlighted text "Vermeer Technologies, Inc." would display that home page.

Another kind of document object on the WWW is a script. A script is an executable program, or a set of commands stored in a file, that can be run by a Web server (described below) to produce an HTML document that is then returned to the Web browser. Typical script actions include running library routines or other applications to get information from a file or a database, or initiating a request to get information from another machine, or retrieving a document corresponding to a selected hypertext link. A script is run on the Web server when, for example, the end user selects a particular hypertext link in the Web browser, or submits an HTML form request. Scripts are usually written by a service developer in an interpreted language such as Basic or Tool Control Language (Tcl) or one of the Unix operating system shell languages, but they also may be written in programming languages such as the "C" programming language and then compiled into an executable program. Programming in Tcl is described in more detail in Tcl and the Tk Toolkit by John K. Ousterhout, Addison-Wesley, Reading, Mass., USA, 1994.

Each document object in the WWW has an identifier called a Uniform Resource Identifier (URI). These identifiers are described in more detail in Universal Resource Identifiers for the World Wide Web, T. Berners-Lee, submitted as an Internet Request for Comments (RFC) as yet unnumbered. A URI allows any object on the Internet to be referred to by name or address, such as in a link in an HTML document as shown above. There are two types of URIs: a Universal Resource Name (URN) and a Uniform Resource Locator (URL). A URN references an object by name within a given name space. The Internet community has not yet defined the syntax of URNs. A URL references an object by defining an access algorithm using network protocols. An example URL is "http://www.vermeer.com" A URL has the syntax "scheme://host:port/path?search" where "scheme" identifies the access protocol (such as HTTP, FTP or GOPHER); "host" is the Internet domain name of the machine that supports the protocol; "port" is the transfer control protocol (TCP) port number of the appropriate server (if different from the default); "path" is a scheme specific identification of the object; and "search" contains optional parameters for querying the content of the object.

An Internet site that wishes to make documents available to network users is called a "Web site" and must run a "Web server" program to provide access to the documents. A Web server program is a computer program that allows a computer on the network to make documents available to the rest of the WWW. The documents are often hypertext documents in the HTML language, but may be other types of documents as well, as well as images, audio and video information. The information that is managed by the Web server includes hypertext documents that are stored on the server or are dynamically generated by scripts on the Web server. Several Web server software packages exist that provide information on the Web, such as the Conseil Europeen pour la Recherche Nucleaire (CERN, the European Laboratory for Particle Physics) server or the National Center for Supercomputing Applications (NCSA) server. Web servers have been implemented for several different platforms, including the Sun Sparc II workstation running the Unix operating system, and personal computers with the Intel Pentium processor running the Microsoft MS-DOS operating system and the Microsoft Windows operating environment. The Web server also has a standard interface for running external programs, called the Common Gateway Interface (CGI). A gateway is a program that handles incoming information requests and returns the appropriate document or generates a document dynamically. For example, a gateway might receive queries, look up the answer in an SQL database, and translate the response into a page of HTML so that the server can send the result to the client. A gateway program may be written in a language such as "C" or in a scripting language such as Practical Extraction and Report Language (Perl) or Tcl or one of the Unix operating system shell languages. Perl is described in more detail in Programming Perl, by Larry Wall and Randal L. Schwartz, O'Reilly & Associates, Inc., Sebastopol, Calif., USA, 1992. The CGI standard specifies how the script or application receives input and parameters, and specifies how any output should be formatted and returned to the server.

Generally speaking, for security reasons, a Web server machine may limit access to files. For all access to files on the Web server, the Web server program running on the server machine may provide an extra layer of security above and beyond the normal file system and login security procedures of the operating system on the server machine. The Web server program may add further security rules such as: 1) optionally requiring user name and password, completely independent of the normal user name and passwords that the operating system may have on user accounts, 2) allowing definitions of groups of users for security purposes, independent of any user group definitions of the operating system, 3) access control for each document object such that only specified users (with optional passwords) or groups of users are allowed access to the object, or that access is only allowed for clients at specific network addresses, or some combination of these rules, 4) allowing access to the document objects only through a specified subset of the possible HTTP methods, 5) allowing some document objects to be marked as HTML documents, others to be marked as executable scripts that will generate HTML documents, and others to be marked as other types of objects such as images. Access to the online service document objects via a network file system would not conform to the security features of the Web server program and would provide a way to access documents outside of the security provided by the Web server. The Web server program also typically maps document object names that are known to the client to file names on the server file system. This mapping may be arbitrarily complex, and any author or program that tried to access documents on the Web server directly would need to understand this name mapping.

A user (typically using a machine other than the machine used by the Web server) that wishes to access documents available on the network at a Web site must run a client program called a "Web browser." The browser program allows the user to retrieve and display documents from Web servers. Some of the popular Web browser programs are: the Navigator browser from NetScape Communications, Corp., of Mountain View, Calif.; the Mosaic browser from the National Center for Supercomputing Applications (NCSA); the WinWeb browser, from Microelectronics and Computer Technology Corp. of Austin, Tex.; and the InternetWorks browser, from BookLink Technology, of Needham, Mass. Browsers exist for many platforms, including personal computers with the Intel Pentium processor running the Microsoft MS-DOS operating system and the Microsoft Windows environment, and Apple Macintosh personal computers.

The Web server and the Web browser communicate using the Hypertext Transfer Protocol (HTTP) message protocol and the underlying TCP/IP data transport protocol of the Internet. HTTP is described in Hypertext Transfer Protocol--HTTP/1.0, by T. Berners-Lee, R. T. Fielding, H. Frystyk Nielsen, Internet Draft Document, Dec. 19, 1994, and is currently in the standardization process. In HTTP, the Web browser establishes a connection to a Web server and sends an HTTP request message to the server. In response to an HTTP request message, the Web server checks for authorization, performs any requested action and returns an HTTP response message containing an HTML document resulting from the requested action, or an error message. The returned HTML document may simply be a static file stored on the Web server, or it may be created dynamically using a script called in response to the HTTP request message. For instance, to retrieve a static document, a Web browser sends an HTTP request message to the indicated Web server, requesting a document by its URL. The Web server then retrieves the document and returns it in an HTTP response message to the Web browser. If the document has hypertext links, then the user may again select a link to request that a new document be retrieved and displayed. As another example, a user may fill in a form requesting a database search, the Web browser will send an HTTP request message to the Web server including the name of the database to be searched and the search parameters and the URL of the search script. The Web server calls a program or script, passing in the search parameters. The program examines the parameters and attempts to answer the query, perhaps by sending a query to a database interface. When the program receives the results of the query, it constructs an HTML document that is returned to the Web server, which then sends it to the Web browser in an HTTP response message.

Request messages in HTTP contain a "method name" indicating the type of action to be performed by the server, a URL indicating a target object (either document or script) on the Web server, and other control information. Response messages contain a status line, server information, and possible data content. The Multipurpose Internet Mail Extensions (MIME) are a standardized way for describing the content of messages that are passed over a network. HTTP request and response messages use MIME header lines to indicate the format of the message. MIME is described in more detail in MIME (Multipurpose Internet Mail Extensions): Mechanisms for Specifying and Describing the Format of Internet Message Bodies, Internet RFC 1341, June 1992.

The request methods defined in the current version of the HTTP protocol include GET, HEAD, POST, PUT, DELETE, LINK, and UNLINK. The GET method requests that the server retrieve the object indicated by the given URL and send it back to the client. If the URL refers to a document, then the server responds by sending back the document. If the URL refers to an executable script, then the server executes the script and returns the data produced by the execution of the script. Web browser programs normally use the GET method to send request messages to the Web server to retrieve HTML documents, which the Web browser then displays on the screen at the client computer.

According to the HTTP specification, the PUT method specifies that the object contained in the request should be stored on the server at the location indicated by the given URL. However, the current server implementations do not follow this specification; they simply handle all PUT requests through a single PUT script, which is generally undefined, and must be created by a service author. Web browsers generally do not use the PUT method.

The POST method sen