DATA TRANSMISSION AND EDITING
This invention relates to apparatus and a method for editing and
managing files of data (e.g. representing text documents) over networks of
connected computers.
Many computers internationally are connected together through
communication links and networks. The development of common
communications protocols has enabled diverse such computers to behave in
some respects like a single, geographically dispersed network, which has
popularly been termed the Internet.
One mechanism by which files on one computer may be accessed and
transmitted to another is provided by the use of hypertext links, which are
widely used at present, notably in what is popularly referred to as the
Worldwide Web (WWW).
Many host computer sites are programmed to provide hypertext server
programs such as httpd (HyperText Transfer Protocol Daemon), and many
network access terminals (e.g. personal computers) are programmed to operate
hypertext communications client programs (popularly referred to as "browsers")
such as Mosaic (TM) (available from the National Centre for Supercomputing
Applications (NCSA) at the University of Illinois; Explorer (TM) (available
from Microsoft Inc.); and Netscape Navigator (TM), (available from Netscape).
Such client programs are arranged to communicate, via a telecommunications
channel (typically including an end user link such as a local telephone line and a
higher capacity link through a network access provider such as CompuServe or
the present applicant) to transmit to the host computer running the server a
program request for a particular file and, on receipt of the file, are arranged to
display the file contents.
Most files are in the form of documents in Hypertext Markup Language
(HTML). Such documents comprise ASCII text characters, interspersed with
control character strings, in the form of commands which are interpreted by the
browser program to control the display of the document. Since the browser
program may run on many different types of terminal computer, with different
sized displays, different fonts, and different graphics capabilities, the actual
format of the document display is determined by the browser together with the
user interface of the terminal computer, based on the commands embedded in
the hypertext document received from the server.
Many of the commands in hypertext documents simply relate to
traditional features of document layout, such as paragraph breaks, line feeds and
font size.
Another type of hypertext command comprises the specification of an
image file address or file name. This causes the browser program to retrieve the
specified image file and display the corresponding image at the point in the
document at which the command was placed (i.e. as an "in line image").
However, distinguishing hypertext documents from other documents are
the provision of hypertext links or "anchors" within the document. Each link
consists of:
1. A defined point in the document at which some displayed matter
(e.g. a word or a picture) acts as a "soft button" which may be selected by a user
via a user interface comprising, for example, a mouse or other pointing device,
or arrow keys, and
2. The address or file name of a further file which, when the user
selects the corresponding area of the document as described, will be retrieved by
the browser program and displayed in place of the current display.
Many longer hypertext document include internal hyperlinks, to other
parts of the same document. Typically, the document is broken into several
sections, each commencing with a section heading, and at the start of the
document (i.e. the first displayed portion) is an index listing the section
headings, or, more generally, the location within the document to which instant
access might be required.
Items in the list of headings in the index each comprise a hyperlink, and
at the corresponding section heading in the document to each hyperlink is
provided a HTML command specifying that it is a label to which a link may
point.
Other forms of file transfer mechanism are used across computer
networks. For example, for sending files across the Internet, a command
protocol referred to as ftp (file transfer protocol) is widely used.
At present, hypertext transfer of documents is widely used as an
information access method for retrieving documents; in other words, is widely
used for unidirectional information transfer, with client computer terminals
operating browser programs requesting the downloading of large volumes of
data, but transmitting back only relatively low bandwidth command and
communication signals.
Some hypertext documents, such as subscription documents or
documents for which use is to be charged, contain a form to be completed by
the user at the terminal computer. The form typically requests the insertion of
the name, address and other bibliographic information concerning the user, and
may require the insertion of brief comments, or the selection of technical
information (e.g. the model of computer used) from amongst a list of items.
Having completed the form, typically, the user will select a hypertext
link button at the end of the form which causes the browser to transmit back the
contents of the form to the server via the communications channel.
Aspects of the present invention are concerned with the provision of a
document authoring system which allows the text of a document to be
developed, by repeated editing over time. Typically, such a document finally
reaches a stage in which it is finalised, at which point it may be "issued" or
"released".
Often, documents such as technical specifications may be the product of
several authors, all of whom will need access to the document during
development. Rather than developing a document on the word processor of a
single user, it is therefore known to make the document available over a local
area network (LAN) for a number of users to work on it.
Many technical documents, such as product use manuals or system
specifications, are subject to periodic changes, which are often minor and affect
only a small part of a very large document.
An aim of the present invention is to make a document development
system available over a wide area network such as the Internet.
HTML documents at present are typically developed and edited on a
terminal computer such as a personal computer, and then uploaded onto a server
computer. The HTML documents may be created and edited directly, using a
text editor and word processor with ASCII capability.
An alternative is to edit a word processor document to add hypertext
commands, using an HTML editor or filter program such as HTML assistance;
HoTMetaL available from SoftQuad Inc.; cu.html; Web Author available from
Quarterdeck Systems Inc.; or Internet Assistant available from Microsoft Inc.
Some such programs can be used with a browser program, so that the result of
the edited text can be viewed through the browser program.
A particular problem associated with the use of the Internet (but which
could equally be found in other networks) is the effect of network congestion on
file transfer speed. Since data transfer across the Internet backbone links is
connectionless, the effect of increased traffic is to statistically increase the delay
experienced in transferring an entire file for all users. The popularity of some
Internet server computers has lead to user frustration at the delay encountered in
transferring data, and may deter commercial uses of the Internet.
Were a document authoring system to be provided over the Internet, this
could lead to the transfer of large volumes of additional information over the
network since, for every (typically minor) change, an entire (typically long)
document would be transferred.
This could cause a higher risk of transmission failure during sending a
document, as well as greater delays for all users.
In one aspect, therefore, the present invention provides a document
communication and editing system, for example for use over the Internet, in
which at least the section of a document to be edited is downloaded in an
editable format; edited; and then the edited section is transferred back to the
server computer. This can therefore significantly reduce the volume of traffic
crossing the network. Furthermore, this can significantly reduce the risk of
transmission failure since only a section of the document needs to be
successfully transmitted.
This may be achieved by providing, at a server computer, that the
section to be edited is transferred in an HTML form, which can be interpreted
and used by a currently available HTML browser such as Netscape Navigator
(TM). Thus, this enables the present invention to be implemented entirely by
software at the server computer, requiring no alteration to the software or
hardware available at each terminal computer. An embodiment of the invention
can therefore use a conventional hypertext browser program at each terminal
computer without requiring any special hypertext editor program.
Other aspects and embodiment of the invention are described and
claimed hereunder, with advantages that will be apparent from the following
description and claims.
The invention will now be described, by way of example only, with
reference to the accompanying drawings in which:
Figure la is a structural block diagram illustrating the hardware present
in an embodiment of the invention;
Figure lb is a functional block diagram illustrating the program
elements configuring the hardware of Figure la;
Figure 2 (comprising Figures 2a & 2b) is a flow diagram illustrating the
general operation of the embodiment of Figure 1, and particularly the server
computer thereof;
Figure 3 is a flow diagram illustrating the operation of the document
creation process of Figure 2;
Figure 4 is a flow diagram illustrating the operation of the document editing process of Figure 2;
Figure 5 is a flow diagram illustrating the operation of the document
issuing process of Figure 2; Figure 6 is a flow diagram illustrating the
operation of the document issuing process of Figure 2; and
Figure 7 is a flow diagram illustrating the operation of the document
version rollback process of Figure 2.
Referring to Figure la and Figure lb, in one embodiment, the present
invention comprises a host computer 20 such as a SUN webserver including a
CPU 21; communication port 22 and memory /storage 25 configured to act as a
worldwide web server under control of a worldwide web server program 110
loaded and running within the memory 25 of the computer 20.
The computer 20 is connected, via the Internet 105, to a conventional
computer terminal 10 within the memory of which is loaded and operating a
worldwide web browser program such as Netscape Navigator (TM).
Also provided and ninning within the computer 10 are a user interface
such as a GUI (and, for example, comprising Windows 3.1 (TM) or Windows
95 (TM), available from Microsoft Inc.) and supporting user interface features
such as input means 12 comprising a keyboard and pointer device such as a
mouse; and user output means 13 such as display on a visual display unit (not
shown) or printer (not shown) together with local storage and file handling on a
store such as a hard disk drive 14, all controlled by a CPU 15, and
communicating via a port 16 (e.g. a modem) with the Internet 105.
Further provided at the server computer 110 are a document store 155
storing one or more hypertext document made available by the server computer
20 via the Internet 105; a document management program 112 via which access
to the documents in the document store 155 is performed according to the
invention; and a document database 150 storing details of each document for
use by the document management program 1 12.
The document management program 112 comprises a document creator
subprogram 115; a document issuer subprogram 120; a document editor
subprogram 125; a document deleter subprogram 130; a document version
manager subprogram 135; a document parser subprogram 140; a lock manager
subprogram 145; and a document rollback subprogram 147.
In the present embodiment, the server 110 is a conventional httpd
program, and is operable to allow access from a terminal 10 operating under
control of a browser program 100 to the documents within the document store
150 exactly in the manner of currently operating server programs. This mode of
operation is available for finalised documents, is unidirectional, and does not
permit editing of the documents. The skilled reader will be familiar with the
operations involved, which will not be described further herein.
The document management program 112 is, in this case, a cgi-bin
program resident on the server computer.
Overview of operation of the embodiment
The embodiment permits a user of the terminal computer 10 to create,
edit and manage a collection of HTML documents on the server computer 20,
and also allows access to other users to permit them to co-author documents.
In greater detail, it allows the user to:
1. create a new document;
2. edit the new document to produce a new version thereof, which is
allocated a new version number, whilst maintaining previous versions;
3. transform the current version of a document into a new issue of the
document, deleting all working versions back to the last issue (if any),
but maintaining previous issues and allocating a new issue number to
the current issue;
4. delete a document, including all copies of the document.
To enable these operations, for each document, a document history
record is maintained which lists each issue of the document, and all versions (if
any) since the last issue, together with their dates of creation.
Additionally, an attempt is made to ensure that only one person is
editing the document at a time, by warning subsequent users who attempt
simultaneously to access a document that the document is already being edited.
Overview of method of operation
Rather than accessing the document directly, according to the
embodiment, documents are accessed via the document manager program 112,
which reads the data in the document database 150 for the document for which
access is sought, and supplies necessary information to the terminal computer
10 via the server program 110.
Where the document is to be edited, the program 102 reads the
document from the document store 155, amends the document for editing, and
forwards the amended document via the server program 1 10 to the user terminal
browser program 100.
On receipt of an uploaded edited version of the document via the server
program 110, the document manager program 102 reconverts the document to
standard HTML for storage in the document store 155.
Detailed description of operation of the invention
As has been indicated above, the operation of the browser program 100
on the user terminal 10 is generally conventional, as is that of the file server
program 110.
The operation of the document management program 102 will now be
described in greater detail, with reference to Figure 2.
In step 200, the prospective author asks for access to a particular
document via the browser program 100 (step 200) by typing the uniform
resource locator (URL) address of the document into the URL entry field of the
browser program 100. The URL may be typically of the form:
httpd://(host computer)/(name of document management program
path)/(path)/(document file name). htm
Within the communication signals from the browser program 100 is an
identification of the users terminal computer 10 or, more generally, the user
(typically, the Internet address of the terminal computer 10). In step 205, the
server program 110 determines, in conventional fashion, whether the identified
user is permitted access to the document set identified by the URL. If not, then
in step 210, access is refused an the process terminates.
If the user is permitted access to the set, then in step 215 the server
program 110 causes the server computer 20 to transmit back a signal asking for
the user name and password of the user. On receipt of these, in step 220 the
server program 110 determines whether the user name and password are valid;
if not, access is refused (step 210) and the process terminates. If the user is
identified as a valid user, then (step 225) the document version manager
subprogram ( 135) is called.
The document version manager 135 causes the server computer 20 to
read the document database 150, which stores, for each document (or, more
accurately, for each set of documents, where a set comprises all the versions and
issues of the document) a list of all previous issues of the document and the
versions (sub issues) since the last issue, together with the dates on which each
was created.
The document version manager 135 generates, from these records, a list
of all the documents (document sets) held in the document store 155, together
with a hypertext link to an index page to each document (to be discussed
below), and a hypertext link labelled "create new document". This HTML page
is then transmitted to the user terminal 10 at which it is displayed by the
browser program 100.
Where the user selects the "create new document" hyperlink (by
positioning the cursor over the corresponding portion of the displayed page and
clicking, or pressing the "enter" key), the browser program 100 causes the user
terminal computer 10 to transmit back a signal specifying the URL of the
document manager program 102 and calling the document creator subprogram
(step 230 and 235). The actions performed by the document creator subprogram
115 will be discussed in greater detail hereafter.
The only other valid response which a user can make (if he wishes to
continue the interaction with the document management and editing system) is
to select (step 240) one of the documents from the document list contained in
the displayed page (e.g. by positioned in the cursor on the desired document
within the list and clicking).
The effect of so doing is to activate the hypertext link to that documents,
causing the browser program 100 to cause the terminal computer 10 to transmit
a URL consisting of:
(document URL)/index index.cgi
On receipt of this URL at the server computer 20, the server program
110 passes the URL to the document management software 102. In response
(step 245) the document version manager subprogram 135 accesses the
document database 150 for the document identified in the URL; reads the
historical information concerning the document; and returns to the server
program a document history page in HTML format, comprising a series of
hypertext links to issues of the document, together with links to versions of the
documents since the last issue, dates of creation and identifications of
authors/editors for each issue or version.
Also present in the HTML page are hyperlinks entitled:
"view an existing version";
"edit document";
"issue document";
"delete document"; and
"rollback to a previous version" .
This HTML document is transmitted by the server program 110 via the
network 105 to the terminal computer 10 where it is displayed by the browser
program 100.
The user may be content to view the contents for information purposes,
in which case no further action is taken by the system.
Alternatively, the user may select one of the buttons displayed which
correspond to the hyperlinks embedded in the HTML document index page. In
this case, the browser program 100 causes the terminal computer 10 to transmit
a corresponding URL to the server computer 20, which is passed to the
document management program 102 by the server program 110.
The "view an existing version" button simply specifies the URL of the
document itself in the document store 155. If (step 250) the user has signalled
an intention to view an existing version of the document, the document is
retrieved from the document store 155 and forwarded to the server 110. The
document is transmitted from the server 110 to the user terminal 10 where is it
caused to be displayed by the browser program 100 (step 255).
If (step 260), the user has selected the document edit button, the browser
program 100 causes the terminal computer 10 to transmit a URL via the Internet
105, which is recognised by the server 110 and passed to the document
management software 102, which calls the document editor subprogram 125
(step 265) to be discussed in greater detail hereafter.
If (step 270), the user has selected the document issuer button, the
browser program 100 causes the terminal computer 10 to transmit a URL via
the Internet 105, which is recognised by the server 110 and passed to the
document management software 102, which calls the document issuer
subprogram 120 (step 275) to be discussed in greater detail hereafter.
If (step 280), the user has selected the document delete button, the
browser program 100 causes the terminal computer 10 to transmit a URL via
the Internet 105, which is recognised by the server 110 and passed to the
document management software 102, which calls the document delete
subprogram 130 (step 285) to be discussed in greater detail hereafter.
Document Creation (115 Figure lb: step 235. Figure 2)
Referring to Figure 3, the steps comprised by the document creator
subprogram 115 will now be discussed in greater detail.
In a step 300, the document creator subprogram creates a hypertext
document including a form which contains a field to allow the insertion of the
document title, a field to allow insertion of a filename, and a field to allow the
selection of a predetermined document template. General details of the creation
of HTML interactive forms are well known.
It is specified by an HTML command starting the form with <FORM>
and closing the form with </FORM>.
The title fields may for example be specified by HTML text such as:
<INPUT TYPE="text" NAME=" document title" SIZE=40 MAX
LENGTHS 00>
to set a maximum document title length of 100 characters visible within
a screen window of 40 characters.
The document filename field may likewise follow the same format (i.e.
the normal HTML format for input of a line of text) but with the substitution of
NAME=" document file name" for the string NAME="document title" in
the string above.
The document template field may comprise a text area allowing the user
to input a document template directly in HTML, in which case it may be
specified by an HTML command:
<IΕXTAREA NAME="TEMPLATE" ROWS=8 COLS=80>
</TEXTAREA> (which, in this example, creates a field 8 lines high by 80
characters wide).
Alternatively, the template may be provided as a selection from a list of
default or prototype templates, for example using the SELECT mechanism
provided by HTML; in this case, the list of templates could be represented as
the following HTML commands:
<SELECT NAME="list 1" SIZE=5>
<OPTION SELECTED> OPTION 1
<OPTION> OPTION 2
</SELECT>
Also provided is a button to allow the user to cause the completed
information to be transmitted to the server computer (e.g. using the <SUBMIT>
element of the HTML language).
Once the user has filled out the file name and document name and
selected a template (or allowed the default template to remain) and has selected
the button to submit or upload the form (step 305), the browser program 100
causes the terminal computer 10 to send the contents of the form back to the
server computer 20 at which the server program 110 recognises the contents of
the form as such (e.g. by the presence of a "cgi" element within the URL
reUirning the form) and passes the contents of the form to the document
management program, which returns them to the document creator.
The document creator subprogram 115 reviews the submitted document
file name.
Firstly, the document creator views the file name to see whether it
includes portions which cannot validly existing within an HTML document
path.
If (step 310) invalid characters or strings exist within the file name, then
(step 315) the document creator subprogram 115 supplies a failure report
message to the server program 110 for transmission to the terminal computer
10.
If the name is of itself valid, then (step 320) the document creator
program 115 accesses the document database 150 to determine whether any
existing documents already have the same file name; if so, a failure message is
likewise sent (step 315).
If the file name is acceptable, then (step 325) the document creator
subprogram 115 causes the addition of a new record to the document database
store 150, and creates the first version of the new document by editing the
document title into the title command within the header element of the new
document.
The new document is then written into the document store 155 (step
330), and the document creator subprogram 115 passes a success message to the
server program 110 for transmission to the terminal computer 20.
Thus, at the conclusion of the document creator subprogram, the
document store includes a new document, comprising a template setting forth
the basic document structure elements (e.g. header and sections) and including
the new document title, and corresponding records exist in the document
database 150. The document URL includes the URL specifying the document
management software 102 as well as the document file name.
Document editing (125 Figure lb: step 265 Figure 2
Referring to Figure 4, the document editing process will now be
described in greater detail.
The document editor subprogram accesses the document store 155 to
retrieve the document corresponding to the index page from which the editing
was specified. Next (step 400) the document editor subprogram 125 calls the
document parser subprogram 140, which reviews the document and locates all
hypertext labels within the document (corresponding to section headings
therein).
Next (step 402) the document editor program 125 edits the document,
by inserting an additional hypertext link adjacent each such section heading
label. The hypertext link specifies an inline image which, when reproduced,
displays an icon which may be selected by a user to edit the text of the following section.
One further such editing icon is inserted at the beginning of the
document.
The document thus edited is sent (step 402) to the server program 110
for transmission to the terminal computer 20, at which it is displayed by the
browser program 100.
As well as the editing icon inline image, each document editing
command inserted specifies the position within the document (e.g. the label)
where it is located.
On selection by the user of one of the editing icons, the browser 100
causes the terminal computer 10 to transmit the URL including the specification
of the point in the document of the editing icon, which is passed by the server
program 110 at the host computer 20 to the document management software
102, and then to the document editor subprogram 125.
If (step 412) the icon selected is that at the top of the document, this
corresponds to a desire by the user to edit the overall document structure or title.
On receipt of a URL indicating that the document title or structure is to
be edited (step 412), the document editor subprogram 125 invokes the lock
manager program 145 in a process generally denoted 410 in Figure 4.
Firstly, (step 406) it is determined whether the lock manager
subprogram 145 records that the document is already being edited (and is
therefore deemed locked), in step 406.
If not, the lock manager subprogram 145 sets a flag in the document
database record for the document to indicate that the document is currently
locked by the user, in step 416.
If a lock flag is already set (indicating that the document is currently
being edited), the lock manager 145 generates a message including details of the
other user (including user name, Internet address and date that the document
was locked) and passes this to the server program 1 10 for transmission to the
terminal computer 20, which is displayed by the browser program 100.
The message comprises an HTML document including a displayed
"override" button which, if selected by the user, causes the transmission of a
URL which is passed by the server program 110 to the lock manager 145.
If no such message is received (step 408) the editor process terminates.
If the user does wish to override the lock (step 408), the lock manager sets a
further flag indicating that the document is locked by the current user (step 416).
Thus, the action of the lock manager 145 in locking a document is
advisory, leaving it open to the user whether to edit a document which is already
being edited by another.
After locking the document (step 416), the document editor subprogram
125 creates a new hypertext document including an editable form portion, and
copies into the editable form (e.g. in a <TEXTAREA>) default text consisting
of the current title, followed by a table of contents comprising a list of the
section headings within the document (i.e. the text specified at the section
heading labels within the document) followed, in each case, by the first few
words of the body of the text underneath. Also included is a button to upload or
submit the edited form back to the server computer 20, as discussed above.
The editable form is sent (step 418) to the computer 10, and displayed
by the browser program 100, and the contents may be edited (step 420) by the
user, for example to change the wording of the title or of one of the section
headings.
The user may also interchange the order of the section headings, delete a
section heading, or add a new section heading within the list.
When the upload button within the form is selected by the user (step
422) the browser program 100 cause the edited form to be returned via the
Internet 105 to the server computer 20 (step 424), and the server program 110
forwards the edited form to the document editor subprogram 125.
On receipt, the document editor subprogram 125 causes the version
manager subprogram 135 to create a new version number for the document,
having a version number one higher than the last stored version number. A
corresponding record is created within the document database 150.
Next, the document editor reviews the received form and compares it
with the transmitted form; retrieves once more the previous version of the
document from the document store 155; and edits the previous version to
produce the text of the new version, as follows:
If a section heading has been deleted in the form, the corresponding
section heading and section text below are deleted in the HTML document.
If a section heading has been moved, the corresponding section heading
and text in the HTML document are moved so that the structure of the edited
HTML document reflects the new order of headings in the form.
If the title has been edited or one of the section headings has been
edited, the new text of the title or section replaces the old text.
If a section heading has been inserted, a corresponding new section
heading is created before the following section heading.
If the opening words of text from under one section heading have been
moved or copied to lie under another, then the whole text under that section
heading within the actual hypertext document is copied to lie under the
corresponding section heading.
Thus, radical changes to the structure of the document can be effected
by the user simply by manipulating the table of contents.
The edited document is then stored Vvithin the document store 155 as the
current version.
Finally (step 428), the document is unlocked.
If an editing icon within the body of text of the document has been
selected (step 414), the document editor 125 again calls the lock manager 145 to
follow the steps denoted as step 410, in which steps 430, 432 and 434
correspond to steps 406, 408 and 416 fully described above.
After execution of the document lock manager, in step 436, the
document editor 125 (causes the version manager 135 to retrieve the latest
version of the document from the document store 155, and locates the label in
the body of the document corresponding to the editing icon selected by the user.
The document editor then modifies this document, by placing form start
and end commands (<FORM>;</FORM>) around the section, and specifying
the section as an editable text area (<TEXTAREA>) within which the existing
text becomes default text. As discussed above, an update, upload or submit
button command is also included within the form.
The amended document, including the editable form section, is then
passed from the document management software 102 to the server program 110
for transmission to the terminal computer 10, at which the browser program 100
displays the document. However, on reaching the editable section, the browser
does not act upon the embedded HTML commands, but instead simply displays
them as ASCII characters within the editable text area.
The user may then (step 438) edit the text, either to change the text
portions, or to change, add or delete the HTML commands embedded within the
text.
On completion of editing, the user uploads the form (steps 440 and 442
corresponding to steps 422 and 424 discussed above), and the document editor
and version manager create a new version of the document in step 444 as
discussed above in relation to step 426.
Then, also shown within step 444, the document editor 125 retrieves the
last version of the document from the document store 155, deletes the section
which has just been edited, and substitutes the contents of the editable form for
the deleted section, the result being stored as the latest version of the document
in the document store 155. Finally, in step 446, the document is unlocked as in
step 428 above.
Thus, in this embodiment, the terminal computer only returns the form
containing the section of the document which has been edited, which typically
represents only a small part of a lengthy document, thereby greatly reducing
network traffic.
The means of editing the editable form may, of course, include the use
of HTML editors, HTML filters or HTML assistants at the terminal computer
10.
Document issuing (120 Figure lb: step 275 Figure 2)
Referring to Figure 5, the operation of the document issuer subprogram
120 will now be disclosed in greater detail.
When, in step 270 of Figure 2, a user indicates a desire to stabilise the
latest version of a document as an issue, on receipt of the corresponding
message the document issuer subprogram 120 interrogates the document
version manager subprogram 135 to determine whether the current version of a
document is also an issue (i.e. whether no edits have been performed since the
last issue).
If so, then in step 510, the document issuer generates a message for
transmission back to the user as a hypertext document, which is forwarded to
the server program 110 for transmission back to the terminal computer 10,
where it is displayed by the web browser 100. The message indicates that the
current version has already been issued and that no further action will be taken.
The document issuer process then terminates.
If not (step 505) the document version manager reports that the current
version of the document has not been issued yet, the document issuer program
125 requests details of all versions of the document since the last issue, which
are supplied from the document database 150, and deletes the records of all such
documents in the document database 150, and the documents themselves in the
document store 155.
It then (step 515) causes the document version manager to renumber the
record in the document database to record that the current (i.e. latest) version is
to be renumbered as the new issue.
For example, if the current version is the eleventh amended version
since the fourth issue, it will previously have been recorded in the document
database as version 4.11 (the first numeral indicating the last issue number and
the second indicating the version number) form. It will now be renumbered as
issue 5 (version 5.0).
Additionally, if the document contains a line beginning <!~IssueStatus~
>, the document version manager 135 appends the current issue or version
number and the date, and user name of the user who accessed the document.
This function may also be performed after editing the document when the
version number is changed.
Finally (step 520), the document issuer subprogram 120 supplies to the
server program 110 a message for transmission back to the terminal computer
10 indicating that the document has now been issued and giving the issue
number, for display via the browser program 100.
Thus, after execution of the document issuer, no working versions of the
document exist, and the most recent working version has been transformed into
the current issue.
Document Deletion (130 Figure lb: Step 285 Figure 2
Referring to Figure 6, the operation of the document deleter subprogram
130 will now be disclosed in greater detail.
Initially, the document lock manager 145 is invoked in steps 600 and
630 (corresponding to steps 406 and 408 described above).
Instead of performing step 416 described above, if the document is not
locked or if the user wishes to override the lock, then (step 605) the document
deleter 130 passes a message for transmission to the terminal computer 10
warning that all versions of the document will be deleted. The message
document includes a "proceed" hyperlink and a "cancel" hyperlink. When the
user selects one of the hyperlinks (e.g. by clicking a mouse over the
corresponding button display) the browser program 100 sends back a URL
which is passed to the document deleter 130 from the server program 110 for
action.
If (step 610) the selected link is determined as the "cancel" hyperlink,
the deletion process terminates.
Otherwise (step 610), the document deleter passes the server program
110 a message document listing the versions which are to be deleted (step 615),
then instructs the version manager 620 to delete all versions and all issues of the
document from the document store 155, and all records of the document and
versions from the document database 150 (step 625).
Thus, after operation of the deleter, no trace of the document remains.
Document version manager (135 Figure lb)
The document version manager functions as described above. In
general, it maintains three index page documents which may be accessed by
terminal computers; the document list for editing, which (as described above) is
available to only those with authoring access rights; a current issue index page
listing the current (i.e. highest numbered) issues of all documents in the
document store 155 with hypertext links to those documents; and a current
version index page, listing current (i.e. highest numbered) versions of those
documents (with hypertext links to each). These index pages also list the dates
of creation, and authors, of the corresponding issues/versions, providing an
"audit trail" documenting the history of the document.
Document version rollback (147 Figure lb: step 295 Figure 2)
A user may decide that an edited version of a document should be
cancelled, and may wish to start working from the previous draft to derive a
substitute edited version. This reversion is referred to a "rollback" to the
previous edited version; this will be understood to refer to the operation of
making the previous version the current version and deleting the most recent
edited version.
Referring to Figure 7, the operation of the document rollback
subprogram 147 will now be disclosed in greater detail.
Initially, the document lock manager subprogram 145 is invoked (steps
700 and 705, corresponding to steps 406 and 408 above) to determine whether
the document is locked and, if so, whether the user wishes to override the lock.
If the document is not locked, or if the user wishes to override the lock,
then (step 710) the document version manager is asked for the user name of the
person who created the previous version of the document. Each user is only
permitted to cancel edited versions of a document if he himself was the author
of the edited version.
Thus, if in step 715, it is determined that the two user names are
different, then (step 720) the subprogram sends a hypertext document back to
the user indicating that the rollback request has been rejected, which is
forwarded to the server program 110 for transmission back to the terminal
computer 10, where is it displayed by the web browser 100.
The message indicates that the user cannot undo any changes made by
another user and that no further action will be taken. The document rollback
process then terminates.
If the current user name is the same as the user name of the user who
created the previous version of the document, then (step 725) the document
version manager subprogram 135 is invoked to determine whether the latest
version of the document is also the latest issue of the document (in other words,
as in the document issuer subprogram, to deteπnine whether the document has
not been edited since the most recent issue).
If so, then (step 730) the document rollback subprogram generates a
message for transmission back to the user as in step 720 above, the message
indicating that the current version has already been issued and that no further
action will be taken. The subprogram then terminates.
In the event that the current version is not an issue, then (step 735) the
subprogram 147 generates a message for transmission back to the user as a
hypertext document (as described above in relation to step 720), the message
warning the user that the current version of the document will be replaced by the
previous version.
The message document includes two hyperlink button icons; one
labelled "proceed" and one labelled "cancel". When the user selects one of the
hyperlinks, the browser program 100 sends back a corresponding URL which is
passed to the document rollback subprogram 147 from the server program 110.
If (step 740) the selected hypertext link was the "cancel" hypertext link,
then the process terminates. If not (step 745), the subprogram passes to the
server program 110 a message which indicates that the previous version of the
document is no to become the current version. This message is transmitted back
to the terminal computer 10 for display by the browser program. The document
version manager subprogram 135 is then invoked to remove (i.e. delete) the
latest version of the document, and to modify the document database 150 to
record that the previous version of the document is once more the current
version of the document (step 750). The process then terminates.
Thus, after execution of the process of Figure 7, the most recent edited
version of the document is deleted and the previous version will now form the
basis for any subsequent edited versions.
Other embodiments, variations and modifications
The above described embodiment may, of course, be varied in many
respects which will be apparent to the skilled reader.
For example, whilst the invention has been described for use over the
Internet, aspects are applicable to other types of computer network. Equally,
whilst the invention has been described in relation to hypertext documents, its
use for other documents with embedded control characters, or documents in
general, or files of data in general (e.g. image or sound files) is not excluded.
Rather than retransmitting the entire document including the section to
be edited to the terminal computer, as described above, it would be possible
merely to send the section to be edited.
Rather than converting portions of a document into an editable form
when they are to be edited, it would be possible to store the document in both its
original form and with each section already converted. However, this would at
least double the storage capacity required, and could increase the possibility of
inconsistencies.
These, together with any and all other such variants, are intended to be
comprehended within the scope of the present invention.