Patent Publication Number: US-7899880-B2

Title: Information processing apparatus, method, program, and storage medium for synchronizing content

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an apparatus, method, program, and storage medium for efficiently managing an image. 
     2. Description of the Related Art 
     So-called online photo systems have recently become popular; they allow a user to upload images obtained with a camera to a Web server (to be referred to as a server hereinafter) and allow user&#39;s friends and acquaintances to access the Web server and view the images. In these systems, images move from a local personal computer (to be referred to as a “PC” hereinafter) to the server upon upload. 
     As the number of images increases, the work of uploading images to the server or deleting them from the server becomes cumbersome. 
     In order to prevent this, a method of synchronizing images stored in the local PC with those in the server is available. To synchronize data between apparatuses, conventionally, one apparatus refers to the contents of the other apparatus, and upon detecting a change in data, updates the data of its own to obtain data identical to the other apparatus (e.g., Japanese Patent Laid-Open No. 11-154110). 
     However, Japanese Patent Laid-Open No. 11-154110 discloses only an arrangement that reflects the data of the synchronization source on the data of the synchronization destination between the two apparatuses. 
     In an online photo system, normally, a user selects images to be on public view and uploads them to a server. Conversely speaking, the user uploads, to the server, no images to be kept in private. 
     The arrangement of Japanese Patent Laid-Open No. 11-154110 however uploads all images in the local PC to the server. To solve this problem, the user must select images or folders to be uploaded one by one, and for this, confirm images in the local PC and images in the server; the result is cumbersome. 
     SUMMARY OF THE INVENTION 
     The present invention has been made in consideration of the above-described problem, and has as its object to ensure synchronization between images in a local PC with those in a server without bothering a user while reflecting the user&#39;s intension of whether to make an image open to the public. 
     In order to solve the above-described problems and achieve the object, according to the first aspect of the present invention, there is provided an information processing apparatus comprising a first transmission unit which copies a plurality of contents stored in a storage device as groups and transmits each group of contents to an external device connected through a communication link, an instruction unit which instructs to synchronize the content stored in the storage device with the content transmitted by the first transmission unit and stored in the external device, a reception unit which receives, from the external device on the basis of the instruction, identification information to identify the group stored in the storage device, a comparison unit which compares the identification information received by the reception unit with the identification information to identify the group stored in the storage device, and a synchronization unit which synchronizes contents that belong to groups determined to have identical identification information compared by the comparison unit. 
     According to the second aspect of the present invention, there is provided an information processing apparatus comprising a first reception unit which receives, from an external device, an instruction to request identification information to identify a group containing a plurality of contents, a first transmission unit which transmits the identification information to the external device in response to the instruction received by the first reception unit, a second reception unit which receives, from the external device, an instruction to synchronize contents in a group corresponding to, of the identification information transmitted by the first transmission unit, identification information of a group stored in the external device, and a synchronization unit which synchronizes the contents on the basis of the instruction received by the second reception unit. 
     According to the third aspect of the present invention, there is provided an information processing method comprising a first transmission step of copying a plurality of contents stored in a storage device as groups and transmitting each group of contents to an external device connected through a communication link, an instruction step of instructing to synchronize the content stored in the storage device with the content transmitted in the first transmission step and stored in the external device, a reception step of receiving, from the external device on the basis of the instruction, identification information to identify the group stored in the storage device, a comparison step of comparing the identification information received in the reception step with the identification information to identify the group stored in the storage device, and a synchronization step of synchronizing contents that belong to groups determined to have identical identification information compared in the comparison step. 
     According to the fourth aspect of the present invention, there is provided an information processing method comprising a first reception step of receiving, from an external device, an instruction to request identification information to identify a group containing a plurality of contents, a first transmission step of transmitting the identification information to the external device in response to the instruction received in the first reception step, a second reception step of receiving, from the external device, an instruction to synchronize contents in a group corresponding to, of the identification information transmitted in the first transmission step, identification information of a group stored in the external device, and a synchronization step of synchronizing the contents on the basis of the instruction received in the second reception step. 
     According to the fifth aspect of the present invention, there is provided a program causing a computer to execute a first transmission step of copying a plurality of contents stored in a storage device as groups and transmitting each group of contents to an external device connected through a communication link, an instruction step of instructing to synchronize the content stored in the storage device with the content transmitted in the first transmission step and stored in the external device, a reception step of receiving, from the external device on the basis of the instruction, identification information to identify the group stored in the storage device, a comparison step of comparing the identification information received in the reception step with the identification information to identify the group stored in the storage device, and a synchronization step of synchronizing contents that belong to groups determined to have identical identification information compared in the comparison step. 
     According to the sixth aspect of the present invention, there is provided a program causing a computer to execute a first reception step of receiving, from an external device, an instruction to request identification information to identify a group containing a plurality of contents, a first transmission step of transmitting the identification information to the external device in response to the instruction received in the first reception step, a second reception step of receiving, from the external device, an instruction to synchronize contents in a group corresponding to, of the identification information transmitted in the first transmission step, identification information of a group stored in the external device, and a synchronization step of synchronizing the contents on the basis of the instruction received in the second reception step. 
     Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a view showing the outline of a system according to the first embodiment; 
         FIG. 2  is a view showing the hardware configuration of a server; 
         FIG. 3  is a view showing the hardware configuration of a user PC; 
         FIG. 4  is a view showing the album management window of an image editing application; 
         FIG. 5  is a view showing an album setting window; 
         FIG. 6  is a view showing the data structure of a local album; 
         FIG. 7  is a view showing a local album image window; 
         FIG. 8  is a view showing the data structure of an image file in the local album; 
         FIG. 9  is a flowchart showing the procedure of album upload processing; 
         FIG. 10  is a view showing a user authentication window; 
         FIG. 11  is a view showing the album management window of an image editing application; 
         FIG. 12  is a view showing a local album image window; 
         FIG. 13  is a view showing the data structure of a Web album; 
         FIG. 14  is a view showing the data structure of an image in the Web album; 
         FIG. 15  is a view showing an album browsing window; 
         FIG. 16  is a view showing a Web album image browsing window; 
         FIG. 17  is a view showing a user comment input window; 
         FIG. 18  is a flowchart showing the procedure of processing of adding an image to the Web album; 
         FIG. 19  is a flowchart showing the procedure of synchronization processing of the local album and Web album; 
         FIG. 20  is a flowchart showing the sub-procedure of image synchronization processing  1 ; 
         FIG. 21  is a flowchart showing the sub-procedure of image synchronization processing  2 ; 
         FIG. 22  is a flowchart showing a procedure including processing of reflecting attached data of the Web album on the local album; 
         FIG. 23  is a flowchart showing the sub-procedure of the processing of reflecting attached data on the local album; and 
         FIG. 24  is a flowchart showing the procedure of synchronization processing of a local album and Web album. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     Preferred embodiments of the present invention will now be described in detail in accordance with the accompanying drawings. Note that each constituent element in the following embodiments is merely an example and does not intend to limit the scope of the invention. 
     First Embodiment 
       FIG. 1  is a view showing the outline of a system according to the first embodiment. Referring to  FIG. 1 , reference numeral  101  denotes a user communication terminal (to be referred to as a “user PC” hereinafter). The arrangement of the user PC  101  will be described later. 
     A digital camera  102  can transfer obtained images to the user PC  101  by wired or wireless communication. Although this embodiment exemplifies the digital camera  102 , images read by a scanner may be transferred to the user PC  101 . 
     A Web browser having a standard protocol capable of information transfer through the Internet  103  can run on the user PC  101 . The user PC  101  can access a photo site  105  through the Web browser using the standard protocol such as an http protocol. The user PC  101  can display, on the screen, the contents of the photo site  105  through the Web browser in accordance with Web information created in a description language such as HTML (Hyper Text Markup Language). 
     The user PC  101  accesses a server  104  and executes user registration in the photo site  105 . Upon user registration, the server  104  gives a my album URL, user ID, and password to the user PC  101 . The server  104  stores these pieces of information. The my album URL indicates the location of the user&#39;s my album area. The my album area is an area on the server, which is unique to the user and saves a Web album (to be described later). 
     The server  104  communicates with the user PC  101  and transfers data in accordance with an instruction from the user PC  101 . 
       FIG. 2  is a view showing the hardware configuration of the server  104 . 
     A CPU (Central Processing Unit)  201  controls devices connected to the CPU device on the basis of control programs stored in a ROM (Read Only Memory)  202  or external storage device  204 . 
     The ROM  202  holds various kinds of control programs and data. 
     A RAM (Random Access Memory)  203  has the work area of the CPU  201 , a data save area for error processing, and a control program load area. 
     The external storage device  204  can store the control programs and contents to be executed in the server  104 . The external storage device  204  also stores the ID and password of the user who has registered in the photo site. 
     The external storage device  204  may be an internal device of the server  104  or a so-called externally attached storage device.  FIG. 2  illustrates only one external storage device  204 . However, the number of devices is not limited to one. 
     A network interface  205  (an interface will be referred to as an “IF” hereinafter) connects to the Internet  103  to communicate with another information processing apparatus such as the user PC  101 . 
       FIG. 3  is a view showing the hardware configuration of the user PC  101 . 
     A CPU  301  controls devices connected to the CPU device on the basis of control programs stored in a ROM  302  or external storage device  304 . 
     The ROM  302  holds various kinds of control programs and data. 
     A RAM (Random Access Memory)  303  has the work area of the CPU  301 , a data save area for error processing, and a control program load area. 
     The external storage device  304  can store the control programs and contents to be executed in the user PC  101 . The external storage device  304  stores, e.g., an image editing application, operating system (to be referred to as an “OS” hereinafter), and Web browser in addition to a local album and images. 
     The external storage device  304  may be an internal device of the user PC  101  or a so-called externally attached storage device.  FIG. 3  illustrates only one external storage device  304 . However, the number of devices is not limited to one. 
     An operation input IF  305  processes a signal input from an input device  309  (to be described later). 
     A display IF  306  outputs a signal to a display  310 . 
     A network IF  307  connects to the Internet  103  to communicate with another information processing apparatus such as the server  104 . 
     An image input IF  308  can communicate with an image input device such as the digital camera  102 . 
     The display (display device)  310  displays, on a display screen, e.g., the editing information of a document, graphic, or image under editing and user interface information such as an icon, message, or menu. 
       FIG. 3  illustrates a keyboard and a pointing device as various kinds of input devices  309 . The keyboard has various keys to input a document and the like. The user uses the pointing device to point at an icon, menu, or another object displayed on the display screen of the display  310 . 
     Album management according to this embodiment will be described next. In this embodiment, an album groups a plurality of images to process them as one group. 
     A local album is an album saved in the local area, i.e., the external storage device  304  of the user PC  101 . 
     A Web album is an album saved in the external storage device  204  of the server  104 . 
       FIG. 4  is a view showing the album management window of an image editing application according to this embodiment. 
     An image has a low-resolution image and a high-resolution image, as will be described later. In this embodiment, a description about display of an image indicates display of a low-resolution image, unless otherwise specified. 
     First, a user operation activates the image editing application in the user PC  101 . 
     The display  310  of the user PC  101  displays a local file display portion  401  after activation. The local file display portion  401  displays images saved in the external storage device  304  or digital camera  102  as a hierarchical structure using folders. If the local file display portion  401  cannot display all folders, the user moves a scroll bar  402  by using the input device  309  to see all folders. 
     A local album display portion  403  displays local albums currently saved in the user PC  101 . In this embodiment, a my album folder  404  saves the local albums. Hence, the local album display portion  403  displays the my album folder  404  and album files in the folder. 
     A Web album display portion  405  displays albums saved in the server  104 . The albums are displayed on the basis of information transmitted from the server  104  in synchronization processing (to be described later). 
     The user manipulates a pointer  406  by using the input device  309  and clicks on the my album folder  404  to display a local album list window  407 . The local album list window  407  displays the list of covers  408  of albums currently saved in the my album folder  404 . The album cover  408  shows a cover image  409 , album creation date/time  410 , and album title  411 . 
     The user uses a new album creation button  412  to create a new album. 
     The user uses an upload button  413  to upload an album to the server  104 . This processing will be described later. 
     Reference numeral  414  denotes an album deletion button. Album deletion processing will be described. The user manipulates the pointer  406  by using the input device  309  and clicks on the cover of an album to be deleted. The clicked album is selected to change its cover  408  to a bold frame. The user clicks on the album deletion button  414  to delete the selected album from the my album folder  404 . 
     Reference numeral  415  denotes an album setting button. The user clicks on the album setting button  415  by using the input device  309  to display an album setting window shown in  FIG. 5 . 
     The user uses a synchronize button  416  for synchronization processing (to be described later). 
     Referring to  FIG. 5 , the user inputs a local album saving destination to a box  501 . A newly created album is saved at the album saving destination input to the box  501 . The saving destination is input and set in the box  501  automatically upon installing the image editing application in the user PC  101 . To change the saving destination after installation, the user inputs a path to the box  501  in the album setting window and clicks on an OK button  503  to set the saving destination. 
     The user inputs a my album URL to a box  502 . As described above, the area designated by the URL is the my album area where the user can save his/her Web album in the server  104 . 
     Note that the external storage device  304  of the user PC  101  saves the album saving destination and my album URL set at this time. 
     The data structure of a local album will be described.  FIG. 6  shows the data structure of a local album. The local album contains an image  601  and attached data  602 . 
     The local album has image files  603  belonging to it. In this embodiment, the album incorporates the image files themselves. Instead, the album may have an image link, and another storage area indicated by the link may save the image files themselves. 
     An album ID  604  is identification information uniquely given to the local album. 
     Reference numeral  605  denotes a name of the local album. 
     Reference numeral  606  denotes a creation date/time of the local album. 
     Reference numeral  607  denotes the number of viewers of a Web album corresponding to the local album. This will be described later in detail. 
     An-album comment  608  is text data representing a comment about the Web album corresponding to the local album. This will be described later in detail. 
     The number  609  of prints indicates the number of prints of an image in the Web album corresponding to the local album. This will be described later in detail. 
     An upload flag  610  has ON and OFF modes. The upload flag  610  in the ON state indicates the existence of a corresponding Web album in the server  104 . 
     Browsing an image in the local album will be described next. The user double-clicks on the cover  408  of a local album by using the input device  309  to display, on the display  310 , a local album image window that displays images in the local album. 
       FIG. 7  shows the local album image window. 
     A local image window  701  displays the list of images in the local album. 
     The local image window  701  displays a cover image  702  on the upper side. Remaining images in the album are displayed as indicated by  703  to  706 . 
     The user double-clicks on one of the images  702  to  706  by using the input device  309  to display a high-resolution image corresponding to the double-clicked low-resolution image. 
     The user uses a check box  707  to select an image. Reference numeral  708  denotes an image file name. 
     The user inputs a comment about the album to an album comment field  709 . 
     The user inputs a comment about an image to an image comment field  713 . 
     The user uses an image deletion button  710  to delete an image from the local album. The user checks the check box  707  of an image to be deleted and clicks on the image deletion button  710  to delete the image from the local album. 
     The user uses an image addition button  711  to add an image from a local file. The user selects, from the local file display portion  401 , an image to be added to the local album and clicks on the image addition button  711  to add the image to the local album. 
     In this way, the user can freely add/delete an image to/from the local album. 
     The user uses a synchronize button  712  for synchronization processing (to be described later). 
       FIG. 8  shows the data structure of the image file  603  in the local album. The image contains image data  801  and attached data  802 . 
     The image data contains high-resolution data  803  to be used for, e.g., printing and low-resolution data  804  to be used for, e.g., display. 
     Reference numeral  805  denotes an image file name. 
     Reference numeral  806  denotes a name  806  of an album to which the image belongs. 
     Reference numeral  807  denotes an image sensing date/time. 
     Reference numeral  808  denotes the number of viewers of the image in a corresponding Web album. 
     An image comment  809  is text data representing a comment about the image in the corresponding Web album. 
     The number  810  of prints indicates the number of prints of the image in the corresponding Web album. 
     An upload flag  812  has ON and OFF modes. The upload flag  812  in the ON state indicates the existence of a corresponding image in the server  104 . 
     A synchronization inhibition flag  811  has ON and OFF modes. The synchronization inhibition flag  811  in the OFF state inhibits synchronization processing (to be described later) even if an instruction is received. 
     Album upload processing will be described next with reference to the procedure shown in  FIG. 9 . 
     The left side of the dotted line in  FIG. 9  shows processing executed by the CPU  301  of the user PC  101  in accordance with a program installed in the external storage device  304  accessible from the user PC  101 . 
     The right side of the dotted line in  FIG. 9  shows processing executed by the CPU  201  of the server  104  in accordance with a program installed in the external storage device  204  accessible from the server  104 . 
     In step S 901 , the CPU  301  of the user PC  101  determines whether the user has clicked on the upload button  413  in  FIG. 4 . At this time, an album to be uploaded is already selected. 
     If YES in step S 901 , the processing advances to step S 903 . If NO in step S 901 , the CPU  301  repeats the processing in step S 901 . 
     In step S 903 , the CPU  301  checks the state of the network IF  307  and determines whether the user PC  101  is connecting to the Internet  103 . If NO in step S 903 , the display  310  displays a warning (step S 902 ) to prompt the user to connect the PC to the Internet. If YES in step S 903 , the processing advances to step S 904 . 
     In step S 904 , the CPU  301  reads out a my album URL  612  from the external storage device  304  and accesses the photo site  105  through the network IF  307 . 
     In step S 951 , the CPU  201  of the server  104  in the photo site  105  confirms reception of an access request from the user PC  101  through the network IF  205 . 
     In step S 952 , the CPU  201  reads out, from the external storage device  204 , a user authentication window to authenticate the user, activates the window, and transmits it to the user PC  101 . 
     In step S 905 , the CPU  301  of the user PC confirms reception of the user authentication window through the network IF  307 . The CPU  301  reads out a Web browser from the external storage device  304  and displays the user authentication window on the display  310  through the Web browser. 
       FIG. 10  shows the user authentication window. The user inputs, as user information, a user name and password to boxes  1001  and  1002  by using the input device  309  and clicks on the OK button. The CPU  301  determines upon clicking on the OK button that the pieces of user information are input (YES in step S 906 ). The processing advances to step S 907 . If the CPU  301  determines that no user information is input (NO in step S 906 ), the processing returns. 
     In step S 907 , the CPU  301  transmits, to the server  104 , the user information input in step S 906 . 
     The CPU  201  of the server  104  confirms reception of the transmitted user information in step S 953  and starts authentication processing in step S 954 . 
     In step S 954 , the CPU  201  reads out the IDs of registered users from the external storage device  204  of the authentication processing server  104 . The CPU  201  searches for an ID identical to the ID contained in the received user information and reads out a corresponding password. The CPU  201  collates the received password with the readout password and, if the passwords coincide with each other, determines the user as an authentic user and permits him/her to use the photo site  105 . If the passwords do not coincide, the CPU  201  does not permit use of the photo site  105 . 
     In step S 955 , the CPU  201  transmits the authentication result to the user PC  101 . If the user is authenticated in step S 954 , the CPU  201  transmits a message as such. If the user is not authenticated, the CPU  201  transmits a message as such. 
     In step S 908 , the CPU  301  of the user PC  101  confirms reception of the authentication result from the server  104 . 
     In step S 909 , the CPU  301  determines whether the server  104  has authenticated the user. If YES in step S 909 , the processing advances to step S 910 . If NO in step S 909 , the processing returns to step S 905  to request the user to input user information again. 
     In step S 910 , the CPU  301  stores, in the RAM  303 , information representing that the server  104  has authenticated the user. This information is erased when the image editing application has finished. 
     In step S 911 , the CPU  301  copies the selected local album and transmits the copied album to the server  104 . At this time, the CPU  301  reads out the my album URL from the external storage device  304  and transmits it together with the copied album. The attached data  602  of the local album may contain the my album URL. 
     In step S 956 , the CPU  201  of the server  104  confirms reception of the album transmitted from the user PC  101 . 
     In step S 957 , the CPU  201  stores the received album as a Web album in an area indicated by the received my album URL. Physically, the Web album is saved in the user area of the external storage device  204  of the server. 
     In step S 958 , the CPU  201  transmits, to the user PC  101 , information representing that the Web album is saved. 
     Upon confirming reception of the information representing that the Web album is saved (step S 912 ), the CPU  301  of the user PC  101  turns on the upload flag  610  of the local album of the copy source. The CPU  301  also turns on the upload flag  812  of each image in the local album of the copy source (step S 913 ). 
     If the upload flag of the local album is ON, an upload icon  1101  is displayed near the local album, as shown in  FIG. 11 . An upload icon  1201  is also displayed near each image in the local album, as shown in  FIG. 12 . 
     If the local album does not have the image file  603  itself but only a link, not only the copied album but also linked images are transmitted to the server  104 . 
     The album uploaded to the server  104 , i.e., the Web album has a data structure shown in  FIG. 13 . This data structure is almost the same as that of the local album except that the upload flag  610  in  FIG. 6  is omitted, and a synchronization destination path  1310  is added. The synchronization destination path  1310  indicates the path of the local album of the synchronization destination in synchronization with the local album. 
     Change from the local album data structure shown in  FIG. 6  to the Web album data structure shown in  FIG. 13  may be done either in the user PC  101  in copying the local album or in the server  104  after upload. This applies not only to the album but also to images in the Web album (to be described later). This also applies to image download from the server  104  to the user PC  101 . 
     An image  1303  in the Web album has a data structure shown in  FIG. 14 . This data structure is almost the same as that of an image in the local album except that the synchronization inhibition flag  811  and upload flag  812  in  FIG. 8  are omitted, and a browser addition flag  1411  is added. The browser addition flag  1411  has ON and OFF modes. The browser addition flag  1411  in an image uploaded in accordance with the procedure in  FIG. 9  turns off. The browser addition flag  1411  of an image directly added to the Web album through the Web browser turns on. The processing of directly adding an image to the Web album through the Web browser will be described later. 
     To browse the Web album, the user boots up the Web browser in the user PC  101  and sends a browsing request to the server  104  on the basis of the my album URL  502 . Upon receiving the browsing request, the CPU  201  of the server  104  reads out the data of a Web album browsing window from the external storage device  204  and transmits it to the user PC  101 . The CPU  301  displays the received data of the Web album browsing window on the display  310  through the Web browser. 
     Display of the Web album is done on the Web browser. Hence, the user can browse the Web album without activating the above-described image editing application. 
       FIG. 15  shows the Web album browsing window. A Web album display portion  1501  displays currently uploaded albums. 
     Reference numeral  1502  denotes a cover of an uploaded Web album. 
     A new upload icon  1503  is displayed near an album that the user does not browse yet since upload. 
     The user uses an album deletion button  1504  to delete an album from the server  104 . 
     The user double-clicks on the cover  1502  of a Web album by using the input device  309  to display images in the Web album.  FIG. 16  shows a Web album image browsing window. 
     A description of the same parts as in the album image browsing window shown in  FIG. 7  will be omitted. 
     The user double-clicks on an image  1607  by using the input device  309  to display a high-resolution image. 
     The user sues an image addition button  1601  to add an image to the Web album. This processing will be described later. 
     Reference numeral  1603  denotes a comment input button. The user clicks on the comment input button  1603  to display a window shown in  FIG. 17 . The user inputs a comment to a comment input field  1701  and clicks on an OK button  1702  to input the comment to a comment field  1606  in  FIG. 16 . 
     Reference numeral  1604  denotes a print button. The user selects an image and clicks on the print button  1604  to transmit the selected image from the server  104  to the user PC  101 . The image is transferred from the user PC  101  to a printer (not shown) connected to the user PC  101  and printed. 
     Reference numeral  1605  denotes a friend notification button. The user clicks on the friend notification button  1605  to automatically create e-mail containing the my album URL. The user inputs the mail address of, e.g., a friend who should see the Web album and transmits the e-mail. The friend who has received the e-mail can access the server  104  by using a Web browser and browse the Web album on the basis of the my album URL contained in the e-mail. 
     The friend can also execute the above-described comment input and image print. The number  1307  of viewers, album comment  1308 , and the number  1309  of prints in  FIG. 13  are updated in accordance with access or operation of the friend. Upon detecting change from the window shown in  FIG. 15  to the window shown in  FIG. 16 , the CPU  201  increments the number  1307  of viewers by one. 
     In addition, the number  1408  of viewers, image comment  1409 , and the number  1410  of prints shown in  FIG. 14  are updated for each browsed image. Upon detecting enlarged display of the image  1607 , the CPU  201  increments the number  1408  of viewers by one. 
     Processing of directly adding a new image to the Web album by using the image addition button  1601  will be described.  FIG. 18  shows the procedure of processing of adding an image. 
     The left side of the dotted line in  FIG. 18  shows processing executed by the CPU  301  of the user PC  101  in accordance with a program installed in the external storage device  304  accessible from the user PC  101 . 
     The right side of the dotted line in  FIG. 18  shows processing executed by the CPU  201  of the server  104  in accordance with a program installed in the external storage device  204  accessible from the server  104 . 
     If the CPU  201  of the server  104  determines in step S 1851  that the user has clicked on the image addition button  1601  the processing advances to step S 1852 . If NO in step S 1851 , the CPU  201  repeats the processing in step S 1851 . 
     In step S 1852 , the CPU  201  transmits, to the user PC  101 , information to request an image to be added to the Web album. 
     In step S 1801 , the CPU  301  of the user PC  101  confirms reception of the information transmitted in step S 1852 . 
     In step S 1802 , the CPU  301  reads out images saved in the external storage device  304  of the user PC  101  or the digital camera  102  and displays an image selection window (not shown) on the display  310 . 
     The user selects an image to be added to the Web album by using the input device  309 . If the CPU  301  determines in step S 1803  that the user has selected an image, the processing advances to step S 1804 . If NO in step S 1803 , the CPU  301  repeats the processing in step S 1803 . 
     In step S 1804 , the CPU  301  transmits the image selected by the user to the server  104 . 
     In step S 1853 , the CPU  201  of the server  104  confirms reception of the image transmitted from the user PC  101  through the network IF  205 . 
     In step S 1854 , the CPU  201  saves the received image in the external storage device  204  of the server  104  as an image in the Web album. 
     In step S 1855 , the CPU  201  turns on the browser addition flag  1411  of the image saved in the Web album. This processing enables to determine whether the image in the Web album is copied from the local album or directly added to the Web album by an operation on the Web browser window. 
     Various kinds of operations for the Web album are done by user instructions from the window shown in  FIG. 16 . Hence, it is possible to execute operations such as addition and deletion of an image independently of the state of the local album of the copy source. This sometimes produces mismatch between images in the local album as the copy source and those in the Web album as the copy destination. To solve this problem, synchronization processing is necessary. 
     Synchronization processing of the local album and Web album will be described below.  FIGS. 19 and 24  show the procedure of synchronization processing. 
     The left side of the dotted line in each of  FIGS. 19 and 24  shows processing executed by the CPU  301  of the user PC  101  in accordance with a program installed in the external storage device  304  accessible from the user PC  101 . 
     The right side of the dotted line in each of  FIGS. 19 and 24  shows processing executed by the CPU  201  of the server  104  in accordance with a program installed in the external storage device  204  accessible from the server  104 . 
     If the CPU  301  of the user PC  101  determines in step S 1901  in  FIG. 19  that the user has clicked on the synchronize button  416 , the processing advances to step S 1902 . If NO in step S 1901 , the CPU  301  repeats the processing in step S 1901 . 
     In step S 1902 , the CPU  301  determines whether the RAM  303  stores information representing that the server  104  has authenticated the user. If YES in step S 1902 , the CPU  301  determines that authentication has already been done. The processing advances to step S 1904 . If NO in step S 1902 , the CPU  301  determines that authentication has not been done yet. The processing advances to step S 1903 . 
     In step S 1903 , the user PC  101  and server  104  execute the user authentication processing in steps S 905  to S 907  in  FIG. 9 . 
     In step S 1904 , the CPU  301  requests the server  104  to transmit album IDs  1304  of albums in the my album area of the external storage device  204  of the server  104 . 
     In step S 1951 , the CPU  201  of the server  104  confirms reception of the album ID transmission request transmitted from the user PC  101 . 
     In step S 1952 , the CPU  201  reads out the album IDs  1304  of albums in the my album area from the external storage device  204  and transmits them to the user PC  101 . 
     In step S 1905 , the CPU  301  of the user PC  101  confirms reception of the album IDs  1304  of the albums in the my album area of the external storage device  204  of the server  104  and stores the received album IDs  1304  in the RAM  303 . 
     In step S 1906 , the CPU  301  reads out the album IDs  604  of local albums saved in the external storage device  304  of the user PC  101  and stores them in the RAM  303 . 
     In step S 1907 , the CPU  301  compares the album IDs  1304  of the Web albums, which are stored in the RAM  303  in step S 1905 , with the album IDs  604  of the local albums, which are stored in the RAM  303  in step S 1906 . 
     In step S 1908 , the CPU  301  determines whether there are album IDs coincident with each other as a result of comparison in step S 1907 . If YES in step S 1908 , the processing advances to step S 1909 .  FIG. 24  shows processing from step S 1909 . If NO in step S 1908 , the synchronization processing is complete. 
     Processing from step S 1909  will be described below. “Local album” and “Web album” in the description of the procedure (including sub-procedures) indicate albums that are determined in step S 1908  to have identical album IDs, unless otherwise specified. 
     In step S 1909 , the CPU  301  of the user PC  101  requests the server  104  to transmit file names  1405  of images in a Web album saved in the external storage device  204  of the server  104 . 
     In step S 1953 , the CPU  201  of the server  104  confirms reception of the image file name transmission request transmitted from the user PC  101 . 
     In step S 1954 , the CPU  201  reads out the file names  1405  of images in the Web album in the my album area from the external storage device  204  and transmits them to the user PC  101 . 
     In step S 1910 , the CPU  301  of the user PC  101  confirms reception of the image file names  1405  transmitted from the server  104  and stores them in the RAM  303 . 
     In step S 1911 , the CPU  301  reads out the image file names  805  from a local album saved in the external storage device  304  and stores them in the RAM  303 . 
     In step S 1912 , the CPU  301  compares the image file names in the Web albums, which are stored in the RAM  303 , with the image file names in the local album. 
     If the CPU  301  determines in step S 1913  that all the file names compared in step S 1912  coincide, the synchronization processing is complete. In this case, the images in the local album coincide with those in the Web album, and no synchronization is necessary. If at least one file name that is not coincident is present, the processing advances to step S 1914 . 
     In step S 1914 , the CPU  301  determines whether there is a file name existing in only the local album. This processing is executed on the basis of the result in step S 1912 . If YES in step S 1914 , the processing advances to step S 1915 . If NO in step S 1914 , the processing advances to step S 1916 . 
     In step S 1915 , the CPU  301  executes image synchronization processing  1 . This processing will be described later. 
     In step S 1916 , the CPU  301  determines whether there is a file name existing in only the Web album. This processing is also executed on the basis of the result in step S 1912 . If YES in step S 1916 , the processing advances to step S 1917 . If NO in step S 1916 , the synchronization processing is complete. 
     In step S 1917 , the CPU  301  executes image synchronization processing  2 . This processing will be described later. 
     Image synchronization processing  1  in step S 1915  will be described. Situations wherein the CPU  301  determines that there is a file name existing in only the local album are roughly classified into two cases. In the first case, the user has added a new image to the local album by operating the image addition button  711  in  FIG. 7 . In the second case, the user has deleted an image from the Web album as a copy of the local album by operating an image deletion button  1602  in  FIG. 16 . 
     Especially in the second case, simple synchronization processing causes a trouble. For example, assume that synchronization processing is executed to match the contents of the local album with those of the Web album. If the user wants to delete an image from only the Web album to withdraw it from the public view, the image is deleted even from the local album and lost. If synchronization processing is executed to match the contents of the Web album with those of the local album, an image deleted from the Web album and withdrawn from the public view is added to the Web album again. 
     To avoid these problems, this embodiment executes image synchronization processing in the following way. 
       FIG. 20  shows the sub-procedure of image synchronization processing  1  in step S 1915 . This processing will be described below with reference to  FIG. 20 . 
     In step S 2000 , the CPU  301  of the user PC  101  reads out, from the external storage device  304 , the attached data  802  of the image (to be referred to as a “local synchronous image” hereinafter) existing in only the local album on the basis of the file name stored in the RAM  303 . 
     In step S 2001 , the CPU  301  determines whether the upload flag  812  of the local synchronous image is ON or OFF. 
     A case wherein the upload flag  812  is OFF will be described below. In this case, the CPU  301  determines that a new image is added to the local album. The processing advances to step S 2002 . The following procedure corresponds to processing of uploading a new image to the server  104 . 
     In step S 2002 , the CPU  301  determines whether the synchronization inhibition flag  811  of the local synchronous image is ON or OFF. If the flag is ON, the processing advances to step S 2003 . If the flag is OFF, the processing is complete. This processing finishes the sub-procedure and returns to the procedure in  FIG. 19 . 
     In step S 2003 , the CPU  301  reads out the local synchronous image from the external storage device  304  and transmits a copy of the image to the server  104 . 
     In step S 2051 , the CPU  201  of the server  104  confirms reception of the image transmitted from the user PC  101 . 
     In step S 2052 , the CPU  201  saves the received image in the external storage device  204  of the server  104  as an image in the Web album. 
     In step S 2053 , the CPU  201  transmits, to the user PC  101 , information representing that the Web album is saved. 
     In step S 2006 , the CPU  301  of the user PC  101  confirms reception, from the server  104 , of the information representing that the Web album is saved. 
     In step S 2007 , the CPU  301  turns on the upload flag  812  of the image of the copy source. The processing returns to the procedure in  FIG. 19 . 
     A case wherein the CPU  301  determines in step S 2001  that the upload flag  812  is ON will be described below. In this case, the CPU  301  determines that an image is deleted from the Web album. The processing advances to step S 2004 . 
     In step S 2004 , the CPU  301  of the user PC  101  reads out the local synchronous image from the external storage device  304  and turns off the upload flag  812 . 
     In step S 2005 , the CPU  301  turns off the synchronization inhibition flag of the local synchronous image. The processing returns to the procedure in  FIG. 19  without uploading an image. 
     This synchronization processing makes it possible to reflect the state of the Web album on the local album without losing the image from the local album. It also prevents the image deleted from the Web album from being uploaded in every synchronization processing. 
     Image synchronization processing  2  in step S 1917  in  FIG. 24  will be described next. Situations wherein the CPU  301  determines in step S 1916  in  FIG. 24  that there is a file name existing in only the Web album are roughly classified into two cases. In the first case, the user has added a new image to the Web album by operating the image addition button  1601  in  FIG. 16 . In the second case, the user has deleted an image from the local album by operating the image deletion button  710  in  FIG. 7 . 
     In the first case, if synchronization processing is executed to match the contents of the Web album with those of the local album, the image added to the Web album by using the image addition button  1601  in  FIG. 16  is lost by the synchronization processing. 
     In the second case, assume that synchronization processing is executed to match the contents of the local album with those of the Web album. Even when the image is deleted from the local album, it is added to the local album again by the synchronization processing unless the image in the Web album is separately deleted. 
     To avoid these problems, this embodiment executes image synchronization processing in the following way. 
       FIG. 21  shows the sub-procedure of image synchronization processing  2 . 
     In step S 2101 , the CPU  301  of the user PC  101  requests, of the server  104 , attached data  1402  of the image (to be referred to as a “Web synchronous image” hereinafter) existing in only the Web album. 
     In step S 2151 , the CPU  201  of the server  104  confirms reception of the request of the attached data  1402  from the user PC  101 . 
     In step S 2152 , the CPU  201  reads out, from the external storage device  204 , the image additional data requested by the user PC  101  and transmits the data to the user PC  101 . 
     In step S 2102 , the CPU  301  of the user PC  101  confirms reception of the attached data transmitted from the server  104  and saves the received attached data  1402  in the RAM  303 . 
     In step S 2103 , the CPU  301  determines whether the browser addition flag  1411  in the received attached data  1402  is ON or OFF. 
     A case wherein the browser addition flag  1411  is OFF will be described. In this case, the CPU  301  determines that an image is deleted from the local album. The processing advances to step S 2105 . 
     In step S 2105 , the CPU  301  transmits, to the server  104 , an instruction to delete the Web synchronous image from the external storage device  204 . 
     In step S 2153 , the CPU  201  of the server  104  confirms reception of the deletion instruction from the user PC  101 . 
     In step S 2154 , the CPU  201  deletes the Web synchronous image from the external storage device  204 . The processing returns to the procedure in  FIG. 19 . 
     A case wherein the browser addition flag  1411  is ON in step S 2103  will be described. 
     In this case, the CPU  301  determines that a new image is directly added to the Web album. The processing advances to step S 2104 . 
     In step S 2104 , the CPU  301  requests the server  104  to transmit the Web synchronous image to the user PC  101 . 
     In step S 2156 , the CPU  201  of the server  104  confirms reception of the download request from the user PC  101 . 
     In step S 2157 , the CPU  201  copies the Web synchronous image and transmits it to the user PC  101 . 
     In step S 2107 , the CPU  301  of the user PC  101  confirms reception of the image from the server  104 . 
     In step S 2108 , the CPU  301  saves the received image in the external storage device  304  as an image in the local album. 
     In step S 2109 , the CPU  301  turns on the upload flag of the received image. The processing returns to the procedure in  FIG. 19 . 
     This processing prevents the new image added to the Web album from being lost by the synchronization processing. In addition, the image deleted from the local album can automatically be deleted from the Web album. 
     This synchronization processing is executed when the user clicks on the synchronize button  416  in  FIG. 4 . The user may also click on the synchronize button  712  in  FIG. 7 . 
     In this case as well, processing is executed in accordance with the same procedures as in  FIG. 19  except that the synchronization target is an album displayed on the local album image window in  FIG. 4 . Hence, only album IDs displayed on the local album image window are read out in step S 1905  in  FIG. 19 . 
     In the present invention, instead of synchronizing albums as synchronization targets, only images in albums with the same album ID are synchronized. This processing allows the user to upload, to the server  104 , only albums to be open to the public on the Web while preventing any album to be kept in private from being uploaded to the server  104  by synchronization processing. In addition, since not all albums in the user PC  101  are uploaded automatically by synchronization processing, it is possible to effectively use the capacity of the external storage device  204 . 
     In the present invention, if the user directly adds an image to the Web album, the image is also added to the local album. If the user directly deletes an image from the Web album, the upload flag is turned off without deleting the image in the local album. This processing makes it possible to reflect the state of the Web album on the local album without losing the image from the local album. 
     Second Embodiment 
     The second embodiment will be described. The basic arrangement is the same as in the first embodiment. Hence, a description of the same parts as in the first embodiment will be omitted, and characteristic parts in the second embodiment will be described. 
     In this embodiment, processing of reflecting various kinds of attached data of a Web album, e.g., the number  1408  of viewers, an image comment  1409 , and the number  1410  of prints in  FIG. 14  on a local album will be described. 
     The first half of the processing is executed in accordance with the same procedures as in  FIG. 19 , and a description thereof will be omitted. The procedure shown in  FIG. 22  is the same as in  FIG. 24  except that step S 1918  is added, and a description of the procedure except step S 1918  will be omitted. 
     “Local album” and “Web album” in the description of the procedure (including sub-procedures) indicate albums that are determined in step S 1908  to have identical album IDs, unless otherwise specified, as in the first embodiment. 
       FIG. 23  shows the sub-procedure in step S 1918  in  FIG. 22 . 
     The left side of the dotted line in  FIG. 23  shows processing executed by a CPU  301  of a user PC  101  in accordance with a program installed in an external storage device  304  accessible from the user PC  101 . 
     The right side of the dotted line in  FIG. 23  shows processing executed by a CPU  201  of a server  104  in accordance with a program installed in an external storage device  204  accessible from the server  104 . 
     In step S 2301 , the CPU  301  requests, of the server  104 , attached data  1402  of images in a Web album. The target to request the attached data  1402  includes not only images to be subjected to synchronization in steps S 1915  and S 1917  in  FIG. 24  but also a Web album with a coincident album ID in step S 1908  in  FIG. 9  and all images in the Web album. 
     In step S 2351 , the CPU  201  of the server  104  confirms reception of the request of the attached data  1402 . 
     In step S 2352 , the CPU  201  transmits the attached data  1402  to the user PC  101 . 
     In step S 2302 , the CPU  301  of the user PC  101  confirms reception of the attached data  1402  transmitted from the server  104  and saves the attached data  1402  in a RAM  303 . 
     In step S 2303 , the CPU  301  reads out an update dates/times  813  of images in the local album and stores them in the RAM  303 . 
     In step S 2304 , the CPU  301  compares Web album update dates/times  1412  in the attached data  1402  stored in the RAM  303  in step S 2302  with the local album update dates/times  813  stored in the RAM  303  in step S 2303 . 
     If the CPU  301  determines in step S 2305  that there are images with different update dates/times as a result of comparison in step S 2304 , the processing advances to step S 2306 . If NO in step S 2305 , the processing is complete. 
     In step S 2306 , the CPU  301  reflects the information of the Web album on the local album with the different update date/time. More specifically, the CPU  301  acquires the number  1307  of viewers, an album comment  1308 , and the number  1309  of prints from attached data  1302  of the Web album in  FIG. 13  and overwrites them on corresponding attached data  602  in the local album. The CPU  301  may acquire all the attached data  602  of the Web album and update the attached data  602  of the local album. 
     In steps S 2307  to S 2310 , the same processing as in steps S 2303  to S 2306  is executed for each image. In this case, the CPU  301  reflects the number  1408  of viewers, an image comment  1409 , and the number  1410  of prints in  FIG. 14  on attached data  802  in  FIG. 8 . 
     The attached data  602  reflected on the local album and images in it remain even when the Web album is deleted from the server  104 . In copying and transmitting the local album in accordance with the procedures in  FIG. 9 , the attached data  602  are also copied. Hence, when the user uploads a temporarily deleted album to the server  104  again as a Web album, the attached data of the Web album inherit the date before deletion. For example, assume that the number  1307  of viewers of the Web album at the time of deletion is  20 , and this is reflected on the number  607  of viewers of the local album. When the user uploads the same local album again, the number  1307  of viewers of the Web album is  20 . If a third party has browsed the album, the number  1307  of viewers changes to  21 . 
     The second embodiment executes processing of reflecting the attached data of a Web album on a local album, in addition to the processing of the first embodiment. 
     This processing enables the user to confirm the Web album browsing state, print state, and friends&#39; comments simply by checking the local album. 
     The same album that is uploaded again inherits the attached data. Hence, the user can easily delete or upload the Web album, making it possible to effectively use the limited capacity of the server. 
     According to the above-described embodiments, the user can synchronize images simply by instructing to execute synchronization processing while reflecting his/her intension of whether to make an image open to the public. 
     Other Embodiment 
     The present invention is applicable not only to an image but also to various content data such as a moving image, music, and document. 
     The object of the present invention is achieved by using a recording medium which records software program codes to implement the functions of the above-described embodiments. More specifically, the object is achieved when the computer (or CPU or MPU) of a system or apparatus reads out and executes the program codes stored in the recording medium. In this case, the program codes read out from the storage medium implement the functions of the above-described embodiments by themselves. The storage medium which stores the program codes constitutes the present invention. 
     Examples of the storage medium to supply the program codes are a floppy® disk, hard disk, optical disk, magnetooptical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, and DVD. 
     The functions of the above-described embodiments are implemented not only when the computer executes the readout program codes but also when the OS (Operating System) running on the computer partially or wholly executes actual processing on the basis of the instructions of the program codes. 
     The program codes read out from the storage medium may be written in the memory of a function expansion board inserted into the computer or a function expansion unit connected to the computer. In this case, the CPU of the function expansion board or function expansion unit partially or wholly executes actual processing on the basis of the instructions of the written program codes. The present invention also incorporates this case. 
     While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions. 
     This application claims the benefit of Japanese Patent Application No. 2005-316713, filed Oct. 31, 2005, which is hereby incorporated by reference herein in its entirety.