HAN, Jonghan (4 Hugok Maeul Apt, Geumchon 2-dongPaju-si, Kyunggi-do 413-772, 09-1701, KR)
LEE, Suk Young (3 201-306, Woosung Apt. Sadang-dong,Dongjak-gu, Seoul 156-773, 04-1403, KR)
LEE, Yong Hyun (1 Daelim Rosevill Apt, Seongsu1-ga1-dongSeongdong-gu, Seoul 133-761, 05-1201, KR)
HAN, Jonghan (4 Hugok Maeul Apt, Geumchon 2-dongPaju-si, Kyunggi-do 413-772, 09-1701, KR)
LEE, Suk Young (3 201-306, Woosung Apt. Sadang-dong,Dongjak-gu, Seoul 156-773, 04-1403, KR)
| Claims
[1] A method for synchronizing content data by a relay server connected to both a user client and at least one service serverover a network comprising: maintaining a synchronization process module list of each service server; when the content data is updated, inquiring about the synchronization process module list to transmit a synchronization request associated with the content data to a synchronization process module of a specific service server associated with the updated content data; and receiving a response message to the synchronization request from the associated service server, wherein the synchronization request is created to store the updated content data in the corresponding service server.
[2] The method according to claim 1, wherein: the synchronization process module is a synchronization application program interface (API) for conducting a synchronization in each service server, and the synchronization request and the response message are created on the basis of XML (extensible Markup Languages).
[3] The method according to claim 1, wherein: the synchronization request includes at least one of a unique ID tag, a user ID tag, and a message tag, and the response message includes a tag of a synchronization resultant value.
[4] The method according to claim 1, further comprising: when a failure message is received in the response-message receiving step, storing the synchronization request in a synchronization request storage unit.
[5] The method according to claim 4, wherein the synchronization request storage unit includes at least one of a unique ID field, a user ID field, a synchronization process module ID field, a service name field corresponding to the synchroniza- tionprocess module, and a message field storing updated content information.
[6] The method according to claim 4, further comprising: periodically retrying to transmit the stored synchronization request; and deleting the stored synchronization request when the synchronization request is successfully transmitted.
[7] The method according to claim 1, wherein the at least one service server may provide at least one of a blog service, a cafe service, a news service, a book service, a movie service, a cooking service, a shopping service, a tour service, and an item service.
[8] The method according to claim 1, wherein when the content data is a post written by a user in the synchronization request transmitting step, the relay server transmits the synchronization request to the synchronization process module of a service server corresponding to a theme of the written post.
[9] The method according to claim 1, wherein when the content data is an item including at least one of a skin, a personacon, a font, and a background music in the synchronization request transmitting step, the relay server transmits the synchronization request to the synchronization process module of all the service servers to which the item is applied.
[10] The method according to claim 1, wherein the synchronization request transmitting step comprises receiving the synchronization request from a service server processing registration of the updated content data.
[11] The method according to claim 10, wherein the transmission and reception of the synchronization request are conducted on the basis of XML-RPC.
[12] A computer-readable recording medium comprising: a program for performing the method of any one of claims 1 to 11.
[13] An apparatus connected to a user client and at least one service server over a network to synchronize content data comprising: a synchronization process module list storage unit for storing a synchronization process module list of each service server; a synchronization request relay for inquiring about the synchronization process module list when the content data is updated, and transmitting a synchronization request associated with the content data to a synchronization process module of a specific service server associated with the updated content data; and a controllerfor controlling the transmission of the synchronization request, and receiving a response message to the synchronization request from the service server, wherein the synchronization request is created to store the updated content data in the corresponding service server.
[14] The apparatus according to claim 13, further comprising: a synchronization request storage unit for storing the synchronization request when a failure message is received from the service server.
[15] The apparatus according to claim 14, wherein the synchronization request storage unit includes at least one of a unique ID field, a user ID field, a synchronization process module ID field, a service name field corresponding to the synchronization process module, and a message field storing updated content information.
[16] The apparatus according to claim 14, further comprising: a retrying unit for periodically retrying to transmit the stored synchronization request, wherein the controller deletes the stored synchronization request when the synchronization request is successfully transmitted.
[17] The apparatus according to claim 13, wherein: the synchronization process module is a synchronization application program interface (API) for conducting a synchronization in each service server, and the synchronization request and the response message are created on the basis of XML.
[18] The apparatus according to claim 13, wherein: the synchronization request includes at least one of a unique ID tag, a user ID tag, and a message tag, and the response message includes a tag of a synchronization resultant value.
[19] The apparatus according to claim 13, wherein: the synchronization request relay, when the content data is a post written by a user, transmits the synchronization request to the synchronization process module of a service server corresponding to a theme of the written post.
[20] The apparatus according to claim 13, wherein: the synchronization request relay, when the content data is an item including at least one of a skin, a personacon, a font, and a background music, transmits the synchronization request to the synchronization process module of all the service servers to which the item is applied. |
Description
METHOD AND APPARATUS FOR SYNCHRONIZING
CONTENTS
Technical Field
[1] The present invention relates to a method and apparatus for synchronizing contents
(or content data), and more particularly to a method and apparatus for synchronizing content data between heterogeneous services related to each other. Background Art
[2] With the increasing development of Internet technologies and Web-based data processing technologies, general users can freely acquire necessary informationfrom anywhere they can access the Internet at any time.
[3] In past times, the Internethas been used to acquire only information. However, in recent times, due to the increasing interest in personal media, most people prefer to upload useful or valuable information to their personal blog pages.
[4] Typically, the blog users do nothing but collect their interest documents using scraps on the Internet. However, in recent times, most blog users can freely update not only the interest documents but also their experience-based contents collected from various fields (e.g., book-, cooking-, movie-, shopping-, and tour- fields) to their blogs.
[5] In the meantime, the companies administering portal sites recently provide not only blog services but also various Web-sitesof individual themes (e.g., book, cooking, movie, and tour), and provide users or customers with specialized information through the Web-sites.
[6] The above-mentioned services of individual themes allow the specialists or experts of a specific object (e.g., movie) to freely express their opinion, and also allow users to freely express their opinion associated with the specific object. According to the conventional art, although the user has already written a post or writing of a specific movie in his or her blog, the user must separately access a specific service server and must rewrite the post or writing of the same movie in the specific service server, resulting in greater inconvenience of use.
[7] Also, even if the user desires to amend the pre- written post, the user must access the blog and the service server for each theme independent of each other, so that the user amends the post pre- written in the blog, and then amends the post pre- written in the service server, resulting in an increased post-amendment time and greater inconvenience of use.
[8] Therefore, there is a need to synchronize user-created contents or user-amended contents between services correlated with each other on the condition that personal
opinions of the user are actively expressed on the Internet.
[9] In the meantime, the user can purchase or select a variety of items (e.g., skin, font, personacon, and background music) from individual services. Conventionally, it is impossible to establish data synchronization between an item server of managing the above-mentioned items and each service server, so that the load of the item server unavoidably increases.
[10] Therefore, there must be developed an improved technology for properly performing data synchronization between heterogeneous services when a setup or update for content data such as the items is request. Disclosure of Invention Technical Problem
[11] Therefore, the present invention has been made in view of the above problems, and it is an object of the present invention to provide a method and apparatus for synchronizing content data between correlated services on the condition that a user updates content data with new data.
[12] It is another object of the present invention to provide a method and apparatus for performing item synchronization between heterogeneous services to which items can be applied, on the condition that there is a setup or update request of content data (such as items) capable of being employed in several services.
[13] It is yet another object of the present invention to provide a method and apparatus for synchronizing content data, which can properly perform data processing although a failure in synchronization occurs, resulting in a guarantee of synchronization.
[14] It is yet another object of the present invention to provide a method and ap- paratusfor synchronizing content data, which uses an optimum protocol between heterogeneous services, resulting in a guarantee of synchronization. Technical Solution
[15] In accordance with one aspect of the present invention, the above and other objects can be accomplished by the provision of a method for synchronizing content data by a relay server connected to both a user client and at least one service server over a network comprising: maintaining a synchronization process module list of each service server; when the content data is updated, inquiring about the synchronization process module list to transmit a synchronization request associated with the content data to a synchronization process module of a specific service serverassociated with the updated content data; and receiving a response message to the synchronization request from the associated service server, wherein the synchronization request is created to store the updated content data in the corresponding service server.
[16] In accordance with another aspect of the present invention, there is provided a
computer-readable recording medium comprising: a program for performing the above-mentioned method.
[17] In accordance with yet another aspect of the present invention, there is provided an apparatus connected to a user client and at least one service server over a network to synchronize content data comprising: a synchronization process module list storage unit for storing a synchronization process module list of each service server; a synchronization request relay for inquiring about the synchronization process module list when the content data is updated, and transmitting a synchronization request associated with the content data to a synchronization process module of a specific service server associated with the updated content data; and a controller for controlling the transmission of the synchronization request, and receiving a response message to the synchronization request from the service server, wherein the synchronization request is created to store the updated content data in the corresponding service server. Brief Description of the Drawings
[18] The above and other objects, features and other advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
[19] FIG. 1 is a block diagram illustrating a system for synchronizing content data according to one embodiment of the present invention;
[20] FIG. 2 is a block diagram illustrating a relay server according to one embodiment of the present invention;
[21] FIG. 3 is a structural diagram illustrating field structure of a storage unit for storing a synchronization API list according to the present invention;
[22] FIG. 4 is a structural diagram illustrating a field structure of a synchronization request storage unit according to the present invention
[23] FIG. 5 is a block diagram illustrating a synchronization API according to the present invention
[24] FIG. 6 shows a synchronization request XML structure according to the present invention;
[25] FIG. 7 shows a synchronization request XML structure for establishing personacons according to the present invention;
[26] FIG. 8 is a structural diagram illustrating a response XML structure according to the present invention;
[27] FIG. 9 exemplarily shows the resultant values of the response XML according to the present invention;
[28] FIG. 10 is a flow chart illustrating a synchronization process for establishing items according to the present invention;
[29] FIG. 11 is a flow chart illustrating a method for processing a synchronization request according to the present invention;
[30] FIG. 12 is a flow chart illustrating a synchronization process according to another embodiment of the present invention;
[31] FIG. 13 is a structural diagram illustrating an open API structure according to one embodiment of the present invention; and
[32] FIG. 14 exemplarily shows the post- writing template according to the present invention. Best Mode for Carrying Out the Invention
[33] Now, preferred embodiments of the present invention will be described in detail with reference to the annexed drawings. In the drawings, the same or similar elements are denoted by the same reference numerals even though they are depicted in different drawings. In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
[34] FIG. 1 is a block diagram illustrating a system for synchronizing content data according to one embodiment of the present invention. For the convenience of description, the above-mentioned system may also be called a content synchronization system.
[35] Referring to FIG. 1, the content synchronization system includes a relay server 102 and at least one service server 106-114. The service servers 106-114 may be connected to a user client 100 over a network.
[36] In this case, the network may be indicative of an Internet, a wire network including a dedicated line, and other wireless networks including a wireless Internet, a mobile communication network, and a satellite communication network.
[37] The user client 100 connected to the network is indicative of a plurality of terminal units, each of which includes an application (e.g., a Web browser) capable of employing various services. For example, the user client 100 may include a desktop PC, a notebook computer, a mobile phone, a PDA, and a mobile broadcastsystem (MBS), etc.
[38] The relay server 102 receives a synchronization request from the user client 100 or each service server 106-114, and relays the received request between the user client 100 and the service server 106-114 or between the service servers 106-114.
[39] In other words, the relay server 102 receives content update information from the user client 100, and transmits a content synchronization request to the service server associated with corresponding content data. Otherwise, the relay server 102 receives content update information from the individual service servers 106~l 14, and transmits
a content synchronization request to the service server associated with correspond- ingcontent data.
[40] In this case, the above-mentioned content updating process may include a process for writing or amending the post in the blog, and may further include a process for purchasing or changing a new item (e.g., skin or font).
[41] The service server associated with desired content data can be identified by the synchronization request received from the user client 100 or each service server 106~l 14. In other words, the service server associated with desired content data is identified by theme information of corresponding content data, for example, book-, shopping-, movie-, cooking-, and news- themes, contained in the synchronization request.
[42] In this case, the synchronizationrequest may be conducted by an application program interface (API) contained in the relay server 102. The above-mentioned API may act as a synchronization request hub between the user client 100 and each service server 106-114.
[43] If a user updates content data stored in the service servers 106~ 114 with new data, the service servers 106~l 14 transmit a synchronization request of the corresponding content data to the relay server 102. Otherwise, the service servers 106~l 14 synchronize the corresponding content data upon receiving a synchronization request from the relay server 102, and transmits a response message of the synchronization result to the relay server 102.
[44] In this case, the synchronization request received from the relay server 102 is transmitted to a synchronization-processing module contained in each service server 106~l 14. The synchronization-processing module is configured in the form of a software program stored in the individual service servers 106~l 14, so that it conducts the synchronization process.
[45] Preferably, the synchronization-processing module may be an application program interface (API) for synchronization. Although the present invention assumes that the synchronization-processing module is a synchronization API, it should be noted that the scope and spirit of the synchronization-processing module is not limited to the above-mentioned synchronization API, and can also be applied to other examples as necessary.
[46] For example, when the user writes a review of a specific movie, the relay server 102 receives review data from the user client 100 or each service server 106~l 14. If it is determined that the review data is associated with the movie, the relay server 102 may transmit a synchronization request associated with the corresponding review to the synchronization API contained the movie server 114.
[47] The synchronization API contained in the movie server 114 receives the synchronization request associated with the review data, and includes updated review data
in the list of reviews of a correspondingmovie.
[48] For another example, if the user gains access to theitems server 106 to purchase a specific font from the item server 106, the user client 100 or the item server 106 completes the registration process for adding the font, and transmits the item setup information (i.e., content update information) to the relay server 102. In this case, the synchronization request may be conducted by transmission of the font addition information.
[49] Generally, the item categories are not limited to only specific services supplied from the service servers 106~l 14, but can also be applied to other services. Therefore, the relay server 102 may transmit synchronization informationassociated with the items to all the service servers to which the item application is available. The synchronization API of each service server receives the synchronization information, and stores item setup information.
[50] For yet another example, if the user gains access to the blog sever 108, and writes a new post or amendsan old post, the user client 100 or the blog server 108 finishes registering or amending the correspondingpost, and may transmit a synchronization request associated with the post to the relay server 102.
[51] According to one embodimentof the present invention, the relay serverlO2 may communicate with the service servers 106~l 14 using the XML-RPC API (acting as an open API) as an API, so that synchronizationrequests and response messages to the synchronization requests may be communicated between the relay server 102 and the service servers 106~l 14. In this case, the XML-RPC API is an abbreviation of an extensible Markup Language-Remote Procedure Call API. The XML-RPC performs a variety of behaviors (for example, a function-call behavior over the network), and can transmit/receive necessary requests and response messages using a Hypertext Transfer Protocol (HTTP).
[52] According to a preferred embodiment of the present invention, the synchronization request of the relay server 102 and the response messages of the service servers 106~l 1 are based on the XML, and at the same time are communicated between the relay server 102 and the service server 106~l 14.
[53] In the meantime, the synchronization failure may occur due to the problems of network situation and individual service servers 106~l 14, so that the relay server 102 is designed to determine the success or failure of the synchronization. The relay server 102 determines the success or failure of the synchronization upon receiving the response messages from the service servers 106~l 14.
[54] If the failure of the synchronization is determined, the relay server 102 temporarily stores the synchronization request and periodically retries transmitting the synchronization request according to a predetermined algorithm.
[55] Referring to FIG. 1, the item server 106 stores a variety of item information, for example, skin, font, game, background music, and personacon. And, the item server 106 manages information of the user-selected item. In this case, the skin is indicative of a background of the user's blog or cafe. The personacon is a newly-coined word of "Personality" and "Icon", so that it is a unique icon or picture of the user to represent unique characteristics of the user.
[56] The item server 106 may store item information capable of being currentlyprovided to the item database (not shown). In more detail, the item server 106 may store/manage item category-, item amount-, billing-, and expiration date- information, etc.
[57] The blog server 108 allows the user to write a desired post, and manages all the information associated with the blog of the user. For example, the blog sever 108 provides an interface for allowing the user to write the post, receives the post written by the user, and stores the received post. Also, the blog server 108 may manage the list of recent posts written by neighboring users of the above-mentioned user.
[58] Specifically, when the blog server 108 receives a post-writing request from the user, it provides the user with an interface based on pre-defined templates. For example, if the user selects a "Kitchen" theme to compose a recipe of a specific cooking or dish, the blog server 108 may provide the user with the template- shaped interface of FIG. 14.
[59] Referring to FIG. 14, the template of the present invention may pre-include a field of a cooking name, a field of a cooking material, a field of a completed cooking photo, a field of a cooking classification, and a field of an attention-matter input field. The user inputs a text in each field, or selects a drop-down menu or image, so that the user can conveniently compose the post. The composed post is stored in the DB for each field.
[60] The blog server 108 provides the above-mentioned template and manages the composed post using a predetermined field structure, so that it can determine which one of posts is changed to another post at a later time and can determine which one of fields is changed to another field at a later time. In this way, if the post is changed to another post, the blog server 108 enables a service server associated with the cooking category to synchronize the corresponding change of information, so that the synchronized result is reflected in the template.
[61] The cafe server 110 manages information of a variety of cafes created by several users who desire to accomplish specific purposes and activities. For example, the cafe server 110 manages bulletin data registered in individual cafes, membership registration or withdrawal data of the cafes, and scraps for other blogs, etc.
[62] The news server 112 stores news information written by users or reporters, and manages the same information.
[63] The movie server 114 stores a variety of information associated with movies, and manages review information of the movies. In this case, the movie-associated information may include a variety of information of a specific movie, for example, title, images, director information, actor/actress information, trailer, reviews, and first-run information of the movie. The above-mentioned information of the specific movie can be provided to the user who desires to write a review of the movie after accessing the movie server 114 or on the blog.
[64] The service servers 106~l 14 shown in FIG. 1 have been disclosed for only illustrative purposes, so that it is obvious to those skilled in the art that a variety of service servers (e.g., book, shopping, tour, and cooking servers) other than the above- mentioned service servers 106~l 14 can also be applied to the present invention as necessary.
[65] FIG. 2 is a block diagram illustrating a relay server according to one embodiment of the present invention.
[66] Referring to FIG. 2, the relay server 102 according to the present invention includes a synchronization request relay 200, a synchronization API list storage unit 202, a retrying unit 204, a timer 206, a synchronization request storage unit 208, and a controller 210.
[67] Upon receiving content update information from the user client 100 or the service servers 106~l 14, the synchronization request relay 200 transmits a synchroniza- tionrequest associated with the content data to the synchronization API of a service server related to the corresponding content data.
[68] In this case, the synchronization API of the service server related to the correspond- ingcontent data may be extracted from the synchronization API list storage unit 202. In more detail, the synchronization API associated with the correspondingcontent data can be identified by theme information of the updated content data.
[69] The synchronization API list storage unit 202 stores the synchronization API list of the service servers 106~l 14. In this case, setup information of services related to specific contents is stored in the synchronization API list.
[70] The field structure of the synchronization API list storage unit 20 is shown in FIG.
3.
[71] Referring to FIG. 3, the synchronization API list storage unit 20 may include a unique ID field (i.e., decode) 300, a synchronization API field (i.e., update URL) 302 for storing individual synchronizationAPIs, and a service name field 304 for storing names capable of classifying services.
[72] If the synchronization failure occurs although the synchronization request relay 200 has transmitted the synchronizationrequest to the service server related to the updated content data, the controller 210 stores information of the failed synchronization request
in the synchronization request storage unit 208. If the synchronization success is conducted by the retrying unit 204, the controller 210 deletes the synchronization request stored in the synchronization request storage unit 208. Therefore, the controller 210 prevents the synchronization request from being unnecessarily transmitted.
[73] The field structure of the synchronization request storage unit 208 capable of storing the failed synchronization request is shown in FIG. 4.
[74] Referring to FIG. 4, the synchronizationrequest storage unit 208 may include a unique ID field (i.e., decode) 400, user ID field (i.e., userid) 402 updating contents, a synchronization API field (i.e., update URL) 404 corresponding to a transmission target of the synchronization request, a service name field 406, and a message field 408 for storing updated content information.
[75] If the synchronization failure occurs, the retrying unit204 retries transmitting the synchronization request by referring to the synchronization request stored in the synchronization request storage unit 208. The timer 206 allows the retrying unit 204 to periodically retry transmitting the synchronization request at intervals of a predetermined period of time.
[76] FIG. 5 is a block diagram illustrating the synchronization API according to the present invention.
[77] Referring to FIG. 5, the synchronization API according to the present invention may include a synchronizationrequest transceiver 500, a controller 502, and a synchronization unit 504.
[78] In the case of receiving the synchronization request from the relay server 102 or registering the content data updated by the service servers 106~l 14, the synchronization request transceiver 500 transmits a synchronization request associated with the content updating to the relay server 102.
[79] The controller 502 controls transmission/reception of the synchronization request, generates the synchronization request, and generates a response message related to the synchronizationprocessing result of the service server.
[80] In this case, the response message may be generated according to the synchronization processing result of the synchronizationunit 504. In more detail, if the synchronizationunit 504 newly registers the updated content data or updates old content data with new content data, the controller 502 generates the success message. Otherwise, the controller 502 generates the failure message.
[81] As described above, the synchronization request message and the synchronization response message according to the present invention may be created on the basis of the XML.
[82] Upon receiving the synchronization request from the synchronization request transceiver 500, the synchronization unit 504 newly registers the updated content data
or updates the old content data with new content data, thereby the content data is synchronized.
[83] FIG. 6 shows a synchronization request XML structure according to the present invention. The synchronization request according to the present invention may include a varietyof tags, for example, <decode>, <userid>, and <message>, etc.
[84] FIG. 7 shows a synchronization request XML structure for establishing personacons according to the present invention. FIG. 7 shows a synchronizationrequest created when the user establishes a desired item. Referring to FIG. 7, unique ID information is recorded in the <decode> tag, and user ID information is recorded in the <userid> tag. The details information of the items is recorded in the <message> tag, for example, item ID, and item expiration date, etc.
[85] FIG. 8 is a structural diagram illustrating a response XML structure according to the present invention. Referring to FIG. 8, the response message includes the <result> tag and the <message> tag. In this case, as shown in FIG. 9, the <result> tag includes a variety of resultant values (e.g., the success or failure of synchronization, and the retrial of synchronization), and the <message> tag includes other details information associated with the response message.
[86] FIG. 10 is a flow chart illustrating a synchronization process for establishing items according to the present invention. In more detail, FIG. 10 shows a specific case in which the user establishes a new item through the relay server 102.
[87] Referring to FIG. 10, the user client 100 transmits setup information related to the user-selected item to the relay server 102 at step SlOOO.
[88] When the content update information is received in the relay server 102, the relay server 102 inquires about the synchronization API list at step S 1002. The relay server 102 transmits a synchronization request to the synchronization API associated with a specific server to which the item can be applied at step S 1004, SlOlO, or S 1016. In more detail, the relay server 102 transmits a synchronization request to the synchronization API associated with the blog server 108 at step S 1004, transmits a synchronization request to the synchronization API associated with the cafe server at step SlOlO, or transmits a synchronizationrequest to the synchronization API associated with the news server at step S 1016.
[89] Thereafter, the synchronization API contained in each service server generates a response message to the synchronization processing, and transmits the response message to the relay server 102 at step S1006, S1012, or S1018.
[90] If the success of the synchronization process is determined, corresponding items are registered in the individual service servers according to the item setup information at steps S1008, S1014, and S1020.
[91] Therefore, the item setup information can be synchronized by servers of het-
erogeneous services. Thereafter, if the user gains access to the blog, cafe, or news server to compose the post, the user is able to use the item established by the user himself or herself.
[92] FIG. 11 is a flow chart illustrating a method for processing a synchronization request according to the present invention.
[93] Referring to FIG. 11, the relay server 102 maintains the synchronization API list corresponding to each service server at step Sl 100.
[94] As previously stated above, synchronization APIs of the service servers 106~l 14 related to the updated content data are stored in the synchronization API list, so that the relay server 102 can recognize which one of service servers will receive the updated content data.
[95] When the relay server 102 receives the synchronization request according to the content updating from the user client 100 or the individual service servers 106~l 14 at step Sl 102, it inquires about the synchronization API associated with the updated content data at step Sl 104.
[96] Next, the relay server 102 transmits the synchronization request to the corresponding synchronization API at step Sl 106, and determines whether the synchronization process succeeds or fails by referring to the response message transmitted from each synchronization API at step Sl 108.
[97] If the success of the synchronization process is determined, the relay server 102 deletes the corresponding synchronization request at step Sl 110. If the failure of the synchronization process is determined, the relay server 102 temporarily stores the synchronization request at step Sl 112.
[98] Thereafter, the relay server 102 periodically retries transmitting the synchronization request using the stored synchronization request at step Sl 114, and determines the success or failure of the retrial of the synchronization request at step Sl 116.
[99] If the retrial action of the synchronization request is successful, the relay server 102 deletes the synchronization request at step Sl 118.
[100] However, if the retrial action of the synchronization request fails, the relay server
102 may perform the backup of the synchronization request, and may then retry performing the synchronization at a later time. In another embodiment, the relay server 102 may cancel the synchronization request as necessary.
[101] FIG. 12 is a flow chart illustrating a synchronization process according to one embodiment of the present invention. In more detail, FIG. 12 shows a specific process in which the blog server finishes registering content data and then transmits a synchronization request to the relay server 102.
[102] Referring to FIG. 12, when the user client 100 transmits content creation/correction information to the blog server 108 at step S 1200, the blog server 108 registers the
received information at step S 1202 and transmits a synchronization request to the relay serverlO2 at step S 1204.
[103] According to the present invention, the content data created by the blog server 108 may be the post associated with the recipe as shown in FIG. 14. The cooking post is composed by a template equipped with several fields, and data associated with the cor- respondingpost is stored/managed while being classified according to fields.
[104] Therefore, if the user changes only the cooking material (i.e., ingredients) contained in the old cooking post to new data, the blog server 108 may transmit the cooking material change information of a specific cooking post to the relay server 102. Thereafter, the relay server 102 inquires about the synchronization API corresponding to the corresponding post theme (i.e., cooking) at step S 1206, and transmits a synchronization request to the interworking service server (i.e., the service server associated with the corresponding theme contents) at step S 1208. For example, the interworking service server may be set to the cooking server.
[105] The interworking service server performs the synchronization process, and then transmits the response message to the relay server 102 at step S 1210.
[106] As can be seen from the above-mentioned example, the blog server 108 selectively transmits only the cooking material change information from among the old cooking post, so that the cooking server can update only the cooking material field with new update information, instead of all parts of the pre- written post (i.e., the old post).
[107] If the synchronization failure occurs, the relay server 102 stores the failed synchronization request and performs the backup of the synchronizationrequest at step S 1212. Then, the relay server 102 transmits a response message to the synchronizationrequest to the blog server 108 at step S 1214.
[108] In the meantime, the relay server 102 may retry transmitting the synchronizationrequest at steps S1216~1218, and then may transmit the response message to the blog server 108.
[109] As can be seen from FIG. 12, the synchronizationrequest may be generated from the individual service servers 106~l 14 which have registered the updated content data. In this case, the individual service servers 106~l 14 and the relay server 102 may include the open API structure shown in FIG. 13.
[110] FIG. 13 is a structural diagram illustrating an open API structure according to one embodiment of the present invention.
[I l l] Referring to FIG. 13, the synchronization request and the response message can be communicated between the relay server 102 and the service servers 106~l 14 using the XML-RPC protocol.
[112] The XML-RPC is indicative of a communication protocol for allowing remote servers spaced apart from each other to transmit/receive predetermined messages
therebetween using a function-call action.
[113] According to the present invention, in order to implement the function call, the
XML-RPC API is installed in each service server 106~l 14 and the relay server 102. The XML-RPC API calls a necessaryfunction from the XML-RPC server 1300 connected to both each service server 106~l 14 and the relay server 102. The called function may be contained in the synchronization request and the response message.
[114] For example, if the blog server 108 transmits a synchronization request for the updated post, it may include a method call tag (methodCall) for the synchronization request as shown in FIG. 13, and the relay server 102 may include a response method tag (methodResponse) for the response message, so that the synchronization request can be communicated between the relay server 102 and the blog server 108.
[115] It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of this invention provided they come within the scope of the a ppended claims and their equivalents. Industrial Applicability
[116] As apparent from the above description, the relay server according to the present invention synchronizes the distributed data between service servers capable of in- terworking with each other, resulting in greater convenience of the user.
[117] According to the present invention, the synchronization request is transmitted to a destination using the synchronization API list, so that all the associated service servers are able to synchronize the content data.
[118] According to the present invention, the synchronization request and the response messageare written on the basis of the XML, resulting in the implementation of stable synchronization.
[119] According to the present invention, the relay server synchronizes the items, so that the item server may have less load.
[120] Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.
