EP0815519A1 - Rechnersystem und verfahren zur ferneditierung von rechnerdaten - Google Patents
Rechnersystem und verfahren zur ferneditierung von rechnerdatenInfo
- Publication number
- EP0815519A1 EP0815519A1 EP96909744A EP96909744A EP0815519A1 EP 0815519 A1 EP0815519 A1 EP 0815519A1 EP 96909744 A EP96909744 A EP 96909744A EP 96909744 A EP96909744 A EP 96909744A EP 0815519 A1 EP0815519 A1 EP 0815519A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- server
- computer
- document object
- request message
- client
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Definitions
- 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.
- 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, director ⁇ ' 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.
- 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.
- the server responds with the appropriate new page of information, possibly including item descriptions or prices that are retrieved from a catalog database.
- 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.
- WWW World Wide Web
- 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. Bemers-Lee. R. Cailliau. A.
- HTML Hypertext Markup Language
- 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 - J - 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.
- 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:
- 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 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 (Tel) 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.
- Tel Basic or Tool Control Language
- C Unix operating system shell languages
- URI Universal Resource Identifier
- RRC Internet Request for Comments
- 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.
- URN Universal Resource Name
- URL Uniform Resource Locator
- 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
- TCP transfer control protocol
- path is a scheme specific identification of the object; and "search” contains optional parameters for querying the content of the object.
- 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.
- 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).
- CGI Common Gateway Interface
- 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 Tel 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. CA, 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.
- a Web server machine may limit access to files.
- 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.
- 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
- 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, California; the Mosaic browser from the National Center for Supercomputing Applications (NCSA): the Win Web browser, from Microelectronics and Computer Technology Corp. of Austin. Texas; 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.
- HTTP Hypertext Transfer Protocol
- TCP/IP data transport protocol the Internet Protocol/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. December 19. 1994, and is currently in the standardization process.
- the Web browser establishes a connection to a Web server and sends an HTTP request message to the server.
- the Web server checks for authorization, performs any requested action and returns an HTTP request 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.
- 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.
- 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.
- 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 sends data, usually the user input parameters from an HTML form, to the server.
- the POST request also contains the URL of a script to be run on the server.
- the server runs the script, passing the parameters given in the request, and the script generates HTML output to be returned in the response to the client.
- the client program In order for a client program to send arbitrary data to the Web server using the current HTTP protocol, the client program must use either the PUT method or the POST method, as these are the only two methods that allow such data transfer to the Web server. Having now described the World Wide Web.
- An on-line service on the World Wide Web includes a Web server program running on a Web server machine, and a set of service files that characterize the on-line services that are stored on the Web server machine.
- the service files include HTML documents. executable scripts or programs to dynamically produce HTML documents, and other files of service information that can be referenced and updated by the scripts and programs.
- the actual data and scripts that make up a particular on-line service, including HTML documents and script programs, are generally stored on the server in a separate area for each service. Global information about the service is also stored, including data such as the name of the service, the name of the author, revision history, comments about the service, and authorization information.
- the end user of the on-line service uses a Web browser program on the client machine to send requests to the on-line service and to receive responses from the on-line service. All access by an end user of the on-line service to the service files is managed and controlled by the Web server program.
- an on-line service might consist of a corporate home page which is a static document, with a link to a second document that is a form for searching the store catalog.
- the search form may have a "submit" button that causes a script to be run on the Web server, to generate a list of product descriptions with prices that is then returned to the Web browser as an HTML document.
- Each of the HTML documents may have a link to a second script that collects and displays the items that have been ordered.
- the service also has configuration information such as the list of authorized users of the service, and their passwords.
- Figure 1 shows the steps in using an on-line service, as seen by the end user of the on-line service on the client machine.
- the end user starts a Web browser program in step 10. and the program determines the URL of an initial document to display in step 12.
- the initial document URL may be determined from a configuration file, or may be programmed into the Web browser. or may be entered by the user.
- the browser then sends an HTTP GET request to the Web server in step 14, giving the URL of the desired document.
- the browser then waits for a response from the Web server in step 16.
- the browser tests the response in step 18 to determine if it indicates an error message. If the response message from the Web server indicates an error, for instance if the requested document is not found, then the browser reports the error to the end user in step 22.
- the Web browser formats and displays the document on the screen in step 20 according to the HTML language conventions.
- the browser then waits for the user to enter the next command (step 24).
- the user may request to view a new document by selecting a hypertext link to a document, by requesting a document from a list of previously visited documents, or by typing in the URL of a document that was obtained by the user through some other means.
- the browser tests the user command to determine if the user is requesting a new
- step 14 processing continues at step 14 which has already been discussed. If the user is not requesting a new document then the browser tests the command in step 30 to determine if it is a request to exit the program. If so, processing stops. Otherwise the command is a local command that is handled by the browser without sending an HTTP request in step 28. The end user may use local viewing commands such as commands to scroll around in the o document, or commands to search for a particular text string in the document. After the browser handles the local command, the browser again waits for the next user command as already discussed, in step 24.
- Figure 2 shows the operation of an on-line service on the World Wide Web as seen by the Web server program.
- the server runs continuously, waiting to receive a 5 command over the network connection from a client Web browser program in step 40.
- the server tests the received command in step 44 to determine if it is a GET request. If it is a GET request, then the server examines the URL contained in the request in step 52 to determine if the URL indicates a static HTML document stored on the server. If the URL does refer to a static document then that document is returned to the Web browser via an HTTP response in step 58. 0 Otherwise the URL indicates a script stored on the server, and the Web server runs the script to produce an HTML document in 56 which is then returned to the Web browser as described before in step 58.
- step 44 determines that the command is not a GET request
- the server tests the command in step 48 to determine if it is a POST request. If so. the server retrieves the parameters from the POST request in step 54, which include the URL for the script 5 and the parameters for the script. The server then runs the indicated script in step 56 to generate an HTML document which is then returned to the Web browser as described before in step 58. After an HTML document is returned to the Web browser, processing continues at step 40. If the test of step 48 determines that the command is not a POST request then the server returns an error message to the Web browser in step 50. formatted as an HTML document. The processing 0 continues at step 40 and the server again waits for the next request and the process repeats.
- On-line services such as those described above are in high demand. Unfortunately, the task of developing an on-line service is currently one that almost always requires extensive programming skill and much specialized knowledge. There exists a great need for tools that will simplify the process of building an on-line service so that the process will take less time, be less error prone, and can be done by a nonprogrammer. In some cases, software tools exist to help convert the content data for the service from its native format to the format required by the server, but these tools only address the conversion of static data files.
- the service author performs a combination of the tasks, such as creating a new HTML document for a page of hypertext included in the on-line service, creating a new script included in the on-line service, retrieving and modifying an existing HTML document from the Web server machine, retrieving and modifying an existing script from the Web server machine, and storing an HTML document or script on the Web server machine so that the Web server program will have access to it.
- the service author runs a text or HTML editor program on the Web server machine to create or modify the on-line service documents and scripts that are stored on the server.
- the problem with the first approach is that the service author must be working at the Web server machine, or at least working at a terminal which is directly connected with the server machine. This is not always practical, because the service author may be at a location which is physically remote from the server machine. It also often happens that the server machine requires a high level of security because of the nature of the resources on the server machine that may be shared among a number of users. In this case access to the machine is often limited to the system administrators, and the service author may not have access to the machine for security reasons. For example, the only access to files used by the Web server may be through the Web server alone.
- the second approach is that the service author may run a terminal emulation program on a client machine to establish a connection to the server machine over a network connection or a modem line.
- the terminal emulation program allows the user to run programs on the server machine as though the user were working directly on that machine, and with this arrangement the user runs a text or HTML editor program on the server to create or modify the on-line service documents and scripts as before.
- the second approach has the problem that the server machine and client machine must both run additional programs to allow terminal emulation and remote execution of programs over a network. This adds to the complexity on both machines, and also requires that the service author be familiar with a terminal emulation program which typically has a difficult user interface that is not meant for nonexperts. This approach also adds another route from other machines to the server machine, which may be undesirable for security reasons. As with the first approach, the service author may not have access to the server machine for security reasons, or may not have authorization to write files to the machine.
- the service author first transfers existing service documents and scripts from the server machine to a client machine either manually or via a network file transfer program.
- the author then runs a text or HTML editor program on a client machine to create or modify documents on that machine, and then transfers the completed documents back to the server machine either manually or via a network file transfer program, such as the file transfer protocol (ftp) or kermit.
- a file transfer method used with terminal emulation programs for communication over a modem.
- the third approach is cumbersome because of the need for the separate steps of transferring the documents from the server back to the client, and transferring the documents back to the server after the editing is complete.
- This approach also has the security problems mentioned above for the other approaches.
- Each of these three approaches also has the problem that the file names used for documents by a Web server are not always the same as the actual file names of the documents. An author of an on-line service will need to learn the mappings of file names to the URLs used by the Web server.
- one embodiment of this invention provides a client authoring tool that can both retrieve and store document objects on a Web server using a communication protocol in which messages are sent over a TCP/IP connection between the server and the client.
- the communication protocol is HTTP, the same communication protocol used by Web browsers.
- the architecture of this system is applicable to other communication protocols and client/server on-line services.
- Another difficulty in implementing a method for remote authoring and editing of an on ⁇ line service over the HTTP protocol is that there are two types of component objects for the on- line service that are stored on the Web server. These are static HTML documents, and scripts that dynamically generate HTML documents upon request. If an authoring program would like to retrieve a script from the server, using the HTTP protocol, it cannot simply use the HTTP GET method that is normally used to retrieve documents and access scripts during the operation of an on-line service. The reason is that the HTTP GET method, when used to access a script, causes the script to be executed and returns an HTML document that is generated through execution of the script.
- Another difficulty in editing documents for an on-line service in this environment is that a client authoring program generally does not have a file name space that includes the file names of the document objects of the on-line service on the server. Such an overlap in the file name space generally requires use of a network file system. Creation of a network file system including the authors of all on-line services on a server is generally impractical. Such a system is also generally too complex to set up easily and requires too much close interaction among systems than is practical on a large heterogenous public network like the Internet. In many cases, a client authoring system would not have access to the server anyway to enable the set up of a network file system.
- one aspect of the invention is a computer- implemented process for remotely editing an electronic document stored on a server computer.
- a client computer wherein the server computer and the client computer are connected by a communication channel and send messages using a communication protocol.
- the client computer sends a request message using the communication protocol over the communication channel to the server requesting a copy of the electronic document.
- the client receives 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.
- the client then permits a user to edit the copy of the electronic document at the client computer.
- the client sends a message in the communication protocol including the edited electronic document over the communication channel and to the server, wherein the message includes an indication of a request that the electronic document be stored on the server computer at a particular location.
- the server sends a status response message indicating the outcome of the attempt to store the document.
- the authoring tool uses either PUT or POST HTTP request messages to request retrieval of scripts or documents and to request storage of edited or new documents or scripts.
- the server may be any standard Web server program such as the CERN server or the NCSA server.
- Our invention provides a control sc ⁇ pt which is executed by the server for each incoming PUT or POST HTTP request messages to determine whether a document is to be retrieved or replaced.
- the authoring tool program uses the HTTP protocol to communicate with a server program running on the server machine.
- the communication takes the form of the authoring tool sending a request to the server program, the server program executing a control script to perform the indicated action and write the results to an output file, and the server sending a response message back to the authoring client with the output.
- the output may be either a status message indicating that the action was performed successfully, or contents of a document or script that was retrieved, or an error message indicating why the action could not be performed.
- the server program may still communicate with browsers at the same time the authoring tool is being used. The server continually listens to incoming messages. If an incoming PUT or POST HTTP request is not from the authoring tool, it is handled in the same manner as other PUT or POST request messages from other client programs such as Web browsers.
- the server passes the request parameters to the control script.
- the control script checks the parameters to ensure that the request is valid, and checks that the user of the authoring tool has the proper authorization.
- the control script then carries out the request, retrieving or creating, or modifying files of the appropriate on-line service as required.
- Another aspect of the invention is a computer-implemented process for a client to remotely edit a document object stored on a server, wherein the client and the server send messages using the HTTP protocol over a TCP/IP connection.
- the client establishes a TCP/IP connection with the server.
- the client sends an HTTP request message over the 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.
- the server receives the HTTP request message and calls a control script.
- the control script checks authentication and retrieves a copy of the document object if access is authenticated.
- the server sends the copy of the document object to the client over the TCP/IP connection in an HTTP response message.
- the client receives the HTTP response message including the copy of the document object.
- the TCP/IP connection is terminated and the client permits a user to edit the copy of the document object.
- the client establishes a TCP/IP connection with the server and sends an HTTP request message to the server, wherein the HTTP request message contains a copy of the edited document 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.
- the server receives the HTTP request message and calls the control script.
- the control script stores the copy of the edited document object on the server at the location specified in the HTTP request message.
- the server sends an HTTP response message acknowledging an attempt at storage of the edited document object.
- the TCP/IP connection is terminated.
- Another aspect of the present invention is a computer-implemented process for enabling a client computer to store a document object on a server computer.
- the server receives an HTTP request message from the client computer over a TCP/IP connection, wherein the HTTP request message has content including a copy of the document object and an indication of a location on the server computer to store the copy of the document object and an indication that the client computer requests storage of the document object.
- the server executes a process using the content of the HTTP request message to store the copy of the document object on the server computer according to the indication of the location included in the HTTP request message.
- Another aspect of the invention is a computer system for enabling a client computer to store a document object on a server computer.
- the server computer includes a mechanism which receives an HTTP request message from the client computer over a TCP/IP connection, wherein the HTTP request message has content including a copy of the document object and an indication of a location on the server computer to store the copy of the document object and an indication that the client computer requests storage of the document object.
- the server computer also includes a mechanism which executes a process using the content of the HTTP request message to store the copy of the document object on the server computer according to the indication of the location included in the HTTP request message.
- Another aspect of the invention is a server computer in a computer system for enabling a client computer to store a document object on the server computer.
- the server computer includes a computer-readable and writable storage medium and a TCP/IP mechanism, having an input for receiving a request from the client computer to establish a TCP/IP connection with the client computer and which establishes the TCP/IP connection.
- the server computer also includes an HTTP server having an input for receiving an HTTP request message from the client computer over the TCP/IP connection via the TCP/IP mechanism, wherein the HTTP request message has content including a copy of the document object and an indication of name used by the HTTP server to retrieve the document object as stored on the storage medium and an indication that the client computer requests storage of the document object, and an output for storing the copy of the document object from the HTTP request message on the computer- readable and writable storage medium as a file according to the name included in the HTTP request message.
- Another aspect of the invention is a computer-implemented process for enabling a client computer to store a document object on a server computer.
- the client computer establishes a TCP/IP connection with the server computer.
- the client computer sends an HTTP request message to the server computer over the TCP/IP connection, wherein the HTTP request message has content including a copy of the document object and an indication of a location on the server computer to store the copy of the document object and an indication that the client computer requests storage of the document object.
- the client computer receives an HTTP response message from the server computer indicating a result of an attempt by the server computer to store the copy of the document object.
- Another aspect of the invention is a computer-implemented process for enabling a client computer to store a document object on a server computer.
- the server computer receives a request message from the client computer, wherein the request message has content including a copy of the document object, an indication of a location on the server computer, defining an indicated name which is a universal name used by other clients to access the document object on the server computer, and an indication that the document object is to be stored in the indicated location on the server computer.
- the server computer then converts the indicated name into a file name in a file name space of the server computer and storing the document object as a file on the server computer using the file name in the file name space of the server computer.
- the server computer then sends a response message to the client computer acknowledging storage of the document object.
- the server computer includes a mechanism for receiving a request message from the client computer, wherein the request message has content including a copy of the document object, an indication of a location on the server computer, defining an indicated name which a universal name to be used by other clients to retrieve the document object, and an indication that the document object is to be stored in the indicated location on the server computer.
- the server computer also includes a mechanism for converting the indicated name into a file name in a file name space of the server computer and storing the document object as a file on the server computer using the file name in the file name space of the server computer.
- the server computer also includes a mechanism for sending a response message to the client computer acknowledging storage of the document object.
- the server computer includes a computer-readable and writable storage medium and a server program executed on the server computer.
- the server program as executed, has an input connected to receive a request message from the client computer, wherein the request message has content including a copy of the document object, an indication of a name to be used by the server program to retrieve the document object which is a universal name used by other clients to retrieve the document object, and an indication that the document object is to be stored on the computer-readable and writable storage medium.
- the server program as executed also has a first output for providing a file name in a file name space of the server computer converted from the indicated name in the received message and a command to the server computer to store the document object as a file on the computer-readable and writable storage medium using the file name in the file name space of the server computer.
- the server program as executed also has a second output connected to the client computer to provide a response message to the client computer acknowledging storage of the document object.
- the universal name may be a URL or equivalent indicator.
- a universal name is different from a file name used by. for example, FTP because in FTP a message contains actual file name on server and maintains current working directory information of the user who has logged into the server.
- a universal name is different from a file name such as used by a network file system (NFS).
- NFS network file system
- a message contains physical file name and may maintain current working directory information.
- NFS the mapping of file names and directories is client-dependent and not client independent.
- HTTP or other server using universal, or client- independent names a message uses a URL which contains a protocol ://host/path which is passed through a mapping step.
- a file is accessible on the server only if it is listed in a mapping table of the server which matches trees of directories to URLs.
- the URL by itself typically cannot be used without a server to identify the file, unlike file names used in FTP.
- HTTP also has further rules which allow multiple mappings of subdirectories, unlike file names in NFS. Different security may also be provided on different subdirectories using HTTP. In other words. using HTTP and URLs, a names using a directory x and names using subdirectory x/y may be mapped to different places on server. Additionally, permissions associated with a directory x and subdirectory x/y may be different on the server.
- a server computer receives a request message from the client computer, wherein the request message has content including a copy of the document object, an indication of an application sending the message, an indication of a location on the server computer, and an indication that the document object is to be stored in the location on the server computer.
- the server determines whether the request message is from an authorized source by comparing the indication of the application in the content of the request message with accepted applications.
- the server stores the document object on the server computer using the location indicated in the request message and sending a response message to the client computer acknowledging storage of the document object.
- the server sends a response message to the client computer without storing the document object on the server computer.
- the server computer includes a mechanism for receiving a request message from the client computer, wherein the request message has content including a copy of the document object, an indication of an application sending the message, an indication of a location on the server computer, and an indication that the document object is to be stored in the location on the server computer. Another mechanism determines whether the request message is from an authorized source by comparing the indication of the application in the content of the request message with accepted applications.
- the server also includes a mechanism, operative when the request message is from an authorized source, for storing the document object on the server computer using the location indicated in the request message and sending a response message to the client computer acknowledging storage of the document object. Another mechanism is operative when the request message is not from an authorized source and sends a response message to the client computer without storing the document object on the server computer.
- the server computer includes a computer- readable and writable storage medium and a server program executed by the server computer.
- the server program as executed, has an input for receiving a request message from the client computer, wherein the request message has content including a copy of the document object, an indication of an application sending the message, an indication of a location on the server computer, and an indication that the document object is to be stored in the location on the server computer.
- the server program as executed also includes a comparator having a first input for receiving the indication of the application and a second input for receiving an indication of an authorized source and an output providing an indication of whether the request message is from an authorized source.
- the server program has a first output which provides a command to the server computer when the request message is from an authorized source to store the document object on the computer readable and writable storage medium as a file using the name indicated in the request message.
- the server program also has a second output which provides a response message to the client computer acknowledging storage of the document object when the request message is from an authorized source and. when the request message is not from an authorized source, which provides a response message to the client computer not acknowledging storage of the document object.
- Another aspect of the invention is a computer-implemented process for enabling a client computer to edit a document object stored on a server computer.
- a first HTTP request message is transmitted from the client computer over a TCP/IP connection to the server computer, wherein the first HTTP request message specifies the document object and an indication that the client computer requests retrieval of the document object from the server computer.
- a process is executed on the server computer using the first HTTP request message which retrieves a copy of the document object.
- the copy of the document object is transmitted from the server computer to the client computer over a TCP/IP connection in a first HTTP response message.
- the document object is then edited on the client computer.
- a second HTTP request message is transmitted from the client computer over a TCP/IP connection to the server computer, wherein the second HTTP request message contains a copy of the document object and an indication of a location on the server computer to store the copy of the document object and an indication that the client computer requests storage of the document object.
- a process is executed on the server computer using the second HTTP request message which stores the copy of the document object on the server computer according to the indication of the location included in the second HTTP request message.
- Another aspect of the invention is a computer system for editing of document objects, comprising a server computer and a client computer.
- the client computer includes a mechanism for sending a first HTTP request message over a TCP/IP connection to the server computer, wherein the first HTTP request message specifies the document object and an indication that the client computer requests retrieval of the document object from the server computer.
- the client computer also includes a mechanism for receiving an HTTP response message from the server including the copy of the requested document object and a mechanism for editing the document object on the client computer.
- the client computer also includes a mechanism for sending a second HTTP request message over a TCP/IP connection to the server computer, wherein the second HTTP request message contains a copy of the edited document object and an indication of a location on the server computer to store the copy of the document object and an indication that the client computer requests storage of the document object.
- the server computer includes a mechanism for executing a process on the server computer using the first HTTP request message which retrieves a copy of the document object.
- the server computer also includes a mechanism for transmitting the copy of the document object from the server computer to the client computer over a TCP/IP connection in the HTTP response message.
- the server computer also includes a mechanism for executing a process on the server computer using the second HTTP request message which stores the copy of the document object on the server computer according to the indication of the location included in the second HTTP request message.
- Another aspect of the present invention is a computer-implemented process for enabling a client computer to edit a document object on a server computer.
- the process involves sending a read request message from the client computer to the server computer, wherein the read request message specifies the document object using an indication of a location on the server, defining an indicated name which is a universal name used by other clients to retrieve the document object, and an indication that the client computer requests retrieval of the document object.
- the indication of the document object is converted to a file name in a file name space of the server computer and retrieving a copy of the document object from the server computer using the file name.
- the copy of the document object is sent from the server computer to the client computer in a read response message.
- a write request message is sent from the client computer to the server computer, wherein the write request message includes a copy of the document object, a universal name for the document object to be used by other clients to access the document object. and an indication that the document object is to be stored on the server computer to be accessible by the client computer using the universal name in the message.
- the indicated name is converted into a file name in the file name space of the server computer and storing the document object as a file using the file name in the file name space.
- a write response message is sent to the client computer acknowledging storage of the document object.
- Another aspect of the invention is a client application for use on a client computer for editing a document object stored on a remote server computer.
- the client application has an integrated user interface providing access to simultaneously to three mechanisms.
- the first mechanism retrieves the document object from the server computer.
- the first mechanism sends a read request message to the server computer including an indication of the document object using a universal name to be used by other clients to access the document object, and an indication that a copy of the document object is to be sent by the server computer to the client computer, then receives a read response message from the server computer including the copy of the document object, and then stores the copy of the document object in memory.
- the second mechanism is for editing the document object stored in the memory.
- the third mechanism is for storing the edited document object on the server computer.
- the third mechanism sends a write request message to the server including the copy of the edited document object from the buffer and an indication of a universal name to be used by other clients to access the document object on the server to store the edited document object, then receives an acknowledgment message from the server computer and for communicating the acknowledgment message to a user, and finally allows a user to activate any of the means for retrieving, editing or storing with an integrated user interface.
- Another aspect of the invention is a computer-implemented process for enabling a client computer to edit a document object on a server computer. This process involves transmitting a read request message from the client computer to the server computer, wherein the request message includes an indication of the document object, an indication of an application sending the message, and an indication that the document object is to be sent to the client computer.
- a copy of the document object is retrieved on the server computer and a first response message is sent to the client computer including the copy of the document object.
- a response message is sent to the client computer without sending a copy of the document object. The copy of the document object is then edited on the client computer.
- a write request message is transmitted from the client computer to the server computer, wherein the write request message includes a copy of the document object edited by the client computer, an indication of a location on the server computer, an indication of an application sending the message, and an indication that the document object is to be stored in the location on the server computer. It is then determined, on the server computer, whether the write request message is from an authorized source by comparing the indication of the application in the content of the request message with accepted applications. When the write request message is from an authorized source, the document object is stored on the server computer as a file using the location indicated in the write request message and sending an acceptance response message acknowledging storage of the document object. When the write request message is not from an authorized source, a denial response message is sent to the client computer without storing the document object on the server computer.
- One advantage of this system is that current Web browsers do not need to be changed after installation of a control script at the Web server to permit use of an authoring tool in accordance with this invention.
- This benefit is obtained in one embodiment by utilizing an HTTP method not used by the Web browser, the PUT method, to handle requests from the authoring tool.
- changes to authoring tool systems can be made transparently to users who merely view information or use an on-line service.
- One advantage of this system over the prior art approaches is that the on-line service author can use a single client program and interface to retrieve a script or document from an existing on-line service on a server, edit or create a script or document for an on-line service, and save the resulting script or document to the appropriate place within the on-line service area on the server.
- Another advantage of this system is that the author of the on-line service can edit the on- line service documents and scripts from any client machine, so long as the client machine can run a Web browser and communicate via HTTP protocol with the Web server that hosts the on-line service.
- the client machine and server machine may have different types of processors, with different architectures, running different operating systems, in a heterogenous network.
- Another advantage of this system is that the authoring tool program communicates with the Web server program using the same type of network connection and the same protocol (HTTP) that is used by a Web browser talking to a Web server.
- HTTP HyperText Transfer Protocol
- the remote editing facility of the invention will work from any client that can support a Web browser communicating with an on-line service. It also means that remote editing with this invention does not require any additional network connectivity programs other than those needed for a Web browser to communicate with a Web server.
- the authoring tool uses the basic authentication procedures provided by the HTTP protocol and the Web server software. Access to files on the server machine may be limited to service authors with a validated user name and password. Thus, by using the HTTP protocol that is already used for on-line services on the World Wide Web. a minimal level of security is provided during the authoring process.
- Another advantage of this system is that the authoring process can be used for remote retrieval, editing, and storing of at least two of the types of document objects that comprise an on-line service on the WWW: static HTML documents and script programs that generate HTML documents.
- Remote editing of on-line service document objects using the method of this invention also has several advantages over the prior art approaches, such as remote editing over a network file system where a client machine can read and write files on a remote server machine.
- One advantage is that our invention allows access to the online service document objects only through the Web server program, and thus conforms to the additional security rules implemented by the server program.
- a second advantage is that since our invention uses the existing HTTP protocol mechanism of the Web server machine, the server machine does not have to run additional software or server programs that are required to implement a network file system or shared access to a remote file system from a client machine. This is an advantage because the additional software would add complexity and would add further possibilities for security loopholes.
- a third advantage is that our invention allows access to the online service document objects only through the Web server program, and thus conforms to the document object name mapping conventions between URLs and actual file names of the Web server program.
- the advantage of the method of our invention is that neither client programs nor service authors need to understand this file name mapping and only need to use the URLs.
- Figure 1 shows the prior art sequence of activities on the Web browser during operation of an on-line service on the Web:
- Figure 2 shows the prior art sequence of activities on the Web server during operation of an on-line service on the Web
- Figure 3 shows an overview of the authoring framework for remote authoring of on-line services
- Figure 4 shows the sequence of steps on the Web browser during remote authoring of an on-line service:
- Figure 5 shows the sequence of steps on the Web server during remote authoring of an on-line service: and Figures 6a and 6b show the messages that the client authoring tool sends to the server.
- FIG 3 shows an overview of a computer system for remote authoring of on-line services.
- the system includes a client machine 80 connected to a server machine 84 over a communication channel through which the client sends requests 108 and receives responses 110.
- the client machine has an authoring tool 82 which makes the requests 108.
- the server machine 84 has a server program 86 which sends responses 110 to the authoring tool 82.
- the server program 86 has an associated control script 88 which processes requests 108 and generates the responses 110 to be returned by the server program 86.
- the control script 88 in response to some requests 108. may be used to access on-line services 90 and 100. These services may be authored using the authoring tool 82 to generate appropriate documents 92 and 102 and programs 94 and 104.
- the operating system of the client has a file name space which does not include or map to names of files on the server.
- the client machine 80 is a PC with an Intel 80486 processor with a clock speed of 50 MHz. running the Microsoft Windows 3.1 operating system.
- the authoring tool 82 may be any of a variety of document editors, such as HTML editors, text editors, script editors and the like. The exact form of the authoring tool and the functionality of the editor are up to the needs and desires of the user. However, such an authoring tool allows the retrieval and storage of a document object on the Web server by generating an HTTP request message as described herein. Existing Web browsers could be modified to provide a storage function and editing capabilities to provide this functionality. Additionally.
- HTML and other editing tools may also be used in conjunction with this invention if modified to allow for retrieving and storing files on the server by generating appropriate HTTP messages as described below.
- a lar ⁇ e number of HTML editors.. such as HoTMetaL. from SoftQuad. Inc.. of Toronto. Ontario. Canada, and other document editors and program editors, such as VisualBasic. may be used to create documents and scripts and the invention is not limited thereby.
- the client machine 80 may have dial-up connection to an Internet service provider, typically using a 14.400 baud or faster modem, and using the Trumpet 2.0b application for Microsoft Windows that provides the TCP/IP protocol software running over a SLIP connection using a normal telephone line. In this arrangement, the client machine 80 is connected to the Internet and has its own Internet address.
- the server machine 84 is a Gateway 2000 personal computer with an Intel Pentium processor with a clock speed of 60 MHz. running the BSDi Unix operating system.
- the Web server program 86 is the CERN Hypertext Transfer Protocol Daemon (HTTPD) server, configured for the Unix operating system.
- the server machine 84 also has a dial-up connection to an Internet service provider, using a 14.400 baud or faster modem, and using the TCP/IP and SLIP software that comes with the BSDi Unix operating system.
- the Web server program is the only program providing access to documents, other than the operating system. It may define groups of users, user names, passwords and file names separately from the operating system of the server machine 84.
- the client and server machines can establish a TCP/IP connection and exchange messages over the Internet.
- this embodiment is merely exemplary.
- a large variety of computers and operating systems have suitable server and client software for communicating using HTTP over the Internet.
- the client and server machines may also be connected by a local area network (LAN), wide area network (WAN) or may even be the same machine, but with different processes communicating together over a common communication channel.
- LAN local area network
- WAN wide area network
- message protocols for communicating over TCP/IP connections may be used, such as HTTP, FTP. telnet, etc.
- the server and the client do not share flies through the file name spaces of their respective operating systems.
- the file name space of the client does not include or map to names of files on the server. In other words, no pair of file names in the two file names spaces correspond to the same file. More details about setting up client and server machines connected to the Internet and the World Wide Web are discussed in "Setting up Shop on the Internet.” by Jeff Frentzen et al.. and related articles in Windows Sources. February 1995, pp. 42. 64-67. 70, 73-74. 77-80,106. 108. 111, 113-114. 117-120. 122. 125. 128. 134-136. 13 8-140 and 143.
- Communication between the client authoring tool program on the client machine and the Web server program on the server machine can occur when both machines are connected to their respective Internet service providers.
- Communication between the server machine and client machine takes the form of the client sending an HTTP request to the server 108, the server processing the request, followed by the server replying with an HTTP response message to the client 110.
- the client authoring tool program establishes a TCP/IP connection to the server program and sends the HTTP request message over that connection.
- the server program receives the HTTP request message, performs the indicated processing, and replies with an HTTP response message over the same connection. Finally the two programs terminate the TCP/IP connection.
- the server program executes a control script 88 written in the Tel programming language.
- a suitable control script is described in more detail below in connection with Figure 5 and is also found in the attached appendix.
- the attached appendix contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure containing this appendix, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all rights whatsoever.
- the server program could just as well be programmed to respond to a POST request, given the current version of the HTTP standard.
- Other protocols, such as FTP could also be used. Different protocols and different messages could be used for both retrieval and storage. For example.
- FTP could be used to retrieve and HTTP could be used to store, or vice versa.
- the same type of message is used to process both retrieval and storage of both documents and scripts.
- the particular message type is not limiting of this invention.
- a Web server may allow a user to define custom message types.
- the control script program handles requests to retrieve or store objects in the service data areas 90 and 100 on the server machine. There are two types of objects stored in each service data area: static documents in the HTML language 92 and 102. and script programs that generate HTML documents 94 and 104.
- Figure 4 shows a typical flow of control during one remote authoring session, where the service author uses the client machine to retrieve a document from the Web server, edit that document on the client machine, and save the document back to the Web server.
- Figure 4 does not attempt to show editing, error handling, and graphical user interface features that are well known in the prior art for text editors and word processing programs. For instance it does not show that the user may be editing several documents independently within several windows, or that the user may abort an editing session at any time without saving a document, or that the user may retrieve, edit, save in one window and then repeat those steps for a different document in the same window. Furthermore. Figure 4 does not attempt to show the editing commands that the user uses to make changes to the document on the client machine because these are well known in the art.
- the service author first runs the authoring tool program on the client machine in step 120. which provides a graphical user interface for remote editing.
- the author then asks in step 121 to edit a document or script from a particular on-line service, and identifies the object by specifying a document or script name, the service name, and the address of the Web server where the service is stored, such as by using its URL.
- the authoring tool program then sends in step 122 an HTTP PUT request to the Web server where the service is stored.
- the structure of this PUT request is shown in Figure 6a which is described in more detail below, and includes header fields for authorization, the MIME version number, the request content type, and the content length in bytes.
- the body of the request includes a method command field that identifies the request as a retrieve request and a URL command field that gives the URL for the document or script object to be retrieved.
- the Web server program When the Web server program receives an HTTP PUT request in step 124. it passes it to the control script 88.
- the control script examines the parameters of the retrieve request, and writes an output file in step 126 that contains either the requested document or script, or an error message for the service author indicating why the request could not be satisfied.
- the Web server program translates the URL into a file name in the file name space used by the operating system of the server machine. Such mappings are usually found in a configuration file for the server.
- the control script can also be made to perform such translation and maintain its own configuration file of mappings. This can be done so that the server does not have to be reinitialized when mappings change, for example, by the creation of a new service.
- the detailed operation of the control script is shown in Figure 5. and is explained further below.
- the authoring tool then receives the HTTP response, containing the document or script that the author requested, and the authoring tool displays the document or script in a new window in step 130. using an appropriate editor. If the response contains an error message for the service author then it is handled in the normal way that an editor program handles the case when
- step 132 the service author edits the retrieved document using the appropriate editor.
- the service author may issue a command to save the current version of the document or script being edited, as noted in step 134.
- the save command causes the authoring tool client program to send a replace request to the server. l o
- the replacement process is similar to the retrieval process described earlier.
- the authoring tool program sends an HTTP PUT request to the Web server where the service is stored 136.
- the structure of this PUT request is shown in Figure 6b. and includes header fields for authorization, the MIME version number, the request content type, and the content length in bytes.
- the body of the request includes a method command field that identifies the request as a
- the server program in step 138 passes it to the control script 88.
- the control script examines the parameters of the replace request, and attempts to store the document or script on
- step 140 the server at the location given by the URL (step 140). and writes an output file that either contains a status message indicating that the request was completed, or contains an error message for the service author indicating why the request could not be satisfied (step 142).
- the detailed operation of the control script is shown in Figure 5. and is explained further below.
- the authoring tool When the authoring tool receives the HTTP response, if the response is an error message then the error message is displayed for the service author in step 146. Otherwise the authoring tool informs the user that the document or script was successfully saved on the Web server machine in step 146. In either event, the authoring tool waits for a new command from the
- FIGs 6a and 6b show the structure of the HTTP request messages that the authoring tool sends to the Web server.
- the HTTP requests include a single request line, followed by header fields in the HTTP header, followed by a blank line, followed by command fields in the HTTP request body, followed by optional data in the HTTP request body.
- Header fields have a header field name followed by colon (":”) and a header field value.
- Command fields have a command field name followed by a colon (":”) and a command field value.
- the format of the request line and header fields is defined by the HTTP protocol specification, while the format of the HTTP request body, including the command fields, is defined by the method of our invention.
- Figure 6a shows the HTTP request message format for a "retrieve" request.
- 201 is the request line, comprising the "PUT" method name 211. followed by the URL for the object to be retrieved 221. followed by the HTTP protocol version number 231.
- the second line comprising the "PUT" method name 211. followed by the URL for the object to be retrieved 221. followed by the HTTP protocol version number 231.
- This authorization field may be used to carry passwords for protection purposes by the Web server.
- the Web server may only allow use of the PUT request message by particular users. Also, the Web server could look to the password when a user attempts to write to a file using the Web server. These and other security devices may be used in connection with this invention.
- the third line 203 is the MIME version header field, comprising the header field name 213. e.g..
- the fourth line 204 is the content type header field, comprising the header field name 214. e.g., "Content-type,” followed by the header field value 224. e.g., "application/x-vermeer.”
- the fifth line 205 is the content length header field, comprising the header field name 215. e.g., "Content-length.” followed by the header field value 225 giving the length in bytes of the HTTP request body.
- the sixth line 206 is the blank line that separates the header fields from the HTTP request body.
- the seventh line 207 is the method command field, comprising the command field name 217, e.g., "method.” followed by the command field value 227, "retrieve.”
- the eighth line 208 is the URL command field, comprising the command field name 218, "url.” followed by the command field value 228 giving the URL for the object on the server machine that is to be retrieved.
- Figure 6b shows the HTTP request message format for a "replace" request.
- the first line 301 is the request line, comprising the "PUT" method name 311. followed by the URL 321 giving the location on the server where the document should be saved, followed by the HTTP protocol version number 331.
- the third line 303 is the MIME version header field, comprising the header field name 313. e.g.. "MIME_version.” followed by the header field value 323.
- the fourth line 304 is the content type header field, comprising the header field name 314. e.g., "Content-type.” followed by the header field value 324, e.g.. "application/xvermeer.”
- the fifth line 305 is the content length header field, comprising the header field name 315. e.g.. "Content-length.” followed by the header field value 325 giving the length in bytes of the HTTP request body.
- the sixth line 306 is the blank line that separates the header fields from the HTTP request body.
- the seventh line 307 is the method command field, comprising the command field name 317. e.g.. "method.” followed by the command field value 327. e.g..
- the eighth line 308 is the content type command field, comprising the command field name 318. e.g.. "Content-type. " followed by the command field value giving the content type identifier 328.
- the ninth line 309 is the URL command field, comprising the command field name 319. e.g.. "url.” followed by the command field value 329 giving the URL for the object on the server machine that is to be replaced.
- control script 88 As described above, in this embodiment the Web server program calls the control script when a retrieve or replace request arrives from the authoring tool.
- the control script processes the retrieve or replace request and writes an output file that the Web server will send back to the client as the response to the retrieve or replace request.
- the control script when the Web server calls the control script, the control script first reads the "Content-type" header field of the HTTP request header to get the document type in step 160. A test is performed to see if the document type given in the header field is
- step 162 If the request is not from the authoring tool, then the control script writes an error message to the output file 164 and the control script terminates.
- the test performed in step 162 yields the answer. "Yes.” and the control script reads the command fields from the body of the HTTP request (step 166).
- a test is then performed in step 168 in order to determine if the command fields are acceptable. This test involves determining whether: (1 ) there is a "method” command field (2) there is a "URL"command field, and (3) the command fields are syntactically correct. If the command fields are not correct, then the control script writes an error message to the output file in step 170 and the control script terminates.
- step 168 yields the answer "Yes” and the control script performs a test to determine if the "method" command field value indicates a retrieve request (step 172). If so. then another test is performed to determine if the file given in the "URL" command field value exists and is readable (step 174). If the result is "Yes “ then the control script sets the content type by examining the file name extension in step 176. The control script then writes the HTTP response header containing the content type, and the data content of the indicated file, to the output file in step 178. and the control script terminates. If the test in step 174 yields the answer "No” then the control script writes an error message to the output file in step 180 and the control script terminates.
- step 172 yields the answer "No" and a test is performed to see if the command field indicates a "replace” request (step 182). If the "method” command field does not indicate a "replace” request then the test 182 yields the answer "No.” the control script writes an error message to the output file in step 194. and the control script terminates. Otherwise, if the "method" command field indicates a "replace” request, then another test is performed in step 184 to determine if the file given in the "URL" command field value may be written by the authoring tool and this user.
- the file may be written if the file does not currently exist, or if the file exists and the service author has authorization to write the file.
- Authorization may be determined by the Web server, to see if the user attempting to write to a file has provided a correct password. Authorization may also be determined by the underlying operating system, to see if the Web server has authorization to write to the file specified by the URL. If the result of the test in step 184 is "Yes” then the control script stores the data of the HTTP request body in the file indicated by the "URL" command field value (step 186). The control script then sets the appropriate file permissions on the new file in step 188. writes the status message indicating the result of the command into the output file in step 190. and the control script terminates.
- Another advantage of this system is that the ability to store files on the server is made possible in a manner which is transparent to usage by any Web browser.
- the server By using a control script to control processing of messages, the server also need not be modified.
- the server is simply configured to recognize the control script, thus allowing easy installation.
- the invention is not limited to use on the Internet or using the World Wide Web or using the HTTP communication protocol.
- the file transfer protocol could also be used, using "get” and "put” commands in that protocol.
- Other protocols using messages communicated over TCP/IP connections are also possible.
- a mix of such protocols may also be used to perform retrieval or storage functions. It is also possible that a service author will keep local copies of document objects of an on-line service so that only a remote storage function is used.
- a client program modifies and stores documents and programs on the server using protocols over a TCP/IP connection between the client and the server
- the client and server may be connected by the Internet, or a private local or wide area network or may be on the same machine.
- the client authoring tool may be configured to communicate only with the server.
- the processing of messages need not be provided by a control script added to the server, but may also be made possible by modifications to the server.
- # operations in the Vermeer authoring tool client # retrieve - retrieve a document
- # listservices - return a list of services on the server.
- # linkmap - return a linkmap of documents on the server.
- DBG "result -Sresult-” ⁇ else ⁇ DBG "file index branch” set below [string range Surl 8 end] set service [file dirname Sbelow]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US406360 | 1995-03-17 | ||
US08/406,360 US5732219A (en) | 1995-03-17 | 1995-03-17 | Computer system and computer-implemented process for remote editing of computer files |
US566281 | 1995-12-01 | ||
US08/566,281 US5793966A (en) | 1995-12-01 | 1995-12-01 | Computer system and computer-implemented process for creation and maintenance of online services |
PCT/US1996/003650 WO1996029663A1 (en) | 1995-03-17 | 1996-03-18 | Computer system and computer-implemented process for remote editing of computer files |
Publications (1)
Publication Number | Publication Date |
---|---|
EP0815519A1 true EP0815519A1 (de) | 1998-01-07 |
Family
ID=27019486
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP96908850A Ceased EP0815518A1 (de) | 1995-03-17 | 1996-03-18 | Rechnersystem und verfahren zur herstellung und erhaltung von online-diensten |
EP96909744A Ceased EP0815519A1 (de) | 1995-03-17 | 1996-03-18 | Rechnersystem und verfahren zur ferneditierung von rechnerdaten |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP96908850A Ceased EP0815518A1 (de) | 1995-03-17 | 1996-03-18 | Rechnersystem und verfahren zur herstellung und erhaltung von online-diensten |
Country Status (3)
Country | Link |
---|---|
EP (2) | EP0815518A1 (de) |
JP (2) | JP4306797B2 (de) |
WO (2) | WO1996029663A1 (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6564321B2 (en) | 1995-04-28 | 2003-05-13 | Bobo Ii Charles R | Systems and methods for storing, delivering, and managing messages |
AU5356598A (en) * | 1996-11-15 | 1998-06-03 | Inergy Online, Inc. | Remote communication, information management, and home page authoring system |
EP0924624A4 (de) * | 1997-02-19 | 2005-07-13 | Digipark Inc | Virtueller rauminformationsprozessor |
US5937404A (en) * | 1997-04-23 | 1999-08-10 | Appaloosa Interactive Corporation | Apparatus for bleaching a de-activated link in a web page of any distinguishing color or feature representing an active link |
DE19717167A1 (de) * | 1997-04-23 | 1998-10-29 | Ibm | Webbrowser-basiertes Konferenzsystem |
DE69831290T2 (de) | 1997-06-30 | 2006-03-09 | Fuji Photo Film Co. Ltd., Minamiashigara | System und Verfahren zur Bildübertragung |
JP3544457B2 (ja) * | 1997-08-22 | 2004-07-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 電子メール又はエージェントを利用してクライアント上でguiを作成する方法及び装置、そのためのプログラムを記録した記録媒体 |
US6157936A (en) * | 1997-09-30 | 2000-12-05 | Unisys Corp. | Method for extending the hypertext markup language (HTML) to support a graphical user interface control presentation |
US20060193278A1 (en) | 1997-10-15 | 2006-08-31 | Wolfgang Theimer | Mobile telephone for Internet applications |
US6886130B1 (en) | 1997-11-26 | 2005-04-26 | International Business Machines Corporation | Compiled structure for efficient operation of distributed hypertext |
US6230168B1 (en) | 1997-11-26 | 2001-05-08 | International Business Machines Corp. | Method for automatically constructing contexts in a hypertext collection |
US5991713A (en) * | 1997-11-26 | 1999-11-23 | International Business Machines Corp. | Efficient method for compressing, storing, searching and transmitting natural language text |
US6178439B1 (en) | 1997-12-23 | 2001-01-23 | British Telecommunications Public Limited Company | HTTP session control |
AU3006000A (en) * | 1999-02-26 | 2000-09-14 | Atabok Inc. | Method and apparatus for delivering electronic data through a proxy server |
DE19922118A1 (de) * | 1999-05-12 | 2000-11-23 | Oce Printing Systems Gmbh | Netzwerk, Interpreter für ein derartiges Netzwerk und Verfahren zum Betreiben eines Netzwerkes |
KR100326425B1 (ko) * | 1999-07-28 | 2002-02-28 | 최재학 | 홈페이지 제작 방법 |
JP2002149546A (ja) * | 2000-11-06 | 2002-05-24 | Enshiyou Honsha:Kk | バナー広告システムおよびバナー広告の管理方法 |
US20020083182A1 (en) * | 2000-12-18 | 2002-06-27 | Alvarado Juan C. | Real-time streamed data download system and method |
US7437429B2 (en) * | 2001-02-13 | 2008-10-14 | Microsoft Corporation | System and method for providing transparent access to distributed authoring and versioning files including encrypted files |
JP2002259340A (ja) * | 2001-03-06 | 2002-09-13 | Hitachi Software Eng Co Ltd | サーバ回収型コンテンツ更新方法及びコンテンツ更新システム |
JP2004070619A (ja) * | 2002-08-06 | 2004-03-04 | Tdk Corp | ウェブページのアップロードシステム、コンピュータプログラムおよび記録媒体 |
US7383586B2 (en) | 2003-01-17 | 2008-06-03 | Microsoft Corporation | File system operation and digital rights management (DRM) |
US8028204B2 (en) | 2009-03-20 | 2011-09-27 | Xerox Corporation | Method and system for maintenance of a data-processing apparatus |
-
1996
- 1996-03-18 JP JP52853696A patent/JP4306797B2/ja not_active Expired - Lifetime
- 1996-03-18 JP JP8528539A patent/JPH11502346A/ja active Pending
- 1996-03-18 EP EP96908850A patent/EP0815518A1/de not_active Ceased
- 1996-03-18 WO PCT/US1996/003650 patent/WO1996029663A1/en active Application Filing
- 1996-03-18 EP EP96909744A patent/EP0815519A1/de not_active Ceased
- 1996-03-18 WO PCT/US1996/003654 patent/WO1996029664A1/en active Application Filing
Non-Patent Citations (1)
Title |
---|
See references of WO9629663A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO1996029664A1 (en) | 1996-09-26 |
JP4306797B2 (ja) | 2009-08-05 |
EP0815518A1 (de) | 1998-01-07 |
JPH11507148A (ja) | 1999-06-22 |
JPH11502346A (ja) | 1999-02-23 |
WO1996029663A1 (en) | 1996-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5732219A (en) | Computer system and computer-implemented process for remote editing of computer files | |
US5793966A (en) | Computer system and computer-implemented process for creation and maintenance of online services | |
US5890171A (en) | Computer system and computer-implemented method for interpreting hypertext links in a document when including the document within another document | |
US7168034B2 (en) | Method for promoting contextual information to display pages containing hyperlinks | |
EP0815519A1 (de) | Rechnersystem und verfahren zur ferneditierung von rechnerdaten | |
US6189019B1 (en) | Computer system and computer-implemented process for presenting document connectivity | |
US6578078B1 (en) | Method for preserving referential integrity within web sites | |
US6456308B1 (en) | Embedded web server | |
US5973696A (en) | Embedded web server | |
US7058644B2 (en) | Parallel tree searches for matching multiple, hierarchical data structures | |
US5884309A (en) | Order entry system for internet | |
US9405736B1 (en) | Method and system for automatically downloading and storing markup language documents into a folder based data structure | |
JP3548098B2 (ja) | ネイティブ言語照会サービスを提供する方法およびシステム | |
US5878219A (en) | System for integrating access to proprietary and internet resources | |
KR100307015B1 (ko) | 전자메시지를조직화하기위한방법및데이터처리시스템 | |
US20070239726A1 (en) | Systems and methods of transforming data for web communities and web applications | |
EP1727059A2 (de) | Client-Server-Anwendungsentwicklung sowie Systeme und Verfahren zu deren Einsatz | |
US20050166141A1 (en) | Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural description to a second structural description | |
US20020091835A1 (en) | System and method for internet content collaboration | |
US20030088639A1 (en) | Method and an apparatus for transforming content from one markup to another markup language non-intrusively using a server load balancer and a reverse proxy transcoding engine | |
EP1317714A1 (de) | Verfahren und system zur bereitstellung eines rahmens für die verarbeitung von dokumenten in markup-sprache | |
JPH11316719A (ja) | ドキュメントの作成を援助する方法およびシステム | |
JP2004516579A (ja) | ネットワーク・クライアントから情報を要求するための方法およびシステム | |
JP2000207421A (ja) | ハイパ―リンクを使用して文書を検索するための方法及びシステム | |
US20040117349A1 (en) | Intermediary server for facilitating retrieval of mid-point, state-associated web pages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19971010 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE FR GB |
|
17Q | First examination report despatched |
Effective date: 20040216 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R003 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 20120321 |