This application claims priority from Korean Patent Application No. 10-2022-0066553 filed on May 31, 2022 in the Korean Intellectual Property Office and all the benefits accruing therefrom under 35 U.S.C. 119, the contents of which in its entirety are herein incorporated by reference.
The present disclosure relates to a method for providing an edit service of a document, and more particularly, to a method and system for providing an edit service of a document to support a plurality of editors to simultaneously edit an online document.
Nowadays, an edit service of a document is provided, which stores the document in a server or an external device and supports a plurality of users to simultaneously edit the document. Since the edit service of the document should continuously receive edit data from editors who are editing the same document, the editors who edit the same document should be connected to the same server.
However, as shown in
Therefore, a system for stably supporting document editing and facilitating scale-out is required.
An object of the present disclosure is to provide a method and system for providing an edit service of a document to support a plurality of editors to stably edit the document and reflect changed data in the document.
Another object of the present disclosure is to provide a method and system for providing an edit service of a document to stably support document editing without loss of data even though a failure occurs in some modules due to dualization of modules included in the system.
Other object of the present disclosure is to provide a system capable of performing scale-out even without interruption of its operation.
The objects of the present disclosure are not limited to those mentioned above and additional objects of the present disclosure, which are not mentioned herein, will be clearly understood by those skilled in the art from the following description of the present disclosure.
According to an aspect of an example embodiment, there is provided a method for providing an edit service of a document, performed by at least one processor, the method including: storing, in a first data queue, first edit data received from a first communication terminal; storing, in the first data queue, second edit data received from a second communication terminal; updating an online document by reflecting the first edit data and the second edit data stored in the first data queue in the online document; transmitting the first edit data to the second communication terminal; and transmitting the second edit data to the first communication terminal.
The updating the online document may include: merging the first edit data and the second edit data into one edit data; and reflecting the merged edit data in the document.
The updating the online document may include storing the first edit data and the second edit data in a second data queue based on the updating of the online document being completed, each of the first edit data and the second edit data being stored in association with editor identification information; among the edit data stored in the second data queue, the second edit data that is not associated with an editor of the first communication terminal is transmitted to the first communication terminal; and among the edit data stored in the second data queue, the first edit data that is not associated with an editor of the second communication terminal is transmitted to the second communication terminal.
The first data queue may be a reception-only queue in which received edit data are stored, and the second data queue may be a transmission-only queue in which edit data are stored before being transmitted to a communication terminal.
The first data queue may store the first edit data and the second edit data in association with identification information of the document, and the updating the online document may include: acquiring the first edit data and the second edit data from the first data queue based on identification information of the document; and reflecting the first edit data and the second edit data in the document.
The storing the first edit data in the first data queue may include storing the first edit data in a sub-queue corresponding to the identification information of the document among a plurality of sub-queues included in the first data queue, and the storing the second edit data in the first data queue may include storing the first edit data in the sub-queue.
According to an aspect of an example embodiment, there is provided a document management system for providing an edit service of an online document, the document management system including at least one processor to implement: at least one transmission/reception module configured to receive edit data from at least one communication terminal; a queue processing module configured to store, in a first data queue and a second data queue, edit data received by the at least one transmission/reception module; and at least one update module configured to acquire edit data stored in the first data queue, reflect the acquired edit data in the online document, and store edit data, which has been reflected in the online document, in the second data queue, wherein the at least one transmission/reception module is configured to transmit the edit data stored in the second data queue to the at least one communication terminal.
The at least one transmission/reception module may include a first transmission/reception module configured to communicate with a first communication terminal, and a second transmission/reception module configured to communicate with a second communication terminal; and based on a failure occurring in the second transmission/reception module, the first transmission/reception module may be configured to receive edit data associated with a second editor from the second communication terminal and stores the received edit data in the first data queue.
The first transmission/reception module may be configured to, based on the failure occurring in the second transmission/reception module: receive, from the second communication terminal, an index related to the edit data received by the second communication terminal, acquire edit data, which is to be transmitted, from the second data queue based on the received index, and transmit the edit data, acquired based on the received index, to the second communication terminal.
The second data queue may store the edit data associated with the second editor, which has been reflected in the online document, and the first transmission/reception module may be configured to acquire the edit data associated with the second editor from the second data queue, and transmit the acquired edit data associated with the second editor to the first communication terminal.
The at least one update module may include a first update module configured to process edit data of a first document stored in the first data queue, and a second update module configured to process edit data of a second document stored in the first data queue; and based on a failure occurring in the second update module, the first update module may be configured to acquire the edit data of the second document from the first data queue.
The first data queue may include a first sub-queue associated with the first document and a second sub-queue associated with the second document, and based on edit data stored in the first sub-queue being not processed for a threshold time period, it may be determined that a failure has occurred in the first update module.
According to an aspect of an example embodiment, there is provided a document management system for providing an edit service of an online document, the document management system including at least one processor to implement: a first transmission/reception module configured to receive edit data from a plurality of communication terminals; a queue processing module configured to store the received edit data; an update module configured to acquire the edit data stored in the queue processing module and reflect the acquired edit data in an online document; and a second transmission/reception module newly added by scale-out, wherein a second group including at least one communication terminal allocated to the second transmission/reception module among the plurality of communication terminals is determined, the first transmission/reception module is configured to receive edit data from a communication terminal of a first group excluding the second group among the plurality of communication terminals, and the second transmission/reception module is configured to receive edit data from the communication terminal of the second group.
The first transmission/reception module may be configured to release a session with at least one communication terminal included in the second group, and the second transmission/reception module may be configured to establish a session with the at least one communication terminal included in the second group.
The first transmission/reception module may be configured to transmit a session switching request message, which includes identification information of the second transmission/reception module, to the at least one communication terminal included in the second group.
The update module may be configured to reflect edit data of the first group, which is received from the communication terminal of the first group, in the online document, and store the edit data of the first group, which has been reflected in the online document, in a second data queue included in the queue processing module; and the second transmission/reception module may be configured to acquire the edit data of the first group from the second data queue and transmit the acquired edit data of the first group to at least one communication terminal included in the second group.
According to an aspect of an example embodiment, there is provided a document management system for providing an edit service of an online document, the document management system including at least one processor to implement: a transmission/reception module configured to receive edit data from a plurality of communication terminals; a queue processing module configured to store the received edit data; a first update module configured to acquire edit data for a plurality of documents, which are stored in the queue processing module, and reflect the acquired edit data in each document stored in a database; and a second update module newly added by scale-out, wherein a second group, which includes at least one document allocated to the second update module among the plurality of documents, is determined, the first update module is configured to acquire edit data of a first group, which is related to a document of the first group excluding the second group among the plurality of documents, from the queue processing module and reflect the acquired edit data of the first group in the document of the first group, and the second update module is configured to acquire edit data of the second group, which is related to a document of the second group among the plurality of documents, from the queue processing module and reflect the acquired edit data of the second group in the document of the second group.
The queue processing module may include at least one first sub-queue related to the document of the first group, and at least one second sub-queue associated with the document of the second group; the first update module may be configured to acquire the edit data of the first group by accessing the at least one first sub-queue; and the second update module may be configured to acquire the edit data of the second group by accessing the second sub-queue.
According to an aspect of an example embodiment, there is provided a computing system including: at least one processor; and at least one memory configured to store computer program, wherein the computer program is executable by the at least one processor to cause the at least one processor to perform: storing, in a first data queue, first edit data received from a first communication terminal; storing, in the first data queue, second edit data received from a second communication terminal; updating an online document by reflecting the first edit data and the second edit data stored in the first data queue in the online document; transmitting the first edit data to the second communication terminal; and transmitting the second edit data to the first communication terminal.
The above and other aspects and features of the present disclosure will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, in which:
Hereinafter, example embodiments of the present disclosure will be described with reference to the attached drawings. Advantages and features of the present disclosure and methods of accomplishing the same may be understood more readily by reference to the following detailed description of example embodiments and the accompanying drawings. The present disclosure may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the concept of the disclosure to those skilled in the art, and the present disclosure will be defined by the appended claims and their equivalents.
In describing the present disclosure, when it is determined that the detailed description of the related well-known configuration or function may obscure the gist of the present disclosure, the detailed description thereof will be omitted.
Hereinafter, embodiments of the present disclosure will be described with reference to the attached drawings:
As shown in
The communication terminals 100_1 to 100_n are computing devices such as a personal computer, a server, and a mobile communication terminal, and may communicate with the document management system 200 through the network 300. The communication terminals 100_1 to 100_n may be terminals owned by a document editor. According to one embodiment, after forming a session with the document management system 200, the communication terminals 100_1 to 100_n may receive a document to be edited from the document management system 200 and edit the received document.
The document management system 200 may be at least one computing system for storing and managing documents. The document management system 200 may provide an edit service of a document to the communication terminals 100_1 to 100_n. The document management system 200 may support the plurality of communication terminals 100_1 to 100_n to edit the same document. To this end, the document management system 200 may support various modules, as described below, to support a stable document management service.
As shown in
The database 250 may store a plurality of documents as a storage means. In this case, the document may be an online document in which editing is performed through online editing.
The transmission/reception processing module 210 may transmit edit data received from the network 300 to the transmission/reception module 220. For example, the transmission/reception processing module 210 may transmit the edit data received from the communication terminals 100_1 to 100_n to the transmission/reception module 220. When a plurality of transmission/reception modules 220 are provided, the transmission/reception processing module 210 may perform load balancing for traffic generated by the transmission/reception module 220.
In one embodiment, the transmission/reception processing module 210 may distribute and transmit the edit data received from the network 300 to each of the plurality of transmission/reception modules, based on a physical or logical port. For example, the transmission/reception processing module 210 may transmit edit data included in port numbers ranging from 1 to n (where, n is a natural number) to the first transmission/reception module, and may transmit edit data included in port numbers ranging from n+1 to m (m is a natural number greater than n+1) to the second transmission/reception module. In another embodiment, the transmission/reception processing module 210 may distribute and transfer the edit data received from the network 300 to each of the plurality of transmission/reception modules based on document identification information (for example, document ID). For example, the transmission/reception processing module 210 may transmit edit data related to document corresponding to identification information from 1 to n (where, n is a natural number) to the first transmission/reception module, and may transmit edit data related to document corresponding to identification information from n+1 to m (m is a natural number greater than n+1) to the second transmission/reception module.
The transmission/reception module 220 may store edit data acquired from the transmission/reception processing module 210 in a first data queue 232. In one embodiment, the edit data received by the transmission/reception module 220 may be stored in the first data queue 232. In addition, the transmission/reception module 220 may transmit edit data stored in a second data queue 234 to a destination by using the transmission/reception processing module 210. According to one embodiment, the transmission/reception module 220 may extract the data stored in the second data queue 234 in a first-in-first-out manner and transmit the extracted data to the destination.
The queue processing module 230 may include a first data queue 232 in which received edit data is stored, and a second data queue 234 in which edit data to be transmitted is stored, as data storage means. That is, the first data queue 232 may be a reception-only queue, and the second data queue 234 may be a transmission-only queue.
The first data queue 232 may store edit data prior to being reflected in a document. According to one embodiment, the first data queue 232 may store edit data including document identification information, editor identification information (i.e., user identification information), and an index of edit data. According to another embodiment, the first data queue 232 may store edit data in association with the document identification information, the editor identification information, and the index of edit data. In this case, the index may indicate identification information of each edit data for a corresponding document. For example, index ‘1’ may be assigned to first edit data for the document, and index ‘2’ may be assigned to second edit data for the document.
The second data queue 234 may store at least one edit data reflected in the document. According to one embodiment, the second data queue 234 may store edit data including the document identification information, the editor identification information, and the index of edit data.
In some embodiments, at least one of the first data queue 232 or the second data queue 234 may include a sub-data queue for each document. In this case, the sub-data queue is a dedicated queue in which a document is stored, and for example, edit data related to a first document may be stored in a first queue (i.e., a first sub-queue), and edit data related to a second document may be stored in a second queue (i.e., a second sub-queue).
The update module 240 may acquire at least one edit data for a document stored in a first data queue 232 and reflect the acquired edit data to the document stored in the database 250. In one embodiment, the update module 240 may acquire a document corresponding to document identification information included in edit data from the database 250, and may update the document by reflecting at least one edit data in the acquired document. When the edit data is successfully reflected, the update module 240 may store the edit data in the second data queue 234.
Hereinafter, in the following embodiment, a terminal used by a user 1 is a communication terminal 1, and a terminal used by a user 2 is a communication terminal 2. That is, a terminal used by a user n is referred to as a communication terminal n. Also, a user is an editor who edits a document, and the user and the editor may be used interchangeably.
Referring to
Also, the communication terminal 2 100_2 may transmit edit data #2 for the document #1, which is generated during editing of the document #1, to the document management system 200 (S407). In this case, the edit data #2 may include identification information of the document #1 and identification information of an editor 2. The transmission/reception processing module 210 of the document management system 200 may transmit the edit data #2 to the transmission/reception module 220, and the transmission/reception module 220 may transmit the edit data #2 to the queue processing module 230 (S409). Then, the queue processing module 230 may assign an index of the edit data #2 and store the edit data #2 including the index, the identification information of the document #1, and the identification information of the editor 2 in the first data queue 232 (S411).
In this way, in a state that the edit data #1 and the edit data #2, which are related to the document #1, are stored in the first data queue 232, the update module 240 may inquire and acquire the edit data related to the document #1 stored in the first data queue 232 (S413). At this time, the update module 240 may acquire the edit data #1 and the edit data #2 from the first data queue 232 as the data related to the document #1.
Subsequently, the update module 240 may update the document #1 by reflecting the edit data #1 and the edit data #2 in the document #1 stored in the database 250 (S415). In one embodiment, the update module 240 may merge the edit data #1 and the edit data #2 as one edit data, and may update the document #1 by reflecting the merged edit data in the document #1.
When the update for the document #1 is completed, the update module 240 may perform a process of storing the edit data #1 and the edit data #2 in the second data queue 234. According to one embodiment, the update module 240 may transmit the edit data #1 and the edit data #2 to the queue processing module 230 (S419), and the queue processing module 230 may store the edit data #1 and the edit data #2 in the second data queue 234. In another embodiment, the update module 240 may request the queue processing module 230 of queue movement for the edit data #1 and the edit data #2. In this case, the queue processing module 230 may acquire the edit data #1 and the edit data #2 from the first data queue 232, and may store the acquired edit data #1 and edit data #2 of the first data queue 232 in the second data queue 234.
In some embodiments, when the update for the document #1 is completed, the update module 240 may transmit an update completion message including the index of the edit data #1 and the index of the edit data #2 to the queue processing module 230. In this case, the queue processing module 230 may delete the edit data #1 and the edit data #2, which correspond to the corresponding index, from the first data queue 232, or may set each of the edit data #1 and the edit data #2 as a completed task. Therefore, among the edit data stored in the first data queue 232, edit data having an index of next order based on the index of the edit data #2 may be processed.
In response to storing the edit data #1 and the edit data #2 in the second data queue 234, the transmission/reception module 220 may inquire and acquire the edit data #1 and the edit data #2 for the document #1 from the second data queue 234 (S421). Subsequently, the transmission/reception module 220 may identify editor identification information included in each of the edit data #1 and the edit data #2.
The transmission/reception module 220 may transmit the edit data #2 to the communication terminal 1 100_1 except for the edit data #1 as the identification information of the editor 1 is included in the edit data #1 (S423). That is, the transmission/reception module 220 may transmit the edit data #2 to the communication terminal 1 100_1, which does not recognize occurrence of the edit data #2, without transmitting the edit data #1 to the communication terminal 1 1001 that has transmitted the edit data #1. Therefore, the edit data #2 may be reflected in the document #1 that is being edited in the communication terminal 1 100_1, so that the edit data #2 may be updated. That is, since a local resource is used in the communication terminal 1 100_1 and thus the edit data #1 is already reflected therein, the edit data #2 generated by the editor 2 may be transmitted to the communication terminal 1 100_1 and reflected in the document #1.
The transmission/reception module 220 may transmit the edit data #1 to the communication terminal 2 100_2 except for the edit data #2 as the identification information of the editor 2 is included in the edit data #2 (S425). That is, the transmission/reception module 220 may transmit the edit data #1 to the communication terminal 2 100_2, which does not recognize occurrence of the edit data #1, without transmitting the edit data #2 to the communication terminal 2 100_2 that has transmitted the edit data #2. Therefore, the edit data #1 may be reflected in the document #1 that is being edited in the communication terminal 2 100_2, so that the edit data #1 may be updated. That is, since a local resource is used in the communication terminal 2 100_2 and thus the edit data #2 is already reflected therein, the edit data #1 generated by the editor 1 may be transmitted to the communication terminal 2 100_2 and reflected in the document #1.
The transmission/reception module 220 may transmit a transmission completion message including the index of the edit data #1 and the index of the edit data #2 to the queue processing module 230 when the edit data is successfully transmitted to each of the communication terminal 1 100_1 and the communication terminal 2 100_2. In this case, the queue processing module 230 may delete the edit data #1 and the edit data #2, which correspond to the corresponding index, from the second data queue 234, or may set each of the edit data #1 and the edit data #2 as a completed task. Therefore, among the edit data stored in the second data queue 234, edit data having an index of next order based on the index of the edit data #1 and #2 may be processed at next cycle.
Meanwhile, in some embodiments, the transmission/reception module 220 may transmit all edit data for the document #1 inquired from the second data queue 234 to the communication terminal 1 100_1 and the communication terminal 2 100_2 without selecting a transmission target of edit data.
According to the present embodiment, even though documents are simultaneously edited, edit data may be stably reflected in the documents. In addition, the received edit data may be stored in the first data queue 232, and edit data to be transmitted may be stored in the second data queue 234, so that the edit data may be reflected in the document without loss of the edit data.
Meanwhile, the transmission/reception module and the update module may be dualized.
As illustrated in
When a failure occurs in any one of the reception modules 222 and 224, the reception module, which operates normally, may process the edit data on behalf of the reception module in which a failure occurs. Also, when a failure occurs in any one of the transmission modules 226 and 228, the transmission module, which operates normally, may transmit the edit data on behalf of the transmission module in which a failure occurs. In addition, when a failure occurs in any one of the update modules 242 and 244, the update module 242 or 244, which operates normally, may reflect the edit data in the document of the database 250 on behalf of the update module 242 or 244 in which a failure occurs.
Hereinafter, a method for responding to a failure after each module is dualized will be described.
When the failure of the transmission/reception module 1 220_1 occurs, edit data 62 generated by the editor 1 may be transmitted to the transmission/reception module 2 220_2.
In this case, the transmission/reception module 2 220_2 may transmit the edit data 62 to the queue processing module 230 to store the edit data 62 in the first data queue 232 included in the queue processing module 230. In addition, the update module 240 may acquire the edit data 62 from the first data queue 232 and reflect the acquired edit data 62 in the document stored in the database 250 to update the document. Also, the transmission/reception module 2 220_2 may acquire, from the second data queue 234 of the queue processing module 230, edit details 64 that are not received by the editor 1 due to the failure of the transmission/reception module 1 220_1, and may provide the edit details 64 to the editor 1. In this case, the edit details 64 that are not received by the editor 1 may include edit data edited by the editors 2 to 4 while the failure of the transmission/reception module 1 220_1 occurs.
Referring to
Next, the queue processing module 230 may store the edit data #3 and the edit data #4 in the first data queue (S705). In this case, the queue processing module 230 may store the edit data #3 in association with identification information of a user 3 and store the edit data #4 in association with identification information of a user 4. In addition, the queue processing module 230 may assign an index to each of the edit data #3 and the edit data #4 and store the index in the first data queue.
Subsequently, the update module 240 may acquire the edit data #3 and the edit data #4 from the first data queue by inquiring the first data queue (S707). Next, the update module 240 may update the document by reflecting the edit data #3 and the edit data #4 in the document stored in the database. In some embodiments, the update module 240 may merge the edit data #3 and the edit data #4 into one edit data, and then may reflect the merged edit data in the document. Therefore, the user 3 and the content edited by the user 3 may be reflected in the document.
Next, when the edit data #3 and the edit data #4 are completely updated, the update module 240 may perform a process of storing the edit data #3 and the edit data #4 in the second data queue 234 (S711 and S713). According to one embodiment, the update module 240 may directly access the second data queue 234 to store the edit data #3 and the edit data #4 in the second data queue 234. The edit data #3 may include identification information of the editor 3, and the edit data #4 may include identification information of the editor 4.
The communication terminal 1 may detect that a failure has occurred in transmission/reception module 1 220_1 while transmitting edit data #5 to transmission/reception module 1 220_1 (S715). For example, when the communication terminal 1 does not receive a response (e.g., ACK) to data reception from the transmission/reception module 1 220_1 for a threshold time period after transmitting the edit data #5 to the transmission/reception module 1 220_1, the communication terminal 1 may determine that a failure has occurred in the transmission/reception module 1 220_1.
In response to the occurrence of the failure of the transmission/reception module 1 220_1, the communication terminal 1 may transmit the edit data #5 and an index of edit data, which is received so far, to the transmission/reception module 2 220_2 (S717). In this case, it is described that the index of the edit data is an index (e.g., index #2) of the edit data #2.
Next, the transmission/reception module 2 220_2 may transmit the edit data #5 to the queue processing module 230 (S719). Subsequently, the queue processing module 230 may assign an index (e.g., index #5) of the edit data #5 and store the edit data #5, to which the index is assigned, in the first data queue (S720).
The update module 240 may acquire the edit data #5 by inquiring the first data queue (S721). Subsequently, the update module 240 may update the document stored in the database by reflecting the edit data #5 in the document (S723).
Next, when the edit data #5 is completely updated, the update module 240 may transmit the edit data #5 to the queue processing module 230 to store the edit data #5 in the second data queue (S725 and S727). The edit data #5 may include identification information of the editor 1.
Then, the transmission/reception module 2 220_2 may acquire the edit data #3 and the edit data #4, which are transmitted to the communication terminal 1, and the edit data #3 and the edit data #5, which are transmitted to the communication terminal 3 and the communication terminal 4, by inquiring the second data queue (S729). According to one embodiment, the transmission/reception module 2 220_2 may determine that edit data, which are not received in the communication terminal 1, the edit data #3 and the edit data #4, based on the index received from the communication terminal 1 in step S717. That is, the transmission/reception module 2 220_2 receives the edit data #3, the edit data #4 and the edit data #5, which are edit data having an index after the index received from the communication terminal 1, from the second data queue, wherein the edit data #5 may be excluded from a transmission target as the identification information of the editor 1 is included in the edit data #5.
Subsequently, the transmission/reception module 2 220_2 may transmit the edit data #3 and the edit data #4 to the communication terminal 1 (S731). Therefore, the communication terminal 1 may receive the edit data #3 and the edit data #4, which are not received due to the failure of the transmission/reception module 1 220_1, and may reflect the received edit data #3 and edit data #4 in a local document that is being edited.
Next, the transmission/reception module 2 220_2 may transmit the edit data #5 to each of the communication terminal 3 and the communication terminal 4 (S733). Therefore, each of the communication terminal 3 and the communication terminal 4 may reflect a document editing content (i.e., edit data #5) of the editor 1 in the local document.
According to the present embodiment, even though a failure occurs in the transmission/reception module 1 220_1, normal document update and transmission and reception of the edit data may be performed through the transmission/reception module 2 220_2 without loss of the edit data.
As shown in
The queue processing module 230 may store the edit data #6 received from the transmission/reception module 220 in the second sub-queue of the first data queue (S901). The update module 2 244 may acquire the edit data #6 by inquiring the first data queue in response to storing the edit data #6 in the even-numbered sub-queue (S903). Subsequently, the update module 2 244 may update the document by reflecting the edit data #6 in the document stored in the database (S905). Additionally, the update module 2 244 may store the edit data #6 in the second data queue of the queue processing module 230. In this case, the edit data #6 stored in the second data queue may be transmitted to at least one communication terminal through the transmission/reception module 220.
In addition, the queue processing module 230 may store edit data #7 received from the transmission/reception module 220 in a third sub-queue of the first data queue (S907). However, the edit data #7 may not be processed due to the failure of the update module 1 242 that is in charge of the odd-numbered sub-queues. The queue processing module 230 may detect that a failure has occurred in the update module 1 242 when the processing for the edit data #7 is not completed for a preset time (S909).
In response to the occurrence of the failure of the update module 2 244, the queue processing module 230 may request a failure response to the update module 2 244 (S911). At this time, the queue processing module 230 may provide an index of the edit data #7, which has not been processed by the update module 1 242, to the update module 244.
Next, the update module 1 242 may acquire the edit data #7 stored in the third sub-queue, which is not processed by the update module 1 242, by inquiring the first data queue (S913). Subsequently, the update module 2 244 may update the document by reflecting the edit data #7 to the document stored in the database (S915). Additionally, the update module 2 244 may store the edit data #7 in the second data queue of the queue processing module 230. In this case, the edit data #7 stored in the second data queue may be transmitted to at least one communication terminal through the transmission/reception module 220.
According to the present embodiment, even though a failure occurs in the update module 1 242, a normal document update may be performed through the update module 2244 without loss of the edit data.
Hereinafter, still another embodiment in which a module of a wireless management system is scaled out will be described with reference to
In this environment, the transmission/reception module 2 220_2 may be added. In this case, the editors 4 to 6 who are forming a session with the transmission/reception module 1 220_1 may switch the session from the transmission/reception module 1 220_1 to the transmission/reception module 2 220_2. Therefore, the transmission/reception module 1 220_1 may form a session with the editors 1 to 3 to process edit data generated in the editors 1 to 3. In addition, the transmission/reception module 2 220_2 may form a session with the editors 4 to 6 to process edit data generated in the editors 4 to 6.
Referring to
In this way, in a state that the communication terminals 1 to 6 form a session with the transmission/reception module 1 220_1, the transmission/reception module 2 220_2 may be added to the document management system, or the transmission/reception module 2 220_2 may be recovered from the failure. In this case, the transmission/reception module 2 220_2 may transmit a participation notification message to the queue processing module 230 (S1105).
Next, the queue processing module 230 may transmit the participation notification message for the transmission/reception module 2 220_2 to the transmission/reception module 1 220_1 (S1107). At this time, the queue processing module 230 may transmit identification information (e.g., IP address) of the transmission/reception module 2 220_2 to the transmission/reception module 1 220_1.
Subsequently, the transmission/reception module 1 220_1 may determine some of terminals being session-connected thereto as distribution terminals (S1109). In
However, before the session switching is completed by the communication terminals 4 to 6, edit data #8 may be transmitted to the transmission/reception module 1 220_1 through at least one of the communication terminals 1 to 3 (S1113). In this case, the transmission/reception module 1 220_1 may transmit the edit data #8 to the queue processing module 230 (S1115), and the queue processing module 230 may store the edit data #8, which includes an index and editor identification information, in the first data queue (S1117).
Subsequently, the update module may acquire the edit data #8 by inquiring the first data queue (S1119). Next, the update module may update the document by reflecting the edit data #8 in the document stored in the database (S1121). When the document update is completed, the update module may transmit the updated edit data #8 to the queue processing module 230 (S1123). Subsequently, the queue processing module 230 may store the edit data #8 in the second data queue (S1125).
When the edit data #8 is stored in the second data queue, the transmission/reception module 1 220_1 may acquire the edit data #8 from the second data queue and transmit the acquired edit data #8 to some or all of the communication terminals 1 to 3. At this time, the transmission/reception module 1 220_1 may transmit the edit data #8 to the remaining communication terminals except for the communication terminal that has transmitted the edit data #8.
The communication terminals 4 to 6 that have released the session with the transmission/reception module 1 220_1 may form a session with the transmission/reception module 2 220_2 (S1127). When the session is completely formed, the transmission/reception module 2 220_2 may acquire the edit data #8 by inquiring the second data queue (S1129). Then, the transmission/reception module 2 220_2 may transmit the acquired edit data #8 to each of the communication terminals 1 to 3 (S1131).
According to the present embodiment, scale-out of the transmission/reception module may be normally performed even without interruption of the document management system. In addition, according to the present embodiment, even though edit data is generated while the transmission/reception module is being added in accordance with scale-out, the edit data may be reflected in the document without loss, and may be stably provided to another editor.
In this system environment, the update module 2 244 may be added as illustrated in a reference numeral 1220 of
Referring to
The update module 2 244 may be added to the system environment or recovered from the failure to transmit the participation notification message to the queue processing module 230 (S1303). Then, the queue processing module 230 may redistribute the sub-queues. In
Subsequently, the update module 1 242 may be responsible for the first sub-queue and the second sub-queue based on the received queue distribution information. That is, the update module 1 242 may acquire edit data for the documents A and B by inquiring the first sub-queue and the second sub-queue in the first data queue (S1311). When the edit data is acquired, the update module 1 242 may reflect the edit data in at least one of the document A or the document B by using the acquired edit data.
The update module 2 244 may be responsible for the third sub-queue and the fourth sub-queue based on the received queue distribution information. That is, the update module 1 242 may acquire the edit data for the documents C and D by inquiring the third sub-queue and the fourth sub-queue in the first data queue (S1313). When the edit data is acquired, the update module 2 244 may reflect the edit data in at least one of the document C or the document D by using the acquired edit data.
According to the present embodiment, scale-out for the update module may be stably performed without data loss even without interruption of the operation of the document management system.
The processor 1100 controls the overall operation of each component of the computing system 1000. The processor 1100 may perform an operation for at least one application or program for executing the method/operation according to various embodiments of the present disclosure. The memory 1400 stores various data, commands and/or information. The memory 1400 may load one or more computer programs 1500 from the storage 1300 to execute the method/operations according to various embodiments of the present disclosure. The storage 1300 may non-temporarily store one or more computer programs 1500. The computer program 1500 may include one or more instructions in which the method/operations according to various embodiments of the present disclosure are implemented. When the computer program 1500 is loaded into the memory 1400, the processor 1100 may execute the one or more instructions to perform the method/operations according to various embodiments of the present disclosure.
In some embodiments, the computing system 1000 described with reference to
According to one embodiment, the computer program 1500 may include instructions for performing an operation of storing first edit data received from a first communication terminal in a first data queue, an operation of storing second edit data received from a second communication terminal in the first data queue, an operation of updating an online document by reflecting the first and second edit data stored in the first data queue in the online document, an operation of transmitting the first edit data to the second communication terminal, and an operation of transmitting the second edit data to the first communication terminal.
So far, a variety of embodiments of the present disclosure and the effects according to embodiments thereof have been mentioned with reference to
The technical features of the present disclosure described so far may be embodied as computer readable codes on a computer readable medium. The computer readable medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer equipped hard disk). The computer program recorded on the computer readable medium may be transmitted to other computing device via a network such as internet and installed in the other computing device, thereby being used in the other computing device.
Although operations are shown in a specific order in the drawings, it should not be understood that desired results may be obtained when the operations must be performed in the specific order or sequential order or when all of the operations must be performed. In certain situations, multitasking and parallel processing may be advantageous. According to the above-described embodiments, it should not be understood that the separation of various configurations is necessarily required, and it should be understood that the described program components and systems may generally be integrated together into a single software product or be packaged into multiple software products.
In concluding the detailed description, those skilled in the art will appreciate that many variations and modifications may be made to the example embodiments without substantially departing from the principles of the present disclosure. Therefore, the disclosed example embodiments of the disclosure are used in a generic and descriptive sense only and not for purposes of limitation.
Number | Date | Country | Kind |
---|---|---|---|
10-2022-0066553 | May 2022 | KR | national |