Resolution of conflicts during synchronization multiplayer online-application
In information technology synchronization problem is quite urgent: the synchronization required when providing multi-tasking operating systems, in parallel and multi-threaded programming, with multi-user database. Besides synchronization process there is also the problem of synchronization of data, i.e. bringing copies of large amounts of data to one version, for example, use of cloud services, update mirroring servers or remote databases. Data synchronization can occur singly or in real time, for example, in the distributed databases and the multi-user online applications. Task of synchronization of multiplayer online applications is different from other similar tasks. Its features are a critical time delays, reject all but one of the conflicting requests, the execution of their own actions (or cancellation of incoming events) in the application before return of a special response from the server, optionally (but preferably) lock objects on the editing, the possibility of conflict of different user selection rules for related events. Multi-user applications can be divided into online games and applications of collaborative editing. Multiplayer games differ from collaborative editing systems by the presence of competition, conflicts arise there not only due to simultaneous access, but also different (due to time delays) developments in various client applications of system. For conflict resolution two selection rules can be used, they based on the time sequence of receipt requests: select the first or the last user. For the authors of events the sequence is determined by the returned from the server echo events: before the return of the echo received events are considered as events occurred before, and after returning of the echo - as events occurred later. Similar conclusions are qualified because used data transfer protocols provides a unified order for receipt of messages to all customers. For conflict resolution is also used the lock of the editing object. Selecting an object certainly precedes block event (and then edit event), for which there is determined the choice rule (first or last user). Lock, unlock, edit and deselection are only available to the user that has selected an object. Locked element is also not available for the new events of editing. These rules are implemented in the proposed algorithms. For a system with a client-server architecture, in which events are processed on the client side, messages are sent to the server each time interval, the server provides the storage of messages, and the application implements the events editing objects, there is developed methodology of synchronizing of multi-user online applications. As part of this methodology there are proposed to list all the synchronized events, to define a policy for them for resolving the conflicts, to develop content and order of storage on the server. For a software implementation in the application code there are proposed to add a class of network interface responsible for connection to the server, the class journal in which application events are recorded, and where network events are processed. The main class must provide the registration function of the events in the journal. In classes of used objects there are offered to add a variable that stores the user ID, flag of the object lock, function calls of event logging, which is determined in the main class. The paper also presents the algorithm for processing of incoming messages to the client application designed for journal class. The developed methodology was eventually used to synchronize the flash-application "Brainstorm" in the webinars (i.e., virtual meetings) Adobe Connect Meeting 9. The application allows you to build logic tree together, to determine the color, stroke width, and other parameters of vertices and connecting them lines, specify the text labels to the tops. There are 14 kinds of events that synchronized in application, including removing and adding vertices, changing settings and vertices moving, loading the project, the interval timing, and other events.
Keywords
синхронизация, многопользовательское приложение, конфликт доступа, блокировка, совместное редактирование, synchronization, multiplayer application, access conflict, locking, collaborative useAuthors
Name | Organization | |
Tsareva Elena V. | Tomsk Polytechnic University | tsareva@tpu.ru |
References

Resolution of conflicts during synchronization multiplayer online-application | Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitelnaja tehnika i informatika – Tomsk State University Journal of Control and Computer Science. 2016. № 1(34).