The system 100 includes a sending computing device 102, a receiving computing device 104, and a remote storage repository 106. There may be more than one of the computing devices 102 and 104, but just one of each is depicted in
It is noted that whereas the computing devices 102 and 104 are specifically denoted as being a sending device and a receiving device, respectively, each of these devices may further be able to perform the functionality of the other. Thus, the computing device 104 may further perform sending device functionality, as is described herein, and the computing device 102 may further perform receiving device functionality, as is described herein. However, for descriptive clarity and convenience, the sending device functionality is ascribed as to the computing device 102, and the receiving device functionality is ascribed to the computing device 104.
The remote storage repository 106 may be or include one or more photo-sharing web site servers. The computing devices 102 and 104 are communicatively interconnected with one another, as well as with the remote storage repository 106, via one or more networks, such as the Internet. The remote storage repository 106 is remote in that it is not located at the same physical place as the computing devices 102 and 104.
A digital camera device 108 may be communicatively connected to the sending computing device 102. The sending computing device 102 may download one or more digital image files 110 that were generated by the digital camera device 108. Alternatively, the digital image files 110 may be received, generated, or stored by the sending computing device 102 in a way that does not involve the digital camera device 108.
The digital image files 110 are denoted by the letter “O” in
The sending computing device 102 generates two other types of image files from each of the digital image files 110. First, the sending computing device 102 generates thumbnail image files 112, denoted by the letter “T” in
Second, the sending computing device 102 generates smaller-sized image files 114, denoted by the letter “S” in
Thus, the purpose of a thumbnail image file is to enable a user to quickly determine whether the image of the thumbnail image file is of interest. If the image is of interest, the user can retrieve the smaller-sized image file to view a larger version of the image, without having to retrieve the full, original-resolution digital image file itself. The purpose of a smaller-sized image file is thus to enable a user to view and print a larger version of an image, where such viewing and printing does not require the full, original-resolution digital image file for the image in question, which can be significantly larger in size and/or in resolution than the smaller-sized image file.
The sending computing device 102 transmits the thumbnail image files 112 to the receiving computing device 104 in a peer-to-peer manner, as indicated by the arrow 116. Peer-to-peer communication means that two computing devices exchange data with one another, where the data is not intended for indefinite storage on any intermediate computing device. For instance, where both the computing devices 102 and 104 are connected to the Internet, transmitting data from the former device to the latter device will likely result in temporary storage of the data on one or more intermediary server computing devices. However, peer-to-peer communication means that this data is not intended for permanent storage on any of these intermediary devices, and these intermediary devices are in any case not later accessible by the devices 102 and 104 for subsequent retrieval of this data therefrom. A peer-to-peer topology can be contrasted with a client-server topology, in which a client may transmit data to a server for indefinite storage thereon, so that other clients may receive the data from this server.
The sending computing device 102 transmits, or uploads, the smaller-sized image files 114 to the remote storage repository 106, as indicated by the arrow 118. This transmission is more akin to client-server communication, where the sending computing device 102 is a client, and sends data to the remote storage repository 106, which acts as a server. The remote storage repository 106 stores the smaller-sized image files 114 for an indefinite period of time. Different strategies for deleting these smaller-sized image files 114 from the remote storage repository 106 are described in relation to a method, later in the detailed description.
Desirably upon receipt of the thumbnail image files 112, the receiving computing device 104 substantially immediately displays the thumbnail image files 112 to a receiving user. The receiving user can thus decide, by viewing the miniature images of the thumbnail image files 112, which of the images are of particular interest. Upon making this decision, the receiving user transmits a request, via the receiving computing device 104, to the remote storage repository 106, for the smaller-sized image files 114 of one or more of the thumbnail image files 112, as indicated by the arrow 120. In response, the remote storage repository 106 transmits the smaller-sized image files 114 for the selected thumbnail image files 112 in question (i.e., and not necessarily for all of the thumbnail image files 112) to the receiving computing device 104, which receives them, as indicated by the arrow 122. Alternatively or additionally, upon selecting a desired thumbnail image file, the receiving user, via the receiving computing device 104, may be automatically or otherwise logged onto a web site maintained by the storage repository 106, such that the receiving user views the smaller-sized image file for the desired thumbnail file in question at this web site, instead of or addition to having it downloaded to the device 104. This alternative is referred to subsequently herein in shorthand as the “launch to view” option.
The receiving computing device 104 then stores the smaller-sized image files 114 that have been received for the receiving user-selected thumbnail image files 112. The receiving user may view the smaller-sized image files 114 received. The receiving user may further print the smaller-sized image files 114 received. The receiving user may in addition perform other functionality or actions in relation to the smaller-sized image files 114 that have been received. For instance, the receiving user may print the smaller-sized image files 114 from the web site where the “launch to view” option has been selected.
The basic functionality and operation of an embodiment of the invention as has been described in relation to
Furthermore, the receiving user requests and receives the smaller-sized image files 114 of just those images that are of interest to him or her. The receiving computing device 104 receives these smaller-sized image files 114 from the remote storage repository 106. Therefore, the receiving computing device 104 only takes the time (i.e., bandwidth) and storage to retrieve the desired smaller-sized image files 114, and not necessarily all of the smaller-sized image files 114, which may include images for which the receiving user does not care. In addition, the remote storage repository 106 transmits these smaller-sized image files 114 to each receiving computing device. As such, the sending computing device 102 does not have to be responsible for sending these smaller-sized image files 114, which can require significant time to transmit if there are a number of receiving computing devices requesting such files.
Therefore, at least some embodiments of the invention enable receiving users to receive near-immediate notification of images that they may have interest in, and do not have to download or otherwise retrieve all the smaller-sized image files 114, but rather just download or otherwise retrieve just the smaller-sized image files 114 of interest. Furthermore, at least some embodiments of the invention do not require either the sending user at the sending computing device 102 or the receiving user at the receiving computing device 104 to manage storage of the smaller-sized image files 114. If one or more of the smaller-sized image files 114 are inadvertently deleted, this is not a problem, because the remote storage repository 106 ultimately stores the smaller-sized image files 114 for an indefinite period of time.
When the user selects the OK button 206, the sending computing device 102 generates the thumbnail image files 112 and the smaller-sized image files 114 from the digital image files 110 retrieved from the digital camera device 108. The thumbnail image files 112 are then sent to the receiving computing device of each receiving user within the selected groups, such as the receiving computing device 104. The smaller-sized image filed 114 are sent to the remote storage repository 106 at the same time. The GUI 200 can include other elements and aspects besides those depicted in
In one embodiment, the user may select the element 304A, 304B, or 304C within a given pane, which are collectively referred to as the elements 304, to cause all the thumbnail image files 112 of the group in question to be displayed. Alternative manners by which the different thumbnail image files 112 within each group can be navigated are also amenable to embodiments of the invention. By selecting, such as clicking on, a desired thumbnail image file 112, the user causes the receiving computing device 104 to retrieve the corresponding smaller-sized image file 114 from the remote storage repository 106 for storage on and display by the receiving computing device 104. In addition, or alternatively, by selecting a desired thumbnail image file 112, the user may initiate the “launch to view” option that has been described.
Referring first to
Once the digital image files 110 have been selected, the sending device 102 generates the thumbnail image files 112 (412) and the smaller-sized image files 114 (414), as has been described. The thumbnail image files 112 are transmitted in a peer-to-peer manner to the receiving device 104 (416), whereas the smaller-sized image files are transmitted to the repository 106 (418). The repository 106 receives the smaller-sized image files 114 (42), and stores them (422). The receiving device 104 receives the thumbnail image files 112 (424), and stores and displays them (426).
Referring next to
Furthermore, the receiving user may at some point select a desired thumbnail image file at the receiving device 104 for which to receive a corresponding digital image file (440). That is, the receiving device 104 receives selection of a desired thumbnail image from the receiving user. The difference between parts 440 and 428 is that in the former, the receiving user is requesting the smaller-sized image file corresponding to the desired thumbnail image file. By comparison, in the latter, the receiving user is requesting the original digital image file corresponding to the desired thumbnail image file.
The receiving device 104 transmits the request for the corresponding digital image file (442). In one embodiment, this request is transmitted to the sending device 102, which receives the request (444), and transmits the corresponding digital image file to the receiving device 104 (446), such as in a peer-to-peer manner. The receiving device 104 receives this digital image file (448), and stores and displays it (450).
In another embodiment, however, the request for the corresponding digital image file is transmitted from the receiving device 104 to the repository 106, which receives the request (452). The repository 106 determines whether the corresponding digital image file is stored at the repository 106 (454), where such storage may be achieved as is described later in relation to the method 400. If the repository 106 has stored this digital image file, then the repository transmits the corresponding digital image file to the receiving device 104 (456). As before, the receiving device 104 receives this digital image file (448), and stores and displays it (450).
However, if the repository has not stored the corresponding digital image file, then the repository transmits a request for this digital image file to the sending device 102 (458). The sending device 102 receives the request (460), and transmits the corresponding digital image file (462), assuming the sending device still has the original digital image file in question. In one embodiment, the sending device 102 transmits the corresponding digital image file directly to the receiving device 104, which as before receives this digital image file (448), and stores and displays it (450).
However, in another embodiment, the sending device 102 transmits the corresponding digital image file requested to the repository 106, which receives and stores this digital image file (464). The repository 106 then transmits the digital image file to the receiving device 104 (456). As before, the receiving device 104 receives this digital image file (448), and stores and displays it (450).
Referring finally to
Thereafter, at some point and/or periodically, the receiving device 104 transmits the popularity score of each thumbnail image file to the repository 106 (468). The repository 106 receives the popularity score of each thumbnail image file from each receiving device, such as the receiving device 104 (470), as well as from the sending device 102 in one embodiment. The repository 106 then determines an aggregate popularity score of each thumbnail image file (472), and thus of each digital image file, based on the popularity scores received from the receiving and/or sending devices, and/or on the popularity scores that have been entered directly at the repository 106 by receiving and/or sending users logging onto the repository 106, such as over the Internet. The aggregate popularity score of each thumbnail image file may be the average popularity score in one embodiment, or may be determined in another manner as well.
Different actions can be performed in relation to the digital image file to which a thumbnail image file corresponds based on this aggregate popularity score. For instance, where the aggregate popularity score of a thumbnail image file is high (474), such as by being one of the highest number aggregate popularity scores, or such as by being greater than a threshold, the following can be performed. The repository 106 transmits a request to the sending device 102 for the original digital image file corresponding to the thumbnail image file in question (476). The sending device 102 receives this request (478), and in response transmits the corresponding original digital image file to the repository 106 (480), assuming it still has the original digital image file in question. The repository 106 receives and stores this original digital image file (482). Thus, where the aggregate popularity score is high, the repository 106 stores the original digital image file, and not just the smaller-sized image file, for a given image.
As another example, where the aggregate popularity score of a thumbnail image is low, such as by being one of the lowest aggregate popularity scores, or such as by being less than a threshold, the corresponding smaller-sized image file may be deleted from the repository 106 (484). In this way, smaller-sized image files are periodically deleted in an intelligent way, in that less popular smaller-sized image files may be automatically deleted after a given length of time if their aggregate popularity scores are low. Other approaches can also be followed to periodically delete smaller-sized image files from the repository 106.
However, where a smaller-sized image file has been deleted from the repository 106, the repository 106 may later receive a request from the receiving device 104 for this deleted, smaller-sized image file (486). For instance, the receiving device 104 may make the request as in part 430 of