Method and Apparatus for Uploading Content From a Device to a Remote Network Location
Background
Cross Reference to Related Applications This application is related to the following commonly-owned patent applications, each of which is hereby incorporated by reference herein: Application Serial No. 09/870,561, filed on May 30, 2001, entitled "Method and Apparatus for Printing Remote Images Using a Mobile Device and Printer";
Application Serial No. 10/022,924, filed December 18, 2001, entitled "Method and Apparatus for Printing Remote Images Using a Network-Enabled Printer"; Application Serial No. 09/842,754, filed April 26, 2001, entitled "Method And Apparatus For Remote Processing And Sharing Of Digital Images";
Application Serial No. 09/870,538, filed May 30, 2001, entitled "Method and System for Generating a Permanent Record of a Service Provided to a Mobile Device"; Application' Serial No. 09/870,536, filed on May 30,
2001, entitled "Method and System for Remote Utilizing a Mobile Device to Share Data Objects";
Application Serial No. 10/024,068, filed on December 18, 2001, entitled "Method and Apparatus for Providing Output from Remotely Located Digital Files Using a Mobile Device and Output Device"; and
Application Serial No. 10/023,245, filed December 18, 2001, entitled "Method and System for Generating a Permanent Record of a Service at a Remote Printer."
Field of the Invention
The present invention relates to techniques for transmitting content over a communications network and, more particularly, to techniques for uploading content from a device to a remote network location.
Related Art
The Internet, and in particular the World Wide Web (the "Web") , is increasingly being used to store and exchange information and to perform commercial transactions. Although the Web was originally only capable of storing and displaying textual information, the Web may now be used to store, display, and exchange a wide variety of textual, graphical, and audiovisual information such as digital images and full-motion video.
Digital photography, for example, is becoming increasingly popular, spurred in large part by the advent of low-cost, high-quality digital cameras. An increasing number of web sites allow users to upload digital photographs and other digital images to the Web, whereby such images may subsequently be viewed, shared, edited, and printed on conventional printers using computers connected to the Web using conventional Internet connections. To upload an image or other content to a web site from a mobile device (such as a digital camera) , a user must typically use a conventional desktop or laptop computer to establish a Web connection using a conventional modem or other network connection device. The user then provides the content to the computer, such
as by transferring the content from a floppy disk, CD, or the mobile device's memory to the computer. The user then selects a remote destination for the content. The user may, for examine, select a remote web site (such as the web site of an online photo album service) or another user as the remote destination.
The user then transmits the selected content to the selected remote destination. The transmission method that is used may vary depending on the kind of remote destination that is selected. If, for example, the remote destination is a web site, the user may transmit the content using conventional File Transfer Protocol (FTP) software or some other file transfer means. If the remote destination is an online photo album service or file storage service, the service may require the user to upload the content using the service' s proprietary software or a web-based interface provided by the service. If the remote destination is another person, the user may need to use email software to transmit the content to the other person as an email attachment.
The content transmission process just described can be tedious, time-consuming, and error-prone for a variety of reasons. For example, the process described above may require the user to engage in many manual steps, use a variety of different software programs, and provide a variety of information to the computer. The process may also require the user to have a significant amount of technical knowledge and proficiency with using several different kinds of software and/or hardware.
Assume, for example, that the content to be transmitted is a digital photograph stored in the memory of a digital camera. To provide the digital photograph to the computer, the user may need to physically connect the camera to the computer using a cable or other connection. Alternatively, the user may need to remove the camera' s memory from the computer and insert the memory into a memory reader. To transfer the digital photograph to the computer, the user may need to initiate a "copy" operation using the computer's operating system or initiate a "transfer" operation using proprietary software associated with the user' s particular digital camera.
To transmit the content to a desired remote destination, the user must typically identify the remote destination's online "address," such as a web page address or an email address. To successfully transmit information to the desired remote destination, the user must therefore keep a record of and have access to the destination's address. It can be difficult and tedious for users, particularly novice and/or casual computer users, to keep track of large numbers of online addresses. Furthermore, the user may not have access to the necessary address at a particular time if, for example, the user is traveling. For these and other reasons it may be difficult or impossible for the user to provide the remote destination' s address to the computer, thereby making it difficult or impossible to transmit the content to the remote destination. Furthermore, as described above, the particular transmission method that is required to transmit
particular content may vary depending on the kind of content and/or the selected remote destination. The user may, for example, need to use multiple software programs to transmit different kinds of content and/or to transmit content to multiple destinations. For example, it may be necessary to use FTP software to transmit content to web sites and to use email software to transmit content to other users. As a result, the user may need to learn how to use each such software program to transmit content to particular kinds of destinations. This can be difficult and time-consuming, particularly for novice and/or casual computer users. These problems are further compounded in the situation where the user desires to transmit particular content to multiple remote destinations simultaneously. The user may, for example, desire to transmit a digital image simultaneously to several friends and to an online photo album service for storage. In such a situation, the user may need to initiate a separate manual transmission of the content for each desired destination.
The problems described above are also further compounded in the increasingly common situation in which the user desires to permanently store content at a remote location (such as an online file storage service) rather than on the hard drive of the user's computer. In such a case, the user may transmit content (such as digital photographs) to an online service and then erase, overwrite, discard, or otherwise not retain an original copy of the content locally. If the user subsequently desires to transmit some or all of the content to another remote destination, it may be necessary for the
user to engage in a significant amount of tedious and time-consuming activity. If, for example, the online service at which the content is remotely stored does not provide a feature for transmitting the content to another person by email, the user may need to download ■ the content from the online service to the user's local computer and then transmit the content to the other person using email software, which can be tedious and time-consuming for all of the reasons described above. Furthermore, the requirement that the source of the content (e.g., a digital camera) be connected to a host computer has a variety of disadvantages. For example, a mobile computer user who desires the ability to transmit content from a variety of locations (such as at home and at the office) typically must have access to a Web- connected computer in each such location. Using the techniques described above, the content source must be connected to a computer to upload content to the Web and to transmit the content to services and other users. As a result, a user who wishes to transmit such content may be required to travel with both the content source and a laptop computer, or may be limited to uploading content from locations at which a Web-connected desktop computer is available. The requirement that the content source be connected to a computer therefore limits the mobility of the user and limits the range of locations from which content may be uploaded. This may be particularly problematic when the content source is a mobile device, such as a digital camera.
What is needed, therefore, are improved techniques for uploading content from a device to a remote location. Summary Techniques are disclosed for uploading content (such as a digital photograph) from a content upload device to a content server over a communications network, and for automatically forwarding the content from the content server to one or more remote destinations. A user of the content upload device may cause the content upload device to upload the content to the content server by initiating a single action, such as pressing a single button on the content upload device, and without providing information identifying the user to the content upload device. Upon receiving the content, the content server may add the content to a queue, referred to as a content outbox, associated with the user. The content server may automatically forward the content in the user's content outbox to one or more remote destinations specified by preferences associated with the user's content outbox. Additional aspects and embodiments of the present invention and advantages thereof will be described in more detail below.
Brief description of the drawings
FIG. 1 is a data flow diagram of a system for uploading content from a mobile device to a content server and for forwarding the content from the content server to a content destination according to one embodiment of the present invention;
FIG. 2 is a block diagram of a user content account according to one embodiment of the present invention;
FIG. 3 is a flow chart of a method that is used by a content server to receive and automatically forward content to one or more remote destinations according to one embodiment of the present invention; FIG. 4 is a flow chart of a method that is used by a content server to select one or more remote destinations for content based on the type of the content according to one embodiment of the present invention; and
FIG. 5 is a flow chart of a method that is used by a content server to forward content to one or more remote destinations according to one embodiment of the present invention. Detailed description
Techniques are disclosed for uploading content (such as a digital photograph) from a content upload device to a content server over a communications network, and for automatically forwarding the content from the content server to one or more remote destinations. A user of the content upload device may cause the content upload device to upload the content to the content server by initiating a single action, such as pressing a single button on the content upload device, and without providing information identifying the user to the content upload device. Upon receiving the content, the content server may add the content to a queue, referred to as a content outbox, associated with the
user. The content server may automatically forward the content in the user' s content outbox to one or more remote destinations specified by preferences associated with the user's content outbox. Referring to FIG. 1, a system 100 is shown which is used to upload content 104 from a content upload device 106 to a content server 118 and to forward the content 104 to a content destination 128 according to one embodiment of the present invention. The system 100 will first be described in general overview. Additional details and alternative embodiments of the system 100 will then be described.
A user 102 possesses content 104 stored on a content medium 103. The content 104 may be any kind of content, such as digital images (e.g., digital photographs captured using a digital camera) , digital video (e.g., MPEG, AVI, or QuickTime® files), digital audio (e.g, MP3 files), digital text documents (e.g., word processing documents) , analog text and/or images (such as printed text or conventional photographs) , or any combination thereof. Although in particular examples the content 104 may be described as a single file containing information (such as a single digital photograph) , it should be appreciated that the content 104 may include a plurality of files of the same or varying types. More generally, the content 104 may be any information that may be transferred to the content upload device 106.
Furthermore, the content 104 need not be generated externally to the content upload device 106. Rather, the content upload device 106 may itself generate the
content 104, as in the case where the content upload device 106 is a digital ' camera. In such a case, it is not necessary for the user 102 to provide the content 104 to the content upload device 106. The user 102 provides the content 104 to the content upload device 106 through a media reader 105 coupled to the content upload device 106. The media reader 105 reads the content 104 (or a portion thereof) from the content medium 103 and transfers the content 104 to the content upload device 106. The content upload device 106 may include a memory or other storage medium in which the content 104 is stored.
The content upload device 106 establishes a network connection with a content server 118 over a communications network 116. The content upload device
106 uploads the content 104, in a content upload message 114, to the content server 118. As illustrated in FIG. 1, a data port 120 on the content upload device 106 is connected to communications network 116 through a cellular telephone 115, without the use of an intermediate host computer.
Referring to FIG. 3, a flow chart is shown of a method that is used by the content server 118 in one embodiment of the present invention to receive and automatically forward content 104 to the content destination 128. The content server 118 receives the content upload message 114 (step 302) and identifies the user 102 based on the contents of the content upload message 114 (step 304) . For example, the content server 118 may identify a content account 120 associated with the user 102 based on information contained in the
content upload message 114. Although the content server 118 may maintain user content accounts for a plurality of users, only the user content account 120 associated with the user 102 is shown in FIG. 1 for ease of illustration and explanation.
After identifying the user content account 120 associated with the user 102, the content server stores the content 104 in a content outbox 126 associated with the content account 120 (step 305) . Additional information that is associated with the content account 120 will be described in more detail below with respect to FIG. 2. The content server 118 identifies content destination 128 and forwards (transmits) the content 104, in a content forward message 130, to the content destination 128 over the communications network 116.
The content server 118 may, for example, identify a type of the content 104 (step 306) and select the content destination 128 based on the type of the content 104 (step 308) . The content server 118 may select a forwarding method based on the content type or the selected content destination 128 (step 310) . The content server 118 may forward the content 104 to the content destination 128 using the selected forwarding method (step 312) . Advantages of various embodiments of the system 100 will now be described briefly. In one embodiment, the user 102 may initiate uploading of the content 104 to the content server 118 using a single action. For example, the content upload device 106 may include content upload initiation means 108, such as a single button (with an appropriate label, such as "Go,"
"Transmit," or "Upload"). To initiate uploading of the content 104 to the content server 118, the user 102 may activate the content upload initiation means 108 (e.g., the single button) , in response to which the content upload device 106 may upload the content 104 to the content server 118 without requiring any additional action by the user 102. In another embodiment, in response to activation of the content upload transmission means 108, the content upload device 106 may both transfer the content 104 from the content medium 103 to the content upload device 106 (through the media reader 105) and upload the content 104 to the content server 118. As a result, the user 102 may initiate both the transfer of the content 104 to the content upload device 106 and the upload of the content 104 to the content server 118 using a single action. Furthermore, in yet another embodiment, the content server 118 may forward the content 104 to the content destination 128 automatically, i.e., without requiring any additional action by the user 102. As a result, a single action performed by the user 102 may initiate the transfer of the content 104 to the content upload device 106, the upload of the content 104 from the content upload device 106 to the content server 118, and the forwarding of the content 104 by the content server 118 to the content destination 128.
In another embodiment, the user 102 may initiate the transfer of the content 104 to the content upload device 106 and/or the uploading of the content 104 from the content upload device 106 to the content server 118 without providing information identifying the user (such
as an account name or password) to the content upload device 106 and/or the content server 118. For example, as described above, the user 102 may initiate transfer/upload of the content 104 simply by activating the content upload initiation means 108 (e.g., a single button) . As described in more detail below, the content server 118 may identify the user content account 120 associated with the user 102 automatically, i.e., without requiring the user 102 to provide any personal identifying information.
As used herein, the terms "information identifying the user" and "personal identifying information" refer to information that identifies the user 102 of the device 106 apart from the device 106 itself. In the case, for example, where the device ID 123 (described below) is a serial number or other unique identifier of the device 106, the device ID 123 does not constitute "information identifying the user," even though the device ID 123 may identify the user 102 indirectly if the user 102 is the sole user of the device 106.
Examples of "information identifying the user" include the user's name, address, telephone number, and social security number.
As a result of these and other features of various embodiments of the present invention, the user' s experience of transferring content 104 to the content upload device 106, uploading content 104 from the content upload device 106 to the content server 118, and forwarding the content 104 to the content destination 128, is greatly simplified compared to the experience associated with conventional
techniques for performing similar functions. For example, to upload the content 104 from the content upload device 106 to the content server 118, the user 102 may simply activate the content upload initiation means 108 (e.g., press a single button). The user 102 need not, in particular embodiments of the present invention, identify or input an address of the content server, input information identifying the user 102, or execute file-transfer software for transferring the content 104 to the content server 118. Rather, the content upload device 106 automatically establishes a network connection with the content server 118 and uploads the content 104 to the content server 118. As a result, the task of uploading content 104 to the content server 118 is greatly simplified and is particularly well-suited for use by novice and/or casual computer users. Similarly, in various embodiments of the present invention, forwarding of the content 104 from the content server 118 to the content destination 128 is automated, thereby relieving the user 102 of the responsibility for performing tasks that may be necessary to forward the content 104 to the content destination 128. As described in more detail below, the content server 118 may automatically select the content destination 128 based on preferences 125 previously specified by the user 102 and automatically forward the content 104 to the content destination 128 using an appropriate forwarding method.
A further advantage of various embodiments of the system 100 is that the user 102 may upload the content 104 to the content server 118 without connecting the content upload device 106 to a host computer, such as a conventional desktop or laptop computer. One advantage of this feature is that it may be possible for the user 102 to upload the content 104 from a wider variety of locations, since the user's choice of locations from which to upload the content 104 is constrained only by the mobility of the content upload device 106 and the availability of a network connection over which the content upload device 106 may connect to the content server 118. The lack of a requirement that the user 102 connect the content upload device 106 to a conventional computer may also simplify the process of uploading the content 104 to the content server 118, by eliminating the steps of physically connecting the content upload device 106 to the computer and transferring the content 104 from the content upload device 106 to the computer, and all of the potential difficulties that such steps entail .
Various embodiments of the system 100 will now be described in more detail.
The content medium 103 may be any medium that is suitable for storing the content 104. The content medium 103 may, for example, be any of a variety of kinds of input media, such as one or more PCMCIA cards, ZIP disks, compact flash cards, SmartMedia®, Memory Stick® memory, CDs, floppy disks, photographic negatives or prints, or a digital camera.
The media reader 105 may be any device that is capable of reading the content 104 from the content medium 103. The media reader 105 may, for example, be a PCMCIA interface, compact flash card reader, SmartMedia® reader, Memory Stick® memory reader, CD drive, floppy disk drive, scanner, or I/O port (such as a Universal Serial Bus (USB) port or a conventional serial or parallel port) . The content medium 103 may be coupled to the media reader 105 in any manner, such as by a cable connection, network connection, or by inserting the content medium 103 into an appropriate interface on the media reader 105, as in the case of floppy disks and CDs.
The media reader 105 may be internal or external to the content upload device 106. Furthermore, the media reader 105 may be permanently or temporarily coupled to the content upload device 106 using any kind of connection. In one embodiment, for example, the content upload device 106 is itself a media reader (such as a digital camera memory reader) that has been modified to include means for uploading the content 104 to the content server 118 using the techniques described herein.
The content upload device 106 may be any kind of mobile device, such as a mobile printer, digital camera, Personal Digital Assistant (PDA) , cellular telephone, or any combination thereof. The content upload device 106 need not, however, be a mobile device. The content upload device 106 may, for example, be a conventional computer, such as a conventional desktop or laptop computer. Although
implementing the content upload device 106 as a conventional computer may limit the mobility of the content upload device 106, in such cases the content upload device 106 may still operate advantageously in conjunction with features of various embodiments of the present invention, such as the ability to upload content 104 which is automatically forwarded by the content server 118 to the remote content destination 118. As shown in FIG. 1, the content upload device 106 is connected to communications network 116 through cellular telephone 115, which may perform the functions of a conventional modem on behalf of the content upload device 106. Devices other than cellular telephone 115 may be used to perform the same functions, such as a conventional analog modem, cable modem, Digital Subscriber Line (DSL) modem, or network interface card (NIC) . Network communications device 110 may perform minimal communications functions, such as compressing and serially transmitting content 104 to cellular telephone 115, since cellular telephone 115 is responsible for performing the more substantial task of uploading the content 104 on behalf of the content upload device 106. The network communications device 110 may also be omitted entirely from the content upload device 106.
Alternatively, the content upload device 106 may communication over the network 116 directly through the data port 112, without the use of the cellular telephone 115. In such a case, network
communications device 110 may be any kind of communications device, such as a conventional analog modem, cable modem, Digital Subscriber Line (DSL) modem, or network interface card (NIC) . The network communications device 110 may be either internal or external to the content upload device 106, so long as the content upload device 106 includes a controller suitable for using the network communications device 110 to communicate over the communications network 116.
The content upload device 106 may establish a connection to the content server 118 in any of a variety of ways. For example, consider one embodiment in which the communications network 116 is a cellular telephone network. The content upload device 106 may initiate a connection with the content server 118 over the network 116 by instructing the cellular telephone to dial a predetermined telephone number associated with the content server 118. The content server 118 may be equipped with a corresponding modem that answers the telephone call placed by the cellular telephone 115. The content server 118 and cellular telephone 115 may then negotiate and establish a connection over the network 116 in any of a variety of ways that are well- known to those of ordinary skill in the art.
Alternatively, the content upload device 106 may instruct the cellular telephone 115 to call a predetermined toll-free telephone number to connect to a computer (not shown) that may provide the content upload device 106 with a telephone number or other address of the content server 118. Techniques for locating the
content server 118 in this manner are described in more detail in the above-referenced patent application entitled "Method and Apparatus for Remote Processing and Sharing of Digital Images." The content upload device 106 may obtain the telephone number for the content server 118 in any of a variety of ways. For example, upon activation of the content upload initiation means 108, the content upload device 106 may prompt the user 102 for the content server' s telephone number, which the user 102 may then enter through a keypad on the content upload device 106. Alternatively, for example, the content upload device 106 may allow the user 102 to pre-configure the content upload device 106 with the telephone number or Internet address of the content server 118 so that the content upload device 106 may automatically connect to the content server 118 without having to prompt the user for such information each time the content upload device 106 uploads content to the content server 118. In any case, the content upload device 106 may store the telephone number or other addressing information for the content server 118 in a ROM, RAM, flash memory, or other storage medium.
As shown in FIG. 1, the content upload device 106 includes a content upload device identifier (ID) 123 which identifies the content upload device 106. As described in more detail in the above-referenced patent application entitled "Product Registration System," the device ID 123 may, for example, be: (1) a serial number or other identifier assigned to the content upload device 106 at the time of manufacture, or (2) an
identifier previously assigned to the content upload device 106 by the content server 118. The content upload device ID 123 may be stored, for example, in a ROM, EPROM, or flash memory. As shown in FIG. 1, the content upload device 106 includes a copy of the content 104. It should be appreciated, however, that this is not a requirement of the present invention. The content upload device 106 may, for example, upload the content 104 to the content server 118 "on the fly" as the content 104 is being transferred from the content medium 103 to the content upload device 106, in which case a copy of the entire content 104 may not be stored in the content upload device 106 at any one time. Furthermore, less than all of the content 104 in the content medium 103 may be transferred to the content upload device 106. The content 104 may be stored in the content upload device 106 in any kind of storage medium, such as RAM or on a hard disk. The content 104 may be erased from the content upload device 106 after it has been transmitted to the content server 118.
As described above, some or all of the content 104 may be transferred from the content medium 103 to the content upload device 106. The content upload device 106 may, for example, include means (not shown) that allow the user to select particular portions of the content 104 (e.g., particular digital photographs) to transfer to the content upload device 106.
The content upload message 114, which contains some or all of the content 104 provided by the user, may be formatted and transmitted according to any appropriate
network communications protocol, such as the File Transfer Protocol (FTP) or the Hypertext Transfer Protocol (HTTP) . Examples of techniques that may be used to upload images to the content server 118 are described in more detail in above-referenced patent application entitled "Method and System for Remote Utilizing a Mobile Device to Share Data Objects." The communications network 116 may be any network or combination of networks. For example, the communications network may be a POTS network, wireless network, Local Area Network (LAN) , Wide Area Network (WAN), or an internet such as the public Internet. The content upload device 106, content server 118, and content destination 128 need not all communicate over the same network. The single communications network 116 is shown in FIGS. 1 and 4 merely for ease of illustration.
The content server 118 may be implemented in hardware, software, firmware, or any combination thereof. For example, the content server 118 may be implemented in software executing on a computer accessible over the communications network 116. The content server 118 need not be a "server" according to a client-server architecture. Rather, the content server 118 may be implemented using any means for performing the functions described herein.
Referring to FIG. 2, operation of the system 100 will now be described in more detail with respect to features of the user content account 120 according to one embodiment of the present invention. As described above, the user content account 120 contains information
related to a content account that is associated with the user 102 and maintained by the content server 118. The content server 118 may be associated with a content service which allows users (such as the user 102) to upload, download, and share content. The content service may, for example, be a service for storing, printing, and sharing digital photographs. The service may also provide a web site or other interface through which the user 102 may access and modify information stored in the user content account 120.
The user content account 120 includes information
122 identifying the user 102, such as the user's real name 212, postal address 214, telephone number 216
(e.g., the telephone number of the cellular telephone 115), email address 218, payment information 220 (such as a credit card number and expiration date) , user name 222, and password 224. The particular identifying information 122 shown in FIG. 2 is provided merely for purposes of example and does not constitute a limitation of the present invention. Rather, the identifying information 122 may be any information that is used by the content server 118 to distinguish the user 102 from other users.
The user content account 120 also include the content upload device ID 123 of the content upload device 106. As described in more detail in the above- referenced patent application entitled "Product Registration System," the content server 118 may associate one or more content' upload device IDs with each user content account. The content upload device ID
123 may be obtained and recorded in the user content
account 120 when the user content account 120 is created.
As described above, in one embodiment the content server 118 identifies the user 102 that is associated with the content upload device 106 when the content server 118 receives the content upload message 114 (FIG. 3, steps 302 and 304) . In one embodiment, the content server 118 identifies the user 102 as follows. The content upload device 106 provides the content upload device ID 123 in the content upload message 114 that is transmitted to the content server 118. Upon receiving the content upload message 114, the content server 118 extracts the content upload device ID 123 from the content upload message 114 and searches through the user content accounts (not shown) to identify the user content account that includes the content upload device ID 123. The content server 118 determines that the identified user content account is the user content account that is associated with the user 102. The content server 118 may thereby use the content upload device ID 123 transmitted by the content upload device 106 to identify the user 102 without requiring the user to transmit personal identifying information (such as the username 222 and/or password 224) each time the user uploads content to the content server 118.
Although the user 102 may need to provide such personal identifying information once, such as at the time of the creation of the user content account 120, the user 102 need not provide such information again because the content upload device ID 123 serves as a key to the user content account 120. In an alternative embodiment, the
content upload device ID 123 may be any identifier that uniquely identifies the user 102. As a result, if the user 102 owns and/or uses multiple devices, each such device may share a common device ID that is associated with the user and that the content server 118 may use to identify the user 102 as described above.
Alternatively, the content server 118 may use caller ID messages (not shown) to identify the telephone number 216 associated with the content upload device 106 and thereby identify the user 102, as described in more detail in the above-referenced patent application entitled "Method and Apparatus for Printing Remote Images Using a Mobile Device and Printer." In such a case, the telephone number 216 acts as a unique identifier of the user 102.
Although in certain embodiments of the present invention the content upload device 106 does not transmit information identifying the user 102 to the content server 118, this is not a requirement of the present invention. Rather, the content upload device 106 may store and transmit information identifying the user 102, such as the user's username 222 and password 224, to the content server 118. The content server 118 may identify the user 102 based on such information. The content server 118 may also automatically log the user in to the user content account 120 using such information.
As shown in FIG. 2, the user content account 120 includes content outbox 126. The content outbox 126 may, for example, include content (such as content 104) that has been uploaded by the user 102 from the content
upload device 106. The content outbox 126 may, however, include other content. For example, the content outbox 126 may include content generated as a result of a transaction involving the user 102. If, for example, the user 102 purchased a movie ticket using an online movie ticket purchasing service (such as AOL Movietone®) , the ticket purchasing service may transmit a digital version of the movie ticket to the content server 118, which may store the digital movie ticket in the content outbox 126. In this way, the content outbox 126 may serve not only as an outbox, but as an inbox, as described in more detail in the above-referenced patent application entitled "Method and Apparatus for Printing Remote Images Using a Network-Enabled Printer." Alternatively, the user's outbox 126 and inbox may be distinct .
As mentioned above, when the content server 118 receives the content 104 (in the content upload message 114), the content server 118 stores the content in the content outbox 126 (FIG. 3, step 305) . As shown in FIG. 2, the content outbox 126 may include a plurality of content 126a-n. The content server 118 may, for example, add each piece of content that it receives in a first-in first-out (FIFO) queue in the content outbox 126.
As described above, the content server 118 forwards the content 104 to the content destination 128 (FIG. 3, step 312) . More specifically, the content server 118 may transmit the content 126a-n in the content outbox 126 in the order in which they were received, or in any other order. The content server 118 may delete content
from the content outbox 126 as it is transmitted to the content destination 128. In other words, the content outbox 126 may serve as a temporary content store which is used to store content only until it is forwarded to the content destination 128.
The content server 118 may accumulate content in the content outbox 126 until the occurrence of a particular event. For example, the content server 118 may accumulate content that it receives until the' user 102 instructs the content server 118 (using, for example, a web-based interface) to transmit some or all of the content 126a-n in the content outbox 126 to the content destination 128. Alternatively, the content server 118 may automatically forward any content that it receives (such as content 104) to the content destination 128 without waiting for any instruction from the user 102.
It should be appreciated that the content upload device 106 and/or the content server 118 may perform various kinds of processing on the content 104. Such processing may include, for example, compressing the content 104, encrypting the content 104, and performing image processing on the content 104, such as changing the spatial resolution and/or color depth of the content 104 to make it suitable for printing on a mobile printer. Examples of various kinds of processing that may be performed on the content 104 are described in more detail in the above-referenced patent application entitled "Method and Apparatus for Printing Remote Images Using a Mobile Device and Printer."
As mentioned above, the content server 118 may automatically select one or more content destinations for the content 104 (FIG. 3, step 308) . Although only one content destination 128 is shown in FIG. 2, this is not a limitation of the present invention. Rather, the content server 118 may select multiple content destinations and forward the content 104 to the multiple selected destinations. Therefore, any discussion herein which refers to the content destination 128 should be understood to apply equally to the use of multiple content destinations.
The content server 118 may, for example, select the content destination 128 based on the type of the content 104. For example, if the content 104 is a text document (such as a Microsoft Word® word processing file) , the content server 118 may select an email recipient as the content destination 128. If, however, the content 104 is a digital image, the content server 118 may select a digital image storage service as the content destination 128. From these examples it should be appreciated that the content server 118 may also select a forwarding method (e.g., email or file transfer) based on the content type.
Techniques which the content server 118 may use to select the content destination 128 and/or content forwarding method will now be described in more detail. Referring again to FIG. 2, the user content account 120 includes content destination preferences 125. In general, the content destination preferences 125 specify the preferred content destinations and/or forwarding
methods that the content server 118 is to apply to content 126a-n stored in the user's content outbox 126. In the particular embodiment illustrated in FIG. 2, the content destination preferences 125 are implemented as a table having a plurality of rows 202a-m, wherein each row contains a record specifying preferences associated with a particular content type. Each record includes a content type 224, which indicates the type of content to which the record corresponds. Content types may be specified in any way, such as by using filename extensions (e.g., "doc", "jpg", "avi") corresponding to file types suitable for storing particular types of content. The remaining fields in each record provide information about the particular content destination to which the record corresponds.
Referring to FIG. 4, a flowchart is shown of a method that is used by the content server 118 to select one or more remote destinations (such as content destination 128) for the content 104 based on the type of the content 104 according to one embodiment of the present invention. The content server 118 creates an empty list of content destinations D for the content 104 (step 402) . The content server 118 identifies the type Tc of the content 104 (step 404) , such as by examining the filename extension of the file in which the content 104 is stored and identifying the type of the content 104 by reference to a pre-configured table which maps filename extensions to content types.
The content server 118 searches through the rows 202a~m of the content destination preferences 125 to identify one or more records corresponding to the type
of the content 104. More specifically, the content server 118 enters into a loop over each destination preference P in the content destination preferences 125 (step 406) . The content server identifies the content type Tp of preference P by reference to the content type 224 shown in FIG. 2 (step 408) . If the content type TP stored in preference P is the same as the content type Tc of the content 104 (step 410), then the preference P contains a destination to which content of type Tc should be forwarded, and the content server 118 adds the contents of preference P to the list D of content destinations (step 412) . Content server 118 repeats steps 408-412 for each of the remaining preferences P in the content destination preferences 125 (step 414). Upon completion of the process 308 shown in FIG. 4, the list D contains the destination (s) that the content destination preferences 125 associate with the content type of the content 104.
The content server 118 may also select a forwarding method to use to forward the content 104 to the destination (s) selected in step 308. For example, as shown in FIG. 2, each record in the content destination preferences 125 may include a URL field 222, which specifies a URL of the corresponding content destination. Such a URL may, for example, be a web site address or an email address. Referring to FIG. 5, a flow chart is shown of a method that is used by the content server 118 to select one or more forwarding methods to use to forward the content 104 to the destinations selected in step 308, and to forward the
content 104 to the destinations using the selected forwarding method (s) .
For each destination D (step 502), the content server 118 determines whether the destination is a web site (step 504) . The content server 118 may perform this step by, for example, examining the URL field 222 (FIG. 2) of the destination. If the destination D is a web site, then the content server 118 selects the HyperText Transfer Protocol (HTTP) as the forwarding method (step 506) ; otherwise, the content server 118 selects the Simple Mail Transfer Protocol (SMTP) as the forwarding method (step 508) . Although the process shown in FIG. 5 only supports two forwarding methods, additional forwarding methods, such as the File Transfer Protocol (FTP) may also be supported.
If the destination D is a web site, the content server 118 forwards the content 104 to the web site by logging in to the web site using the username 206 and password 208 associated with the destination D (step 510) , if necessary, and transferring the content 104 to the web site using HTTP (step 512) . The content destination 128 may, for example, be a web site of a service, such as an online digital photo album service, with which the user 102 has a separate account (i.e., an account that is distinct from the user's content account 120). If the destination D is not a web site (e.g., if the destination D is an email address) , the content server 118 forwards the content 104 to the email address by logging in to the user's SMTP account using the username 206 and password 208 associated with the destination D, and by transmitting the content 104 to
the email address as an email message or an email attachment using SMTP (step 516) . The content server 118 by store an IP address (not shown) for the user' s SMTP account for use in step 514. Content server 118 repeats steps 504-516 for each destination D (step 518), thereby forwarding the content 104 to each of the destinations using an appropriate forwarding method.
It should be appreciated that each content type 224 may be associated with either a single content destination or with multiple content destinations. If the content type of the content 104 is associated with multiple content destinations, the content server 118 may forward the content 104 to each of the multiple content destinations. The user 102 may, for example, prefer that digital photographs be forwarded both to an online photo album service and to a preselected group of family members.
The content destination preferences 125 may be editable by the user 102. The service associated with the content server 118 may, for example, provide proprietary software and/or a web-based interface which allows the user to modify the content destination preferences 120. Such an interface may, for example, allow the user 102 to edit the URL 222, username 206, and password 208 that is associated with each content type.
The particular content destination preferences 125 shown in FIG. 2 are provided merely for purposes of example and do not constitute limitations of the present invention. Rather, the content server 118 may select
one or more content destinations 128 in any manner, and the content destination preferences 125 are not limited to implementation using any particular data structure or to the use of any particular fields. One advantage of the system 100 described above is that the "intelligence" of the system 100 may be provided entirely or primarily in the content server 118, rather than in the user 102, the content upload device 106, and/or the content destination 128. For example, as described above, the content upload device 106 may automatically establish a network connection with the content server 118 and automatically upload the content 104 to the content server 118, thereby relieving the user 102 of the responsibility for providing a network address for the content server 118, establishing a network connection with the content server 118, providing a username and/or password to the content server 118, and performing other tasks typically associated with uploading content to remote locations over the Internet.
Similarly, as described above, the content server 118 may automatically select the content destination 128, select a forwarding method for forwarding the content 104 to the content destination 128, and performing the actual forwarding of the content 104 to the content destination. This relieves both the user 102 and the content upload device 106 of the responsibility for performing such tasks. In particular, placement of such functionality in the content server 118 may enable the content upload device 106 to be implemented as a small, mobile, and
inexpensive device with relatively little hardware and/or software. In various embodiments of the present invention the content upload device 106 may include only simple network communications capabilities, such as the ability to serially transmit the content 104 to the cellular telephone 115, rather than the kinds of extensive networking and processing capabilities that are typically provided by conventional desktop and laptop computers . A further advantage of various embodiments of the system 100 is that the user 102 may use the content upload device 106 to upload content from a variety of content sources, such as digital cameras, scanners, video cameras, and still photographs. The user 102 may use the content upload device 106 to upload content from such sources even if such sources are not themselves capable of communicating over the network, since the content upload device 106 provides the necessary network communication capabilities. It is to be understood that although the invention has been described above in terms of particular embodiments, the foregoing embodiments are provided as illustrative only, and do not limit or define the scope of the invention. Various other embodiments, including but not limited to the following, are also within the scope of the claims.
The content upload device 106 is described herein as performing various functions, such as receiving the content 104 from the content medium 103 and uploading the content 104 to the content server 118. It should be appreciated that such
functionality may be implemented within the content upload device 106 in any manner, such as by using hardware, software, firmware, or any combination thereof. In general, a device "controller" refers herein generally to any such subsystem (s) of the content upload device 106 that perform the functions described herein.
The content upload device 106 may also be configured to download content from the content server 118 and to print such content, as described in more detail in the above-referenced patent application entitled "Method and Apparatus for Printing Remote Images Using a Network-Enabled Printer." The content upload device 106 may, for example, include a content download initiation means (not shown) , such as a button labeled "Print" or "Download" in addition to the content upload initiation means. The single content upload device 106 may therefore be used both to upload and to download content.
The term "connection" as used herein (e.g., a connection between content upload device 106 and content server 118) refers to any kind of connection that enables communication between or among two or more devices. For example, a "connection" may be a physical and/or logical connection enabled by any combination of wired and/or wireless networks. Although examples are provided above in which content 104 is uploaded to the content server 118 in response to actions performed by the user 102, this is not a limitation of the present invention. Rather, content
104 may be automatically uploaded without any prompting by the user 102. For example, the content upload device 106 may automatically upload the content 104 to the content server 118 upon establishment of a network connection between the content upload device 106 and the content server 118. Such a connection may be established automatically when, for example, the content upload device 106 enters the range of a wireless network through which the content server 118 is accessible. In general, the techniques described above may be implemented, for example, in hardware, software, firmware, or any combination thereof. The techniques described above may be implemented in one or more computer programs executing on a programmable computer including a processor, a storage medium readable by the processor (including, for example, volatile and nonvolatile memory and/or storage elements) , at least one input device, and at least one output device. Program code may be applied to data entered using the input device to perform the functions described and to generate output information. The output information may be applied to one or more output devices.
Elements and components described herein may be further divided into additional components or joined together to form fewer components for performing the same functions.
Each computer program within the scope of the claims below may be implemented in any programming language, such as assembly language, machine language, a high-level procedural programming language, or an object-oriented programming language. The programming
language may be a compiled or interpreted programming language.
Each computer program may be implemented in a computer program product tangibly embodied in a machine- readable storage device for execution by a computer processor. Method steps of the invention may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output.
It is to be understood that although the invention has been described above in terms of particular embodiments, the foregoing embodiments are provided as illustrative only, and do not limit or define the scope of the invention. Other embodiments are also within the scope of the present invention, which is defined by the scope of the claims below. Other embodiments that fall within the scope of the following claims includes include, but are not limited to, the following.