Personal computers have evolved over time from relatively high-cost, low-function machines to relatively low-cost machines that can be utilized to effectuate a plurality of different tasks, including but not limited to word processing, web browsing, video editing, etc. Personal computers are conventionally designed such that a file desirably accessed by a user of the personal computer is retained on a data repository of the personal computer and is accessible by way of a local file system. A conventional mechanism for sharing documents located on a personal computer is to open the document on the personal computer, print out a physical copy of the document, and provide such physical copy to an individual with whom the document is desirably shared. If the individual has any comments or desires to make alterations to the document, the individual does so on the paper copy, and provides the paper copy back to the user of the personal computer.
Another conventional mechanism for sharing documents is to do so via email. Thus, a user of a personal computer can attach a document to an email and transmit such email to one or more individuals chosen by the user of the personal computer. A recipient of the email can open the document on a different computer, make alterations to the document, and transmit it back to the sender of the email. This mechanism of sharing documents can be problematic in that it may be difficult to ascertain a desired version of the document. For instance, if a user transmits the document to ten people, and all ten individually have comments or alterations to the document, the end result is that the user has on her email system a plurality of versions of the same document, where it may be difficult to ascertain which version is desirably accessed. Moreover, incorporating comments/revisions from multiple individuals can be cumbersome.
Yet another example mechanism for sharing documents with others is to cause the document to be uploaded to a file sharing service or social networking web site. A user can use a web browser to navigate to a particular web site and cause the document to be uploaded such that it is viewable by others. When uploading the document, however, the user must agree to terms of service of the web site that hosts the document. Furthermore, such document is typically unable to be modified by reviewers of the document.
The following is a brief summary of subject matter that is described in greater detail herein. This summary is not intended to be limiting as to the scope of the claims.
Described herein are various technologies pertaining to sharing files retained on a personal computer of a user with others chosen by the user. Pursuant to an example, a file stored on the personal computing device of the user may be assigned a uniform resource identifier (URI) that is unique to the file. The file then may be accessible to other computing devices through utilization of a web browser when the web browser is provided with the URI assigned to the file. For instance, the URI can be assigned to the file a first time that the user chooses to save the file to a data repository in the personal computing device. In another example, an operating system may be configured to automatically assign URIs to a plurality of files on the personal computing device upon the operating system being installed on the personal computing device.
Furthermore, the file that corresponds to the URI may be retained on the personal computing device of the user. Thus, the personal computing device of the user can act as a virtual web server. An operating system installed on the personal computing device may be configured to automatically set up the personal computing device as the virtual web server when a URI is assigned to a file. In another example, the file or a preview thereof (e.g., an image that cannot be edited) can be automatically uploaded to a server while the original file is retained on the personal computing device of the user. Thus, others may have access to the file without having access to the personal computing device of the user.
Once the file is assigned the URI, the user of the personal computing device may choose to share the file with others. To share the file, the user can employ any suitable communications application in connection with providing the URI that is assigned to the file to other individuals. Thus, for instance, the user may transmit an email to certain contacts of the user, wherein the email includes the URI. A recipient of the email may then initiate a web browser and provide the web browser with the URI, thereby causing the web browser to navigate to the file that has been shared with the recipient. When individuals make alterations or comments to the file, such alterations or comments may be automatically synchronized from the file on the server to the file retained on the personal computing device of the user. Furthermore, alterations to the file can be retained in association with the file, such that one file may have multiple versions that are accessible to the user of the personal computing device. The user can select the file on the personal computing device and quickly navigate to a particular version of such file (e.g., a version of the file that has been commented on by a particular individual).
Other aspects will be appreciated upon reading and understanding the attached figures and description.
Various technologies pertaining to sharing files on a personal computing device will now be described with reference to the drawings, where like reference numerals represent like elements throughout. In addition, several functional block diagrams of example systems are illustrated and described herein for purposes of explanation; however, it is to be understood that functionality that is described as being carried out by certain system components may be performed by multiple components. Similarly, for instance, a component may be configured to perform functionality that is described as being carried out by multiple components.
With reference to
The personal computing device 102 additionally includes an operating system 108 that is installed on the personal computing device 102. The operating system 108 may be used in connection with controlling/monitoring processing and data storage resources on the personal computing device 102.
The system 100 additionally includes a receiver component 110 that can receive a computing event with respect to the file 106 stored in the data repository 104 of the personal computing device 102. In an example, the computing event may be a user action with respect to the file 106, such as the user causing the file to be opened, the user causing the file to be saved, or other suitable user action. In another example, the computing event may be initiated by the operating system 108 or an application executing on the personal computing device 102. For instance, the operating system 108 can be configured to select the file 106 (and other files stored in the data repository 104) when the operating system 108 is initially installed on the personal computing device 102.
An assignor component 112 can be in communication with the receiver component 110, and can automatically assign a URI to the file 106 responsive to the receiver component 110 receiving the computing event with respect to the file 106. Thus, at least a portion of content of the file 106 can be viewable by way of a web browser through utilization of the URI assigned to the file 106.
Once the URI has been assigned to the file 106, the user of the personal computing device 102 can choose to share the file 106 or contents thereof with others by transmitting the URI to selected identified individuals. For instance, the user can transmit an email to identified individuals, wherein the email includes the URI assigned to the file 106. Recipients of the email can provide the URI to a web browser and can access at least a portion of content of the file 106.
In another example, the user can choose to transmit the URI to identified individuals by way of an instant message application, by way of a web-based broadcasting application, post the URI to a social networking web site, etc. In yet another example, the URI can be transmitted directly to a computer of another user via the operating system 108 of the personal computing device 102 communicating with an operating system of another personal computing device. For instance, the operating system 108 may be configured to have knowledge of contacts of the user of the personal computing device 102, and may be configured to communicate with operating systems of other personal computing devices that are operated by the contacts of the user of the personal computing device 102. Thus, as will be described in greater detail below, an operating system of a computing device that receives the URI can be configured to provide the user thereof with a graphical icon that indicates that someone has shared a file with the user of such computing device.
In addition, as will be described in greater detail herein, once the assignor component 112 assigns the URI to the file 106, the file 106 can be retained in the data repository 104 on the personal computing device 102. The assignor component 112 can automatically configure the personal computing device 102 to be a virtual web server (e.g., the user need not take steps to configure the personal computing device 102 to act as a web server). Individuals that receive the URI then may have direct access to the file 106 in the data repository 104 on the personal computing device 102.
In another example, when the assignor component 112 assigns the URI to the file 106, a copy of the file 106 can be created and placed on a separate computing device (e.g., a web server hosted by a service provider). The URI may then direct a recipient of the URI to the copy of the file stored separately from the personal computing device 102. Therefore, users of other personal computing devices can have access to the file 106 without having access to contents of the personal computing device 102 of the user.
In still yet another example, rather than generating a copy of the file 106, a preview of the file 106 can be generated, such that the URI assigned to the file 106 points to the preview of the file 106. The preview can be an image of the file that is unable to be edited by reviewers of the preview. Reviewers of the preview of the file 106, however, may provide comments pertaining to content of the file 106. In one or more of these examples, the URI may remain static if the owner of the file 106 chooses to update the file 106 from a different computer and/or serve the file 106 from a different computer or network.
In an example implementation, the URI may point to a preview of the file 106 (a homepage of the file 106), wherein the preview/homepage for the file may include tools that facilitate receipt and display of comments, discussion, and/or annotation. The file preview/homepage may be retained in a computing cloud separate from the personal computing device 102 of the user, such that the homepage is accessible when the user of the personal computing device 102 powers down such device 102 and/or disconnects from the Internet.
While the operating system 108 is shown as including the receiver component 110 and the assignor component 112 as modules thereof, it is to be understood that the receiver component 110 and/or the assignor component 112 may be included in a separate application that executes on the personal computing device 102. For instance, the receiver component 110 and the assignor component 112 can be configured to execute in a stand-alone application that executes in connection with the operating system 108.
With reference now to
A sharer component 202 can receive an indication from the user of the personal computing device 102 that the user of the personal computing device 102 wishes to share the file 106 or a preview thereof with at least one identified individual. In an example, the user of the personal computing device 102 can navigate a file system hierarchy and select a graphical icon that is representative of the file 106. The user may right-click on the file 106 and be provided with an option to share the file. The user may then choose to share the file by way of at least one mechanism from amongst a plurality of possible mechanisms. For instance, the sharer component 202 can be configured to initiate an application that can be utilized to transmit the URI to a personal computing device 204, wherein the personal computing device 204 is used by an individual with whom the file 106 is desirably shared. Thus, the sharer component 202 can be configured to initiate an email application and the URI can be placed in a body of an email, wherein the user of the personal computing device 204 is the intended recipient of the email. In another example, the sharer component can initiate a text messaging application, an instant messaging application, a web-based broadcasting application, or other suitable application in connection with causing the URI to be transmitted/received by the user of the personal computing device 204.
The personal computing device 204 can have a web browser 206 installed thereon. The user of the personal computing device 204 may initiate the web browser 206 and provide the web browser 206 with the URI corresponding to the file 106 (e.g., click on a hyperlink corresponding to the URI). The web browser 206 may then be utilized to access the file 106 or a preview thereof, such that the user of the personal computing device 204 can review at least a portion of the content of the file 106 through utilization of the web browser 206.
Referring now to
A preview generator component 302 can be in communication with the assignor component 112 and can receive an indication that the file 106 has a URI assigned thereto. The preview generator component 302 may then access the data repository 104 and generate a read-only file preview 304 of the file 106. For instance, the file preview 304 may be an image of contents of at least a portion of the file 106. Furthermore, the assignor component 112 and/or the preview generator component 302 can cause the file preview 304 generated by the preview generator component 302 to be retained in a computing cloud 306 (e.g., in a web server that is separate from the personal computing device 102). Therefore, if the user of the personal computing device 102 chooses to share the file 106 with others, the file preview 304 can be accessed by others when they provide a web browser with the URI that has been assigned to the file 106. Thus, content of the file 106 can be shared with others while maintaining security with respect to the file 106 on the personal computing device 102 (e.g., those viewing the file preview 304 do not have direct access to files on the personal computing device 102).
As described above, the file preview 304 can be shared with others by transmitting a URI to a computing device used by an identified individual. For instance, an identified individual may be using the personal computing device 204 that has the web browser 206 installed thereon. The identified individual may receive the URI corresponding to the file 106 and may direct the web browser 206 to the location corresponding to the URI. The user of the personal computing device 204 may then access the file preview 304, which may be a read-only image of the file 106. The user of the personal computing device 204, however, may provide comments pertaining to the file preview 304. The user of the personal computing device 204 may suggest changes to the file 106, may provide general comments pertaining to the file 106 (e.g., “good job.”) or other suitable comments.
The system 300 may also include a synchronization component 308 that can cause comments provided with respect to the file preview 304 to be stored on the personal computing device 102 in connection with the file 106 in the data repository 104. While the synchronization component 308 is shown as being retained in the computing cloud 306, it is to be understood that the synchronization component 308 may at least partially reside on the personal computing device 102 and/or the personal computing device 204.
In an example, when a reviewer of the file preview 304 generates a comment and causes such comment to be assigned to the file preview 304, the synchronization component 308 can be in communication with the personal computing device 102 and cause the comments to be stored in association with the file 106 in the data repository 104 on the personal computing device 102. The user of the personal computing device 102 can access the file 106 from the data repository 104 on the personal computing device 102 and can review the comments made by the user of the personal computing device 204 (the reviewer of the file preview 304). Furthermore, such comments may be stored in a versioned manner, such that comments made by different people may be reviewed separately with the file 106 and/or together with the file 106. That is, the user of the personal computing device 102 can access the file 106 in the data repository 104 and to review comments pertaining to a particular user or group of users.
In an example, the file preview 304 can be commented upon by individuals A, B and C, and the synchronization component 308 can cause such comments to be stored in the data repository 104 in association with the file 106. The user of the personal computing device 102 can access the file 106 and can choose to view comments made by user A only, by user B only, by user C only, comments made by any suitable combination of commenters, or may choose to review a version of the file 106 that has no comments corresponding thereto.
Furthermore, comments made by reviewers of the file preview 304 and stored in the data repository 104 (by way of the synchronization component 308) may be searchable. Thus, if a reviewer of the file preview 304 commented that contents of the file 106 were “excellent,” and the user of the personal computing device 102 performed a search for the word “excellent,” the search would return the file 106 (even if content of the file does not include the word “excellent”).
The synchronization component 308 may be configured to cause comments to be transmitted to the personal computing device 102 substantially immediately upon a reviewer providing comments to the file preview 304. In another example, the synchronization component 308 can be configured to periodically synchronize with the personal computing device 102 such that comments from a plurality of reviewers of the file preview 304 may be synchronized at once. Furthermore, in another example, at least a portion of the synchronization component 308 may be retained on the personal computing device 102 and may ping the computing cloud 306 periodically for comments made to the file preview 304, pseudo-randomly for comments made to the file preview 304, etc. In still yet another example, the synchronization component 308 may be included on the personal computing device 204 and may transmit an indication to the computing cloud 306 that comments made to the file preview 304 should be transmitted and stored in association with the file 106.
While the file preview 304 is shown as residing in the computing cloud 306, it is to be understood that the assignor component 112 can be configured to cause the personal computing device 102 to act as a virtual web server. Thus the preview generator component 302 can generate the file preview 304 such that it is retained on the personal computing device 102. For instance, the preview generator component 302 can cause the file preview 304 to be stored in a data repository on the personal computing device 102 that is logically separated from other portions of a data repository that may maintain private information. In the examples provided herein, the user of the personal computing device 102 may have control over how files are shared and security pertaining thereto (e.g., where the file 106 or file preview 304 is to be stored, whether a password is needed to access the file 106 or file preview 304, . . . ).
Turning now to
The system 400 further includes a file manager component 402 that can cause a copy of the file 106b to be stored in the computing cloud 306 such that when the user of the personal computing device 204 provides the web browser 206 with the URI, the user of the personal computing device 204 can access the copy of the file 106b. In an example, the user of the personal computing device 102 may wish to share the file 106 with the user of the personal computing device 204, wherein it is desirable that the user of the personal computing device 204 can edit the file 106. The user of the personal computing device 102 can cause the URI assigned to the file 106 to be transmitted to the user of the personal computing device 204. The user of the personal computing device 204 may provide the URI to the web browser 206, and then may access the copy of the file 106b retained in the computing cloud 306.
Once the user of the personal computing device 204 accesses the file 106b, the user of the personal computing device 204 may edit and cause alterations to be saved to the copy of the file 106b. In an example, WebDAV may be used in connection with allowing users to edit the copy of the file 106b retained in the computing cloud 306. Pursuant to an example, the user of the personal computing device 204 may access the copy of the file 106b, which causes a lock to be placed on such file 106b (e.g., other users may not access the file to edit such copy of the file 106b). The copy of the file 106b may be automatically transmitted to the personal computing device 204, such that the user of the personal computing device 204 can modify the copy of the file 106b. When the user of the personal computing device 204 saves the copy of the file 106b retained on the personal computing device 204, such alterations can be automatically uploaded to the computing cloud 306, such that the copy of the file 106b is updated. When the user of the personal computing device 204 closes the copy of the file on the personal computing device 204, the lock on the copy of the file 106b in the computing cloud 306 can be removed, such that others can access the copy of the file 106b to edit the copy of the file 10b.
The synchronization component 308 can act as described above in connection with synchronizing the copy of the file 106b with the file 106. Thus, when changes are made to the copy of the file 106b, the synchronization component 308 can cause such changes to be stored in a data repository 104 in association with file 106. As indicated above, the changes to the file 106 may be stored in association with the file 106 such that content in the file 106 generated by the user of the personal computing device 102 is not overwritten by changes made to the copy of the file 106b by other individuals. Modifications to the copy of the file 106b can be saved as versions of the file 106 in the data repository 104 of the personal computing device 102. Accordingly, when the user of the personal computing device 102 accesses the file 106, the user of the personal computing device 102 can choose whether to access the original version of the file 106, a version of the file 106 modified by a particular reviewer or set of reviewers with whom the file 106 has been shared, etc.
Furthermore, the user of the personal computing device 102 may choose to accept or modify edits made by reviewers to the copy of the file 106b, which may then update the file 106 and correspondingly update the copy of the file 106b stored in the computing cloud 306. The synchronization component 308 can manage synchronization of the file 106 when changes are made thereto. Additionally, when the user of the personal computing device 102 updates content of the file 106, such update can be automatically reflected in the copy of the file 106b retained in the computing cloud 306. In another example, when the user of the personal computing device 102 updates the file 106, such updates are not reflected to those with whom the file 106 has been shared until the user of the personal computing device 102 indicates that such updates should be reflected in the copy of the file 106b stored in the computing cloud 306.
Similarly to what has been described above, the file 106 and/or the copy of the file 106b managed by the file manager component 402 may be retained on the personal computing device 102, in the computing cloud 306, or on some other computing device. Precisely where the file 106 and/or copy of the file 106b is located, where reviewers are directed when using the URI assigned to the file 106, may be entirely up to the individual that is choosing to share the file 106.
Moreover, as described above with the preview of the file, edits made to the file 106 by reviewers of the file may be independently searchable while being stored in association with the file 106. Thus, if a reviewer of the file 106 made edits to the file 106 that were not included in the original version of the file generated by the user of the personal computing device 102, such edits may be independently searchable such that when the user of the personal computing device 102 executes a search corresponding to the edits, a version of the file 106 pertaining to such edits may be provided to the user of the personal computing device 102.
Referring now to
Upon selecting the graphical icon 502 (e.g., right-clicking on the graphical icon 502), a graphical icon 506 that lists a plurality of selectable options can be displayed. For instance, it may include an option to open a file, to edit the name of a file, etc. The options displayed in the graphical icon 506 may also include an option to share the file. Pursuant to an example, by hovering over the option to share the file, a graphical icon 508 can be displayed, wherein the graphical icon 508 presents a plurality of selectable choices pertaining to a manner in which the file can be shared with others. For instance, the graphical icon 508 can include an option to share the file by way of a first application, by way of a second application, an/or by transmitting directly to an operating system of an identified individual. The applications may include emails, text messages, instant messages, broadcast, etc. Once a mechanism for sharing the file has been chosen, a URI that has been assigned to the file can be transmitted by the way of the selected application(s), such that another individual can access the file or a preview thereof.
With reference now to
With reference now to
With reference now to
With reference now to
Moreover, the acts described herein may be computer-executable instructions that can be implemented by one or more processors and/or stored on a computer-readable medium or media. The computer-executable instructions may include a routine, a sub-routine, programs, a thread of execution, and/or the like. Still further, results of acts of the methodologies may be stored in a computer-readable medium, displayed on a display device, and/or the like.
Referring now to
At 906, a URI is automatically assigned to the file responsive to the receipt of the computing event to cause at least a portion of the content of the file to be acceptable by way of a web browser. For instance, once the URI is assigned to the file, a preview of the file can be generated and stored on a web server. In another example, the personal computing device may be caused to act as a virtual web server, such that the URI points to the file on the personal computing device, or to a copy of the file on the personal computing device. The methodology 900 completes at 908.
Now referring to
At 1006, a URI is automatically assigned to the file responsive to receipt of the indication received at 1004. Thus, at least a portion of content of the file can be viewed by way of a web browser when the web browser is provided with the URI assigned to the file. For instance, a preview of the file can be generated and stored on a web server, and the URI can point to the preview of the file. In another example, a copy of the file can be stored on the web server, and the URI can point to the copy of the file.
At 1008, an indication is received from the user that the user wishes to share the file with an identified individual. In other words, the user can issue a request to share the file with at least one identified individual. For instance, the identified individual may be a contact of the user of the personal computing device.
At 1010, an application is initiated that facilitates transmittal of the URI to the identified individual. As noted above, the application can be any suitable application that can be executed on a computer. Additionally or alternatively, the user may choose to share the file by sending an indication directly to the operating system of the computing device utilized by the identified individual. The methodology 1000 completes at 1012.
Now referring
The computing device 1100 additionally includes a data store 1108 that is accessible by the processor 1102 by way of the system bus 1106. The data store 1108 may include executable instructions, files, versions of files, URIs assigned to files, etc. The computing device 1100 also includes an input interface 1110 that allows external devices to communicate with the computing device 1100. For instance, the input interface 1110 may be used to receive instructions from an external computing device, a user, from a computing device located in a computing cloud, etc. The computing device 1100 also includes an output interface 1112 that interfaces the computing device 1100 with one or more external devices. For example, the computing device 1100 may display text, images, etc. by way of the output interface 1112.
Additionally, while illustrated as a single system, it is to be understood that the computing device 1100 may be a distributed system. Thus, for instance, several devices may be in communication by way of a network connection and may collectively perform tasks described as being performed by the computing device 1100.
As used herein, the terms “component” and “system” are intended to encompass hardware, software, or a combination of hardware and software. Thus, for example, a system or component may be a process, a process executing on a processor, or a processor. Additionally, a component or system may be localized on a single device or distributed across several devices.
It is noted that several examples have been provided for purposes of explanation. These examples are not to be construed as limiting the hereto-appended claims. Additionally, it may be recognized that the examples provided herein may be permutated while still falling under the scope of the claims.
This application is a continuation of U.S. patent application Ser. No. 12/535,695, filed on Aug. 5, 2009, and entitled “SHARING FILES ON A COMPUTER THROUGH USE OF URIS”. The entirety of this application is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 12535695 | Aug 2009 | US |
Child | 13892569 | US |