1. Technical Field
The present invention relates to a system and method that controls comments in a collaborative document. More particularly, the present invention relates to a system and method that presents comments in a document to selected individuals as well as securing comments when needed.
2. Description of the Related Art
Documents (e.g., word processing documents) are an important form of communication and documentation. Because of their importance, the audience for a particular document may include many types of individuals. For example, a document may have more than one author and more than one reviewer. Each of these authors and reviews may have a different level of importance and scope regarding the document, and therefore some may be responsible for authoring or reviewing the entire document while others are concerned with particular sections. In addition, some individuals reviewing the document may be supervisors over other individuals that are authoring or reviewing the document. Because of the varied types of individuals authoring and reviewing a document, comments of a sensitive or confidential nature are often left out of traditional comments since such comments are visible to all users of the document.
One approach to providing comments only to selected individuals is to send the comments via another media, such as in a separate email note. The obvious challenge of this approach is that the comments included in a separate email note are disconnected from the actual document making it difficult to determine where the comment applies. Another challenge of this approach is that the email-based comment does not run with the lifecycle of the document, so authors and reviews have a more difficult time assessing whether the comment was adequately addressed in further drafts.
It has been discovered that the aforementioned challenges are resolved using a system, method and computer program product that operates when opening a word processing document that includes document content and comments inserted at various insertion points within the document content. The document is opened by a user that corresponds to a particular user identifier. The comments included in the document include one or more recipient identifiers. A first set of comments is selected where the user's identifier is included in the recipient identifiers of the corresponding comments, and a second set of comments is selected where the user's identifier is not included in the recipient identifiers of the corresponding comments. The word processor displays the first set of comments at their respective insertion points within the document content and does not display the second set of comments. In one embodiment, any comments that do not have recipient identifiers are viewable by anyone and, therefore, are included in the first set of comments.
In another embodiment, a group comment is included in the first set of comments. The group comment includes a group recipient identifier. Inclusion of the group comment in the first set of comments is performed by determining that the user identifier is included in a list of identifiers that correspond to the group recipient identifier. In a further embodiment, before displaying the group comment, the group comment is identified as being encrypted. A recipient package is retrieved that includes group encryption keys. A user encryption key is used to decrypt the recipient package, and the group encryption key that corresponds to the group comment is retrieved and used to decrypt the encrypted group comment.
In one embodiment, a first set of encrypted comments is identified as being included in the first set of comments. In order to open the encrypted comments, an encryption key is retrieved that corresponds to the user identifier. The encrypted comments are then decrypted using the retrieved encryption key. Note that encrypted comments included in the second set of comments cannot be decrypted using the user's encryption key because comments included in the second set of comments were not directed to the user that corresponds to the user identifier. In a further embodiment, encrypted comments are encrypted using a public encryption key that corresponds to the user identifier, and the encryption key that is used to decrypt the encrypted comment is a private encryption key that corresponds to the public encryption key.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings, wherein:
Certain specific details are set forth in the following description and figures to provide a thorough understanding of various embodiments of the invention. Certain well-known details often associated with computing and software technology are not set forth in the following disclosure, however, to avoid unnecessarily obscuring the various embodiments of the invention. Further, those of ordinary skill in the relevant art will understand that they can practice other embodiments of the invention without one or more of the details described below. Finally, while various methods are described with reference to steps and sequences in the following disclosure, the description as such is for providing a clear implementation of embodiments of the invention, and the steps and sequences of steps should not be taken as required to practice this invention. Instead, the following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention, which is defined by the claims that follow the description.
The following detailed description will generally follow the summary of the invention, as set forth above, further explaining and expanding the definitions of the various aspects and embodiments of the invention as necessary. To this end, this detailed description first sets forth a computing environment in
Northbridge 115 and Southbridge 135 are connected to each other using bus 119. In one embodiment, the bus is a Direct Media Interface (DMI) bus that transfers data at high speeds in each direction between Northbridge 115 and Southbridge 135. In another embodiment, a Peripheral Component Interconnect (PCI) bus is used to connect the Northbridge and the Southbridge. Southbridge 135, also known as the I/O Controller Hub (ICH) is a chip that generally implements capabilities that operate at slower speeds than the capabilities provided by the Northbridge. Southbridge 135 typically provides various busses used to connect various components. These busses can include PCI and PCI Express busses, an ISA bus, a System Management Bus (SMBus or SMB), a Low Pin Count (LPC) bus. The LPC bus is often used to connect low-bandwidth devices, such as boot ROM 196 and “legacy” I/O devices (using a “super I/O” chip). The “legacy” I/O devices (198) can include serial and parallel ports, keyboard, mouse, floppy disk controller. The LPC bus is also used to connect Southbridge 135 to Trusted Platform Module (TPM) 195. Other components often included in Southbridge 135 include a Direct Memory Access (DMA) controller, a Programmable Interrupt Controller (PIC), a storage device controller, which connects Southbridge 135 to nonvolatile storage device 185, such as a hard disk drive, using bus 184.
ExpressCard 155 is a slot used to connect hot-pluggable devices to the information handling system. ExpressCard 155 supports both PCI Express and USB connectivity as it is connected to Southbridge 135 using both the Universal Serial Bus (USB) the PCI Express bus. Southbridge 135 includes USB Controller 140 that provides USB connectivity to devices that connect to the USB. These devices include webcam (camera) 150, infrared (IR) receiver 148, Bluetooth device 146 which provides for wireless personal area networks (PANs), keyboard and trackpad 144, and other miscellaneous USB connected devices 142, such as a mouse, portable storage devices, modems, network cards, ISDN connectors, fax, printers, USB hubs, and many other types of USB connected devices.
Wireless Local Area Network (LAN) device 175 is connected to Southbridge 135 via the PCI or PCI Express bus 172. LAN device 175 typically implements one of the IEEE 802.11 standards of over-the-air modulation techniques that all use the same protocol to wireless communicate between information handling system 100 and another computer system or device. Optical storage device 190 is connected to Southbridge 135 using Serial ATA (SATA) bus 188. Serial ATA adapters and devices communicate over a high-speed serial link. The Serial ATA bus is also used to connect Southbridge 135 to other forms of storage devices, such as hard disk drives. Audio circuitry 160, such as a sound card, is connected to Southbridge 135 via bus 158. Audio circuitry 160 is used to provide functionality such as audio line-in and optical digital audio in port 162, optical digital output and headphone jack 164, internal speakers 166, and internal microphone 168. Ethernet controller 170 is connected to Southbridge 135 using a bus, such as the PCI or PCI Express bus. Ethernet controller 170 is used to connect information handling system 100 with a computer network, such as a Local Area Network (LAN), the Internet, and other public and private computer networks.
While
The Trusted Platform Module (TPM 195) shown in
When the comment request (e.g., comment button 320) is selected, comment insertion dialog window 350 appears. Dialog window 350 includes various components that include comment content area 360 where the user types the comment, comment recipient selection area 370 where the user selects which recipients will be able to view the comment, encryption checkbox 385 that is selected when the user wants to encrypt the comment content so that other, non-selected recipients cannot hack the word processing document in order to view the comment content. In addition dialog window 350 includes add comment command button 390 and cancel command button 395. After the user has entered the comment content in comment content are 360 and selected one or more recipients from recipient selection area 370, then the user selects “add comment” command button in order to add the comment to the document at the insertion point. If the user decides not to add the comment, then the user can select “cancel” command button 395 to cancel the addition of the comment. In the example shown, the list of possible recipients includes various groups and individuals. The user is able to select multiple groups or individuals by using an input technique, such as pressing a keyboard key (e.g., the “control” key) while selecting the recipients using an input device such as a mouse or keyboard keys. In the example shown, selected recipients 380 include “Andrew” who is identified as an author of the document and “Rene” who is identified as a reviewer of the document. In one embodiment, the writer of the comment is automatically selected (“Richard” 381) so that the writer can continue to view the comment. As mentioned before, the list of possible recipients includes groups, such as “All Recipients,” “All Authors,” or “All Reviewers.” These groups are simply examples and additional, or different, groups could be created and used based on the type of document. For example, recipient groups could include “managers,” “employees,” “vendors,” and the like when a document pertains to an organization's structure or management.
At step 540, the first member (recipient) to include in the newly formed group is selected from recipient data store 550. As shown, recipient data store 550 includes the names of possible recipients, as well as the recipients' identifiers (e.g., user logins, email addresses, etc.). In addition, an asymmetric public key/private key pair has been generated for each recipient. The public key that corresponds to each recipient is associated with the respective recipients and is also stored in recipient data store 550. At step 555, the recipient identifier that was retrieved at step 540 is stored in group data store 520 and is associated with the group (or groups) to which the recipient belongs. Using the example from
After groups have been created and data regarding the groups have been stored, then the groups are packaged (predefined process 570, see
At step 640, the group's private key and the group's name are retrieved from private group storage 530 and these are stored in recipient package 650. At step 660, an attempt is made to identify the next group that includes the selected recipient as a member. A determination is made as to whether a next group that includes the selected recipient as a member was identified (decision 670). If a next group was found, then decision 670 branches to “yes” branch 672 which loops back to retrieve the newly selected group's name and private key from private group storage 530 and store the retrieved name and private key in recipient package 650. This looping continues until all of the groups to which the selected recipient belongs have been identified and the groups' names and private keys are stored in the recipient's package. After all of the groups to which the selected recipient have been found and processed, decision 670 branches to “no” branch 674 whereupon, at step 675, the recipient's package (650) that was just created is encrypted using the recipient's public key resulting in encrypted recipient package 680.
A determination is then made as to whether there are more recipients in available recipients data store 550 to process (decision 685). If there are more recipients, then decision 685 branches to “yes” branch 688 which loops back to process the next recipient in the data store. For those recipients that are members of one or more groups, additional encrypted recipient packages 680 are created and added to the group of encrypted recipient packages 682. Encrypted recipient packages 682 are included with the word processing document and, because the individual encrypted recipient packages can only be opened with the recipients' private keys, the group keys stored in the encrypted packages are protected from unauthorized recipients or uses of the word processing document. After all recipients have been processed, decision 685 branches to “no” branch 690 and processing returns to the calling routine (see
Returning to decision 720, if all recipients have not been selected, then decision 720 branches to “no” branch 732 to process the various recipients. At step 735, the comment recipient tag that will be inserted in the document is initialized to be the first comment recipient's identifier. Note that each recipient can be either an individual recipient or a group of recipients. A determination is made as to whether the user requested that the comment be encrypted (decision 740). If the user requested that the comment be encrypted, then decision 740 branches to “yes” branch 742 whereupon, at step 745, the asymmetric “public” key that corresponds with this individual or group recipient is retrieved, either from recipient data store 550 (in the case of an individual recipient), or from group data store 520 (in the case of a group recipient). At step 750, the comment content is encrypted using the retrieved public key, and at step 755, the insertion point is stored along with the comment recipient tag and the encrypted comment content (e.g., comment content, graphic, multimedia, etc.) in the word processing document. At step 760, the next comment recipient (either an individual recipient or a group recipient) is retrieved from the list of recipients. A determination is made as to whether a next recipient was found in the list (decision 765). If another recipient is found, then decision 765 branches to “yes” branch 768 whereupon, at step 770, the comment recipient tag is reset to be the next comment recipient's identifier, and processing loops back to process this recipient (retrieving the recipient's public key, encrypting the comment content, and storing the data in the document). This looping continues until all recipients that were selected in the recipient list have been processed, at which point decision 765 branches to “no” branch 772 and encrypted comment creation processing ends at 795.
Returning to decision 740, if the comment is not being encrypted, then decision 740 branches to “no” branch 774 whereupon, at step 775, an attempt is made to retrieve a next comment recipient (group or individual) that was selected by the user from the list of recipients. A determination is made as to whether a next recipient was selected by the user (decision 780, i.e., whether a next recipient was found). If another selected recipient is found, then decision 780 branches to “yes” branch 782 whereupon, at step 785 the newly found recipient identifier (either group identifier or individual identifier) is appended to the comment recipient tag, and processing loops back to retrieve additional selected recipient identifiers. This looping continues until there are no more selected recipients to process, at which point decision 780 branches to “no” branch 788 whereupon, at step 790, the insertion point is stored along with the comment content so that the comment content will be viewable by any recipient whose identifier is included in the comment recipient tag. Unencrypted comment creation to selected recipients thereafter ends at 795.
At step 830, the text portion of the document, that includes comment data, is scanned in order to locate the first comment insertion point. A determination is made as to whether a comment insertion point is found in the document (decision 832). If a comment insertion point is found in the document, then decision 832 branches to “yes” branch 834 to process the comment that has just been found. A determination is made as to whether the comment is directed to all of the recipients of the document (decision 835). In one embodiment, it is determined that all recipients are the intended audience when either “All Recipients” has been selected (e.g., selecting “All Recipients” from a list of recipients such as recipient list 370 shown in
Returning to decision 835, if the comment is not directed to all recipients, then decision 835 branches to “no” branch 848 whereupon, at step 850, the comment recipient tag is parsed in order to determine if either the recipient's identifier is included in the comment recipient tag or if one of the group identifiers to which the recipient belongs is included in the comment recipient tag. A determination is made as to whether the user's identifier is included in the comment recipient tag (decision 855). If the user's identifier is included in the comment recipient tag, then decision 855 branches to “yes” branch 858 to process the comment. A determination is made as to whether the comment that is directed to the recipient is encrypted (decision 860). If the comment is encrypted, then decision 860 branches to “yes” branch 862 whereupon, at step 865, the comment content is decrypted using the recipient's private key that was retrieved in step 805. At step 870, the decrypted comment content is presented to the recipient at the comment insertion point. Processing then loops back to locate the next comment insertion point in the document. Returning to decision 860, if the comment that is directed to the recipient is not encrypted, then decision 860 branches to “no” branch 872 whereupon at step 886 the unencrypted comment content is presented to the recipient at the comment insertion point. Processing then loops back to locate the next comment insertion point in the document.
Returning to decision 855, if the user's identifier is not included in the comment recipient tag, then decision 855 branches to “no” branch 876 for further processing. A determination is made as to whether the comment recipient tag includes a group identifier to which the recipient belongs (decision 878). If the comment recipient tag includes a group identifier to which the recipient belongs, then decision 878 branches to “yes” branch 880 whereupon a determination is made as to whether the group-directed comment is encrypted (decision 882). If the group-directed comment is not encrypted, then decision 882 branches to “no” branch 884 whereupon, at step 886, the unencrypted comment content is presented to the recipient at the comment insertion point. Processing then loops back to locate the next comment insertion point in the document. On the other hand, if the group-directed comment is encrypted, then decision 882 branches to “yes” branch 888 whereupon, at predefined process 890, the encrypted group-directed comment is decrypted and presented to the user (see
Returning to decision 878, if the user does not belong to any of the groups that are included in the comment recipient tag, then decision 878 branches to “no” branch 892 whereupon, at 894, the comment is skipped and not presented to the user. Processing then loops back to locate the next comment insertion point in the document.
The processing described above continues locating comments in word processing document 585 until there are no more comments to process. When all of the comments have been processed, decision 832 branches to “no” branch 892 and processing ends at 895.
At step 940, the decrypted recipient package is searched for the group identifier that was found in the comment recipient tag. A determination is made as to whether this group is one of the groups listed in decrypted recipient package 930 (decision 950). If this group is one of the groups listed in decrypted recipient package 930, then decision 950 branches to “yes” branch 955 whereupon, at step 960, the encrypted group-directed comment is decrypted using the group's private key that corresponds to this group and was retrieved from the user's decrypted recipient package 930. A determination is made as to whether the decryption of the group comment was successful using the retrieved group private key (decision 970). If the decryption was successful, then decision 970 branches to “yes” branch 975 whereupon, at step 980, the decrypted group comment is presented to the recipient at the comment insertion point and processing returns to the calling routine (e.g.,
One of the preferred implementations of the invention is a client application, namely, a set of instructions (program code) or other functional descriptive material in a code module that may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, in a hard disk drive, or in a removable memory such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps. Functional descriptive material is information that imparts functionality to a machine. Functional descriptive material includes, but is not limited to, computer programs, instructions, rules, facts, definitions of computable functions, objects, and data structures.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, that changes and modifications may be made without departing from this invention and its broader aspects. Therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases “at least one” and “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an”; the same holds true for the use in the claims of definite articles.
Number | Name | Date | Kind |
---|---|---|---|
6078403 | Palmer | Jun 2000 | A |
6263340 | Green | Jul 2001 | B1 |
6438564 | Morton et al. | Aug 2002 | B1 |
6636965 | Beyda et al. | Oct 2003 | B1 |
6854087 | Takeo et al. | Feb 2005 | B1 |
7194679 | Green | Mar 2007 | B1 |
7689570 | Fuchs | Mar 2010 | B2 |
20060010095 | Wolff et al. | Jan 2006 | A1 |
20070011606 | Bagheri | Jan 2007 | A1 |
Number | Date | Country |
---|---|---|
07028816 | Jul 1993 | JP |
10040236 | Jul 1996 | JP |
Number | Date | Country | |
---|---|---|---|
20090129596 A1 | May 2009 | US |