Embodiments of the present invention will be described in detail based on the following figures, wherein:
First, a system for managing document use using duplicate shortcuts will be described.
In this system, the original file of a digital document is managed by the document management server 10 and security of the digital document is ensured by not storing the file of the digital document in the client terminal 20. Instead of the file of the digital document itself, a file called a duplicate shortcut (referred to hereinafter as duplicate SC) that includes information for accessing the digital document is kept in the client terminal 20. The duplicate SC may include identification information for management called a duplicate ID, access information, such as a host name of the document management server 10 or an URL (Uniform Resource Locator) for the document read request, and an attribute for the duplicate SC. One example of information included in a duplicate SC: “id=1234567, host=foo.fujixerox.co.jp, createDate=2005/05/24 11:12:34”
In this example, “id=1234567” represents the duplicate ID, “host=foo.fujixerox.co.jp” represents the host name of the document management server 10, and “createDate=2005/05/24 11:12:34” represents the creation date and time, which is one attribute of the duplicate SC. To prevent data leakage, the duplicate shortcut does not include the actual digital document. However, so that the user can identify the digital document for the duplicate SC, part of the digital document, such as the information from only the first page, or a thumbnail image from each page of the digital document may be included in the duplicate SC as a low-quality sample of the digital document.
The access information that is included in the duplicate SC is used when the client terminal 20, which uses the duplicate SC, accesses the document management server 10 that manages the original corresponding to the duplicate SC. However, if a server is provided on the network (and this server address is included in the duplicate SC or known by a viewer 22) for resolving the access information for the document management server 10 that manages the corresponding original from the duplicate ID, the access information for the document management server 10 need not be included in the duplicate SC.
As shown in
In this system, every time a user performs an operation with respect to an original digital document on the document management server 10 by using a duplicate SC on the client terminal 20, the document management server 10 issues a duplicate ID for updating and updates the duplicate ID within the duplicate SC on the client terminal 20 with the new duplicate ID. In this manner, every time an operation is performed on a digital document using a duplicate SC in this system, the duplicate ID within the duplicate SC is renewed. For example, if a user X requests a duplicate file of a digital document from the document management server 10 by using a duplicate SC and then acquires and reads the duplicate file, the value of the duplicate ID within the duplicate SC located in the client terminal 20 of the user X changes before and after the read operation. Therefore, if an instance is considered where the user X attaches a copy of the duplicate SC to an e-mail and sends the e-mail to another user Y, the duplicate ID in the duplicate SC that the user Y receives will differ depending on whether it was sent before or after the read operation. If a user requests an operation on a digital document using a duplicate SC, the duplicate ID included in the duplicate SC is sent from the client terminal 20 to the document management server 10 so that the document management server 10 can recognize from the received duplicate ID that the duplicate SC, which was the basis of the request, corresponds to a step of a certain operation (such as before or after reading by the user X). Furthermore, if the duplicate ID is associated with identification information for the original digital document (referred to as the document ID) and the user ID of the user (or user ID where the duplicate ID was issued) who performed the operation causing the issuance of the duplicate ID, and stored at the document management server 10, the user operation and the document subjected to the operation can be determined from the duplicate ID so that the distribution of digital documents can be tracked in detail.
The duplicate ID represents unique identification information within the system and corresponds to each operation that a user performs with respect to a digital document. The duplicate ID may be a serial number that is incremented with each operation. However, from the viewpoint of hindering attacks based on guessing by third parties, a value generated by using a generation rule that ensures high uniqueness and is difficult to guess may be used, such as a sufficiently long random number. Furthermore, a hash value (having a sufficiently large number of digits) of attribute information that changes with the issuance of each duplicate ID, such as the generated date and time of the duplicate ID, or a hash value of a combination of fixed attribute information, such as the identification information of an original corresponding to the duplicate ID, with changing attribute information, can also be used for the duplicate ID.
As shown in
The original document database 11 stores and manages digital documents as originals that have been uploaded from the client terminal 20. Within the framework of this system, only a digital document stored in the original document database 11 is handled as an original. Within this framework, even if a copy of the digital document exists on the network, it can be handled as being unrelated to the original. In particular, if the viewer 22 in the client terminal 20 does not store a duplicate document file in the file system as described hereinabove, the possibility of copies of the original being circulated on the network can be greatly reduced.
The original document registration unit 13 registers the digital document, which has been uploaded from the client terminal 20 and is to be registered as an original, into the original document database 11. At this time, the original document registration unit 13 assigns unique identification information referred to as a “document ID” to the original digital document file to be registered. The document ID may be a random number or a hash value.
In response to an operation request from a user, the duplicate SC provider unit 15 issues a duplicate SC for a digital document within the original document database 11 to the user. In response to an operation request from the user, the duplicate document provider unit 17 creates and provides to the user a duplicate file of the requested digital document.
If the document management server 10 executes a process in response to an operation request from the user via the client terminal 20, the log management unit 19 records information relating to the operation as an event log. As shown in
The document management server 10 may be organized using a web server and a web application. In this case, the document management server 10 provides a web page as a user interface screen to the client terminal 20.
Next, to clarify the mechanism of the system for managing document use, an operation of the system will be described with reference to
First, a user P01 issues a registration request of digital document “O” 100 to the document management server 10 from a client terminal 20-P01. The digital document 100 may be within the local file system of the client terminal 20-P01 or in a file server or a document server on the network. This registration request may be performed via a user interface provided by the viewer 22. The user interface provides a directory screen showing a tree directory of a network file system or a file system, and the selection of a document to be registered is received on this directory screen from the user P01. Furthermore, the user interface may provide a search screen through which a user enters search conditions. The digital documents matching these conditions are searched from a local file system or a network file server and the search results are presented to the user from which the user may select a document to be registered. A registration request issued by the client terminal 20 includes a user ID that identifies the user P01 and the digital document 100 (body data of the document 100 or link information for the body data) to be the target. The user ID that is presented by the user P01 when logging in to the system or the client terminal 20-P01 may be used for the user ID included in the registration request.
At the document management server 10 that receives the registration request, the original document registration unit 13 acquires the body data of the digital document 100 included in the request (or acquires the body data using a link if the link to the body data is included in the request) and attaches a unique document ID “D01” to the digital document. Then, the body data of the digital document 100 is associated with the document ID “D01” and registered into the original document database 11. If the digital document 100 that is sent from the client terminal 20 is not in a document format of the system (such as PDF, for example), the document management server 10 may register the digital document 100 into the original document database 11 after converting into the document format of the system.
Next, the duplicate SC provider unit 15 generates a unique duplicate ID “a”, generates a duplicate SC 102 that includes the duplicate ID “a” and the host name of the document management server 10, and transmits the duplicate SC 102 to the client terminal 20-P01, such as in a response to the registration request. Furthermore, at the document management server 10, the log management unit 19 records the second line of the table shown in
The client terminal 20-P01, which receives the duplicate SC 102 together with the response for registration success, registers the duplicate SC 102 into a file system 24-P01. At this time, the original digital document 100 within the file system 24-P01 may be deleted and a file for the duplicate SC 102 may be stored instead. If this is performed, the original body data of the digital document 100 is stored only in the document management server 10 so it becomes easy to ensure that it is the actual original.
If the user issues a request to the document management server 10 for the registration of the digital document 100 located in a file server on the network, the document management server 10 may send the duplicate SC 102 to the file server. The file server that stores the digital document 100 and receives this request may delete the digital document 100 and instead store the duplicate SC 102. In this case, the user P01 can view the duplicate SC 102 located on the file server on a directory screen of the network file system or the like.
It is assumed here that the user P01 transmits the duplicate SC 102 for the digital document “O” 100 to a user P03, such as by an attachment to an e-mail. Then, the duplicate SC 102 is stored, as a shortcut to the digital document “O”, into a file system 24-P03 of a client terminal 20-P03 of the user P03. To read the digital document “O”, the user P03 opens the duplicate SC 102 at the viewer 22 and enters a read command. The viewer 22 obtains the duplicate ID “a” and the host name of the document management server 10 from the duplicate SC 102, accesses the document management server 10 using the host name, and transmits a read request 104 accompanying the duplicate ID “a”. This read request 104 includes the user ID of the user P03. In subsequent steps also, when the user transmits a request or other data to the document management server 10, the document management server 10 can determine which user is accessing since either the ID of the user is included in the request or the user has logged into the document management server 10 prior to the transmission.
At the document management server 10 that received the read request 104, the duplicate document provider unit 17 starts. The duplicate document provider unit 17 obtains a record having the document ID “a” accompanying the read request 104 as the “provided duplicate ID”, for example, from the log management unit 19, obtains the body data of the digital document “O” indicated by the document ID “D01” in the record from the original document database 11, and creates a copy of the document. Then, the duplicate document provider unit 17 creates a duplicate ID “b” for updating and sets it in the duplicate ID attribute of the file of the copy to create a duplicate file 106. The duplicate file 106 includes the copy of the original document and the duplicate ID “b”. The duplicate file 106 is returned to the client terminal 20-P03 as a response to the read request 104.
Furthermore, the log management unit 19 creates and records a log record, such as the third line in the table of
The viewer 22 of the client terminal 20-P03 opens and displays the body data of the document in the received duplicate file 106. Since the duplicate file 106 is attached with a attribute indicating “save disabled”, the viewer 22 does not save the duplicate file 106 into the file system 24-P03. For example, a user interface screen in which a selection to save the duplicate file 106 is not available is provided on the viewer 22. Furthermore, the viewer 22 rewrites the duplicate ID “a” in the duplicate SC 102 stored in the file system 24-P03 to the updated duplicate ID “b” which is included in the duplicate file 106 so that the shortcut to the digital document “O” is renewed. As a result, the duplicate SC 102 in the file system 24-P03 is rewritten into a duplicate SC 108 that includes the duplicate ID “b”.
When considering a case where the user P03 sends the duplicate SC for the digital document “O” to another user, the duplicate SC 102 including the duplicate ID “a” is sent if the sending is prior to the reading of the duplicate file 106 by the user P03. However, if the sending is after the reading of the duplicate by the user P03, the duplicate SC 108 including the duplicate ID “b” is sent.
Next, a case will be considered where a user P04 acquires a digital document, which is managed by the document management server 10. In this case, the user P04 issues a request to the document management server 10 from a client terminal 20-P04 for a directory screen or search screen. A directory screen or search screen for selecting a digital document that is registered within the original document database 11 is generated by the document management server 10 and returned to the client terminal 20-P04. The user P04 finds the desired digital document “O” via the screens. When the user issues a command to acquire the digital document, the client terminal 20 sends an acquisition request 112 accompanying the identification information (such as document ID “D01”) of the digital document “O” to the document management server 10. This is received at the document management server 10 where the duplicate SC provider unit 15 generates a new duplicate ID “c”, generates a duplicate SC 114 including the new duplicate ID “c”, and returns the duplicate SC 114 to the client terminal 20-P04. Then, the log management unit 19 creates a record (fourth line in the table shown in
The client terminal 20-P04 stores the received duplicate SC 114 into a file system 24-P04. When a user selects the duplicate SC 114 and issues a read command, the viewer 22 issues a read request 116 accompanying the duplicate ID “c”. In response, the document management server 10 creates a copy of the original corresponding to the duplicate ID “c”, creates a duplicate ID “d” for updating and sets it to the file attribute of the copy, and creates a duplicate file 118 including the copy and the duplicate ID “d”, and returns it to the client terminal 20-P04. Furthermore, the log management unit 19 records a record, such as the fifth line in the table shown in
The viewer 22 of the client terminal 20-P04 opens and displays the duplicate file 118 and changes the duplicate ID of the duplicate SC 114 within the file system 24-P04 to the duplicate ID “d” for updating which is included in the duplicate file 118. As a result, the shortcut corresponding to the digital document “O” held by the client terminal 20-P04 becomes a duplicate SC 120.
After the user P04 reads the duplicate of the digital document “O”, the duplicate SC 120 is transmitted to a user P08. When the user P08 uses the duplicate SC 120 to issue a read request 122, the document management server 10 provides a duplicate file 124 including a duplicate ID “e” for updating to the client terminal 20-P08 and records a log record shown as the sixth line in the table of
The destination user ID for the duplicate ID in the operational event was recorded in the log data illustrated in
The configuration and processing of the system for managing document use to be the basis for the embodiment were detailed hereinabove. A summary of the features of this system:
An original of the digital document is registered in the document management server.
A duplicate SC is provided to the user instead of body data of the digital document. The duplicate SC includes a duplicate ID. When an operation relating to the original is performed on the document management server 10 using the duplicate SC, it is necessary to identify the document management server 10 that manages the original. Thus, the duplicate SC may include information for identifying the document management server 10 that manages the corresponding original.
The document management server manages a correspondence relationship between the duplicate ID of the provided duplicate SC and the corresponding original. (In the aforementioned example, the correspondence relationship between the duplicate ID and the original was managed in a form by being included in the log record of the log management unit 19. The correspondence relationship data may have any form provided the correspondence between both is clear.)
When performing an operation with respect to a document on the document management server, the duplicate ID of the duplicate SC held by the terminal performing the operation is sent to the server.
The document management server identifies the original corresponding to the duplicate ID received from the terminal on the basis of the correspondence relationship between the duplicate ID and the original and performs the requested operation relating to the original.
When an operation relating to the original is performed, the document management server creates a new duplicate ID and sends this duplicate ID to the client terminal that requested the operation. The client terminal that receives this updates the duplicate ID of the duplicate SC used in the request to the received new duplicate ID.
The document management server manages the duplicate ID derivation relationship, which is a correspondence relationship between the duplicate ID that is included in the request from the client terminal and the new duplicate ID that is generated by performing an operation relating to the request.
When a request for an operation which requires body data of the digital document, such as reading of the digital document, is issued from the client terminal, the document management server provides duplicate document data which is a copy of the original to the terminal. The duplicate document data exists only in a region of memory managed by the viewer that operates on the client terminal and is set so that it cannot be stored on disks.
In the aforementioned example, the log record illustrated in
Furthermore, such operations as document registration, acquisition of the duplicate SC, and document reading were illustrated in the aforementioned example of the system for managing document use. However, besides these operations, all system operations among those relating to the original document can be applied to the aforementioned characteristic processing.
In the systems shown hereinabove and hereinafter, the user ID or other information to be sent to the document management server 10 from the client terminal 20 upon a read request or other request may be placed in an HTTP request header and transmitted, for example, or may be included in an HTTP request written in XML and transmitted. When transmitting a document from the client terminal 20 to the document management server 10, the transmitted information may be a part of the metadata of the document.
Hereinafter, a system for managing document distribution within a hierarchical organization will be described using the framework of the duplicate SC. In the system described hereinabove, documents were only read. However, in the system hereinafter, consideration is also given to instances where updates are added to documents and/or additional data, such as document attachment, is appended to documents.
In this system, a user can set a base node in a node (duplicate ID) of a derivation relationship tree for a digital document and associate and store to the base node a digital document or related data to be shared within a division. Then, the members of the division read digital documents, which have been associated to and stored to the base node, and related data. And any update or data for addition to the digital documents performed by division members is associated to the base node and stored. In this manner, each member belonging to the division can access the digital documents for sharing in their division and the data for updates or additions to the digital documents.
An overall configuration of a system for implementing this type of control is shown in
The internal configuration of the document management server 10a in the system of
Changes added to a document can be generally divided into “updates” that change the content of the document body or “additions” that add document attachments or other data to the document body. An example will first be described for the case for “updates”.
Methods for managing updates of the document body include holding the complete data of the document after each update (hereinafter referred to as “overall management method”) and holding only the difference after the update (hereinafter referred to as “differential management method”). In the differential management method, the differences in the order the updates were performed for the original document are updated to yield the newest document. The overall management method will be described hereinafter as a typical example.
In the overall management method, the document registration unit 13a executes the process shown in
The document registration unit 13a assigns a unique document ID to the document received from the user accompanying the document registration request, assigns a predetermined version number indicating that the document is the original, and associates the document with the document ID and the version number and registers (S1) the document into the document database 11a. Furthermore, the document registration unit 13a acquires (S2) a division attribute of the requesting user. The division attribute of the user may be transmitted by the user to the document management server 10a accompanying the document registration request or may be acquired by the document management server 10a from the organization information management database 40 by using the user information that was received accompanying the document registration request. Furthermore, the document registration unit 13a generates a unique duplicate ID, generates a duplicate SC that includes this duplicate ID, and transmits the duplicate SC to the requesting user (S3). Then, a log record is created and derivation relationship information is registered (S4). In addition to the items shown in
Next, a procedure of the duplicate provider unit 17a will be described with reference to
The read request is performed by using the duplicate SC as described hereinabove. The duplicate ID that includes the duplicate SC is sent accompanying the read request from the client terminal 20 to the document management server 10a. The duplicate provider unit 17a receiving the duplicate ID traces the derivation relationship tree one node at a time (log record) to the root from the duplicate ID, checks whether or not the node has been set with a version attribute value (version number), and repeats the trace (S11) until a node that has been set with a version attribute value is reached. This system records the value of the version number to be shared at the division into the base node of the division in the hierarchy structure of the organization. The value of the version is not recorded at the other nodes besides the base node. Therefore, in step S11, to identify the version that is to be provided to the user who issued the read request, the base node is searched. Then, the document corresponding to the version attribute value (version number) at the node found from the search is acquired (S12) from the document database 11a. Here, if the version number that is assigned by the document management server 10a is unique only in a version group derived from the same document, the document database 11a is searched in step S12 for document data corresponding to a combination of version number and document ID of the original. Then, the duplicate provider unit 17a generates a new duplicate ID, generates a duplicate file that includes this duplicate ID and the document that was acquired in step S12, and provides (S13) the duplicate file to the user who issued the read request. Next, a log record including information on the provided duplicate ID is generated and recorded (S14) into the log management unit 19. Values of the division attribute and version attribute are not recorded into the log record that is generated here.
Furthermore, the duplicate provider unit 17a acquires (S15) the value of the division attribute of the user who issued the read request as in step S1 and judges (Sl6) whether or not the division attribute value found in step S11 matches the division attribute value of the user acquired in step S15. If they match, this signifies the node found in step S11 is the base node of the division to which the user belongs. In this case, nothing further is performed and the process terminates.
On the other hand, if it is judged in step S16 that the division attribute value of the node and the division attribute value of the user do not match, this signifies the node is the base node of a division one level higher than the division to which the user belongs. In this case, the node (i.e. log record) that was generated in respond to the read request is the first node in the division to which the user belongs. Therefore, the duplicate provider unit 17a records (S17) to the node (log record) the value of the division attribute of the user and the version attribute value acquired in step S12. As a result, that node is set as the base node of that division. Then, the duplicate provider unit 17a terminates the process.
Next, in the overall management method, a procedure of the document registration unit 13a will be described with reference to
The user can edit the content of a document by opening the duplicate file, which was acquired from the read request, on the viewer 22. When the viewer 22, which has a user interface for accepting document update commands, receives a document update command from the user, an update request accompanied with the edited document (referred to as the updated document) is sent to the document management server 10a. The document management server 10a receiving the update request assigns a new version number to the updated document and registers (S21) the updated document into the document database 11a. Furthermore, the document registration unit 13a acquires (S22) the division attribute of the requesting user in the same manner as the aforementioned step S2, generates a unique duplicate ID, and transmits (S23) the duplicate SC including the duplicate ID to the requesting user. Then, a log record is created and derivation relationship information is registered (S24). As described hereinabove, the value of the attribute information of the requesting user causing the event and the version number of the document stored in the document database 11a were registered into the log record for the document registration request. In the log record for the update request, however, the division attribute value and the version number are not registered. Instead, the document registration unit 13a traces the derivation relationship tree starting from the duplicate ID accompanying the update request, searches (S25) for a node having the same division attribute value as that of the user, namely, the base node of the division to which the user belongs, and changes (S26) the value of the version attribute of the base node to the version number that was assigned to the updated document in step S21.
The process flow in this system will be described using a specific example. As shown in
The example of
It is assumed user 1 has respectively provided, such as via electronic mail or another transmission medium, the duplicate SC “ID1” to a user 2 belonging to office A and a user 3 belonging to office B. When, for example, user 2 issues a read request to the document management server 10a using the duplicate SC “ID1”, the duplicate provider unit 17a of the document management server 10a executes the process shown in
Here, user 2 in office A uses a client program, such as a viewer or a document editor, to edit the document data within the duplicate file acquired in response to the read request and sends an update request accompanied with the edited document data result to the document management server 10a. In this case, as shown in
Next, when the same user 2 issues a read request using the duplicate SC “ID111”, the document management server 10a traces the derivation relationship tree 200b from “ID111” to the root and finds node 204 as the first node that has been set a the version attribute value. Then, the document database 11a is searched for document data corresponding to the version attribute value “V111” of the node 204 in the version group for document ID “D01” and a duplicate file including a newly generated duplicate ID “ID1111” and its document data is provided to user 2. The log data of the log management unit 19 at this time is shown in
Thereafter, user 3 in office B updates the duplicate file “ID12” acquired in response to the read request and registers the updated result into the document management server 10a and further reads the updated result. In this case, the derivation relationship tree is shown as a tree 200c in
Thereafter, user 2 sends, such as via electronic mail, the duplicate SC “ID1111” to a user 10 in the same office A and user 10 reads and updates using the duplicate SC. In this case, in response to the read request, the document management server 10a traces the derivation relationship tree 200c and provides to user 10 a duplicate file including document data of version V111 corresponding to base A node 204 of office A and a new duplicate ID “ID11111”. User 10 edits the duplicate file and issues an update request accompanying the edited result. Then, the document management server 10a assigns a new version number “V111111” to the edited result, registers the result into the document DB 11a, and updates the version attribute value of the base node 204 of office A to version number “V111111”. The derivation relationship tree 200d at this time is shown in
Further thereafter, user 2 again reads the same document “D01” by using the duplicate SC “ID1111”. In this case the document management server 10a traces a derivation relationship tree 200d from “IDllll”, acquires version attribute value “Vllllll” of the base node 204 of office A, and provides to user 2 a duplicate file including a new duplicate ID “ID11112” and the document of that version. As a result, user 2 reads the version after the update by user 10. The derivation relationship tree 200e at this time is shown in
Hereinabove, when a document registration request is received from a user, the document management server 10a automatically sets the division attribute value with the node corresponding to the request as the base node. Furthermore, when a read request is received from a user, the document management server 10a judges whether the request applies to a base node at a subsidiary division by tracing and checking the derivation relationship tree and sets the division attribute value to the base node. However, this process is not always necessary. Instead, for example, the user issuing the document registration request or read request declares oneself as the base node of the division through the client terminal 20. In response, the client terminal 20 sends division attribute information of the user and information indicating the request event is the base node to the document management server 10a. In response, the document management server 10a may set the division attribute value to the node of the relevant request.
Furthermore, there are instances where a user holds positions in multiple divisions. For example, like the leader of office A being a member of the main office (i.e. management), the leader of a subsidiary division being a member of a higher division is one example. In this case, when a user issues a request to the document management server 10a, it is preferable for the user to specify the division to which the user belongs. For example, when the document management server 10a checks the division attribute of the requesting user from the organization information management server 40 and multiple values exist, an inquiry may be posed to the user asking as a member of which division was the request issued. Furthermore, when the user issues a request, the client terminal 20 acquires the division attribute of the user from the organization information management server 40, and if there are multiple division attributes, can allow the user to select the appropriate division attribute. In this case, the selected division attribute accompanies the request and is sent to the document management server 10a.
Furthermore, the aforementioned example was given for the case where the document update performed in the overall management method. However, the document update is also possible in other methods. For example, a method for recording differential data for the document, before and after the update, can be considered. The differential data may be created by an application, such as the viewer 22 or a document editor, at the client terminal 20 or by the document management server 10a. An example of embodying the former will be described hereinafter.
In this embodiment, as shown in
In this case, for example, in response to a read request of a node 310, the document management server 10a traces the derivation relationship tree 300 from the node 308 to the root node 302, finds the base node 304, and provides to the request origin a duplicate file including the differential data “U111” (differential data “U111111” is unregistered at this time) and the original “D01” of the root node 302. In this example, there is only one differential data. However, when there are multiple differential data, the time sequence information of all differential data is also included and provided. The viewer 22 at the client terminal 20 of the request origin applies all differential data according to the time sequence and generates a document reflecting all updates and then provides the document to the user. When the user further edits the provided document and issues an update request command, the viewer 22 sends an update request accompanied with differential data indicating the edited content (i.e. difference between the document first provided to the user by the viewer 22 and the final edited result) to the document management server 10a.
In the example of
Next, a process of the document management server 10a for implementing this management will be described. First, in the differential management method, a procedure for the document management server 10a will be described with reference to
In the procedure of
Next, a procedure of the duplicate provider 17a when a document read request is received from a user in the differential management method will be described with reference to
In this procedure, the duplicate provider unit 17a traces the derivation relationship tree 300 starting from the duplicate ID accompanying the read request to the root and collects (S11a) differential data held by each base node during the trace. During this collection, the time sequence information for all the differential data is also obtained. Then, the original held by the root node 302 is collected (S11a). A duplicate file including the differential data in the time sequence and the original and the duplicate ID is generated and provided to the requesting user (S13). Thereafter, the duplicate provider unit 17a generates (S14) a log record, obtains (S15) the division attribute of the requesting user, and judges (S16a) whether or not the obtained division attribute of the user matches the division attribute of the nearest base node from the starting point when tracing the derivation relationship tree 300. If there is no match, the node corresponding to the read request is the base node of the division to which the user belongs so that the division attribute of the user is set (S17a) into the log record corresponding to that node and the process terminates. If there is a match, the process terminates.
Next, a procedure of the document registration unit 13a will be described with reference to
In this procedure, the document registration unit 13a adds an ID (such as “U111”) to the differential data that is received accompanying the update request so that the ID is associated with the differential data and stores (S21a) the data into a storage device, such as the document database 11a. Then, the steps S22-S24 for acquiring the division attribute of the requesting user, providing a duplicate SC, and recording the log record are performed. The derivation relationship tree is traced and a search (S25) is performed for a node having the same division attribute as the division attribute of the user. To the field of the differential ID attribute of the log record corresponding to the found node is added (S26a) the ID that was assigned in step S21.
In this configuration, the information on the time stamp for the differential data can be obtained from the date and time item in the log record and the time sequence of the various differential data can be determined from the time stamps.
An example of the differential management method was given hereinabove. When a read request was issued in the aforementioned example, the document management server 10a traces the derivation relationship tree 300 to the root and collects the differential data at the nodes appearing during the trace and the original. Instead of this, if, with respect to the base node, the differential data and original, which are held at the ancestor base nodes, are held, it is not necessary to trace to the root and it is sufficient only a trace to the nearest base node from the duplicate ID accompanying the read request. In this case, if it is determined that the request corresponds to the base node in the process for the read request in step S16a (
Furthermore, although the differential data before and after the update operation was generated at the client terminal 20 in the aforementioned example, the data may of course be generated at the document management server 10a.
In the example described hereinabove, the content of the updates performed by members of a division are collected at the base node of that division. During a read request, the updated contents at that base node are used to generate a duplicate file. Therefore, a user performing a read request can read a document reflecting the latest updates within the division to which the user belongs. Furthermore, according to the framework of this embodiment, when a duplicate SC is transmitted from higher to lower divisions according to the hierarchical structure of the organization, a document provided to a user belonging to a division only includes updates from the division and updates from a directly higher divisions and does not include updates from other divisions. For example, for the read request of a node 316 in the example of
The aforementioned example illustrated document management for the case where the document body is updated. However, for a document that was first registered and then added with document attachments in a lower division, similar document management is possible also in the method for updating a document set (formed from one or more documents).
In this method, as shown in
The document set can be registered, for example, as one item in the log record as shown in
Next, a process of the document management server 10a for implementing this management will be described. First, a procedure of the document registration unit 13a will be described with reference to
First, in the procedure of
Next, a procedure of the duplicate provider unit 17a will be described with reference to
In this procedure, the duplicate provider unit 17a traces the derivation relationship tree 400 starting from the duplicate ID accompanying the read request and searches (S11b) for a node (namely, base node) having the value of the document set attribute. Then, the documents included in the document set at the first base node that is found in the trace are acquired (S12b) from the document database 11a, a duplicate file including the documents and the duplicate ID is generated and provided (S13) to the original user. Thereafter, the duplicate provider unit 17a generates a log record (S14), obtains the division attribute of the requesting user (S15), and judges (S16) whether or not the division attribute of the requesting user matches the division attribute of the base node obtained in step S11b. If they do not match, the node corresponding to the read request becomes the base node of the division to which the user belongs, the division attribute value of the user is set into the log record corresponding to that node, the document group acquired in step S12b is added (Sl7b) to the document set attribute of the log record, and the process terminates. If they do match, the step S17b is skipped and the process terminates.
Next, a procedure of the document registration unit 13a will be described with reference to
In this procedure, the document registration unit 13a an ID (such as “D111”) is added to the document attachment received accompanying the document attachment registration request, the document attachment is associated to the ID and stored (S21b) into the document database 11a. Then, the steps for acquiring the division attribute of the requesting user, providing a duplicate SC, and recording the log record are performed. The derivation relationship tree is traced and a search (S25) is performed for a node having the same division attribute as the division attribute of the user. To the field of the document set attribute of the log record corresponding to the found node is added (S26b) the ID that was assigned in step S21b.
In a document distribution method where document attachments are added to a document set while in distribution as a result of the aforementioned process, the sharing of a document set within a division can be easily achieved. When setting a new base node in the examples of
If updates are added by users to documents belonging to a document set, each document in the document set may be managed by the aforementioned methods (overall management method or differential management method) in the embodiments for document updates.
Furthermore, preparing logical components, such as chapters or sections forming a document, into different files (namely, document part files) and expressing one document as a set of the document part files are commonly performed hitherto. Japanese Patent Laid-Open Publication No. 2003-067402 discloses a method for managing update information in the overall management method or differential management method by such individual document part files. In this manner, one document is expressed as a structure formed from multiple document part files and update information is managed for every part file. With the document part file group forming one document treated as the aforementioned document set (where the only difference is whether or not information on the structure forming the document part file group is included) and the aforementioned update and read operations managed individually for the document part files, the management method in this embodiment can be achieved.
Furthermore, in the aforementioned example, when there is a document update request or a document attachment registration request, the update information or document attachment was registered to the nearest ancestor base node in the derivation relationship tree. However, the collecting of update information or document attachment at the base node need not be performed at the time of the update or registration. They may be performed, for example, when a read request is received. Namely, in this example, at the time of the update request or document attachment registration request, the update information or document attachment is registered into the node corresponding to the request. Then, when there is a read request, an ancestor base node of the node corresponding to the request is found, and the update information or document attachment that has been registered into the descendent nodes of the base node is collected and provided to the requesting user. A procedure of this management applied to an update in the differential management method will be described with reference to
In this procedure, the duplicate provider unit 17a traces the derivation relationship tree 300 starting from the duplicate ID accompanying the read request to the root and searches for the first base node that is encountered in the trace (S11c). Then, moving down the derivation relationship tree this time from the found base node toward the descendent, the differential data that has been registered at each node encountered in this downward process is collected (S12c). At this data collection, the day and time attribute of the node to which the differential data belongs is acquired as the time stamp of the differential data and the time sequence of the various differential data is determined from the time stamps. The aforementioned process is performed for all base nodes that are encountered until the root node is reached. The subsequent process may be identical to the process of
Furthermore, in the aforementioned example, it was assumed that a document was transmitted within the same division or from a higher division to a lower division according to the hierarchical structure of the organization. However, if a case is considered where a document is transmitted to a user in an unrelated division, for example, the following type of control may be performed. Namely, when a read request is received from a user, the document management server 10a determines, in step S16 of the process of
Furthermore, using the framework of the aforementioned embodiment, the result of an update or addition to a document at a subsidiary division can also be collected for a higher division. This can be accomplished, for example, by a user (such as a leader of a lower division), belonging to a higher division and a lower division, acquiring a document (or document group) resulting from an update or addition at a lower division as a member of a lower division, and issuing a request for an update or addition accompanied with the document (or document group) as a member of a higher division to the document management server 10a. For example, at the point where the derivation relationship tree 400 has the state shown in
Furthermore, the derivation relationship tree between duplicate IDs was expressed hereinabove as a correspondence relationship between the “old duplicate ID” and “provided duplicate ID” in the log record group in the log management unit 19. However, the data structure of the derivation relationship tree is not limited to this and may be created separately from the log record group.
The “digital document” in the aforementioned embodiment is not only limited to document data created with a word processor or spreadsheet program but also may include various types of data, such as audio data, image data, video data, multimedia data, and so forth. Therefore, the concept of “reading” a “digital document”-includes the playback of audio data, image data, video data, and multimedia data. Namely, the “reading” of a “digital document” in the aforementioned embodiment includes a generally wide use of digital documents. In other words, in response to an “acquisition request” for a digital document from a user in a system using duplicate SC, the document management server 10 provides a duplicate SC associated to that digital document to the user, and in response to a “usage request” for a digital document using the duplicate SC, a duplicate file that includes a copy of the digital document (or a copy that reflects the differential data or additional data) is provided to the user for “use”.
The document management servers 10, 10a forming the system described hereinabove is typically implemented by executing on a general-purpose computer a program that describes the function or processing of each aforementioned part. The computer may have a circuit configuration as shown in
The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2006-172737 | Jun 2006 | JP | national |