KR102284043B1 - Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof - Google Patents

Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof Download PDF

Info

Publication number
KR102284043B1
KR102284043B1 KR1020200081119A KR20200081119A KR102284043B1 KR 102284043 B1 KR102284043 B1 KR 102284043B1 KR 1020200081119 A KR1020200081119 A KR 1020200081119A KR 20200081119 A KR20200081119 A KR 20200081119A KR 102284043 B1 KR102284043 B1 KR 102284043B1
Authority
KR
South Korea
Prior art keywords
time
server
terminal
signal
client
Prior art date
Application number
KR1020200081119A
Other languages
Korean (ko)
Inventor
원종운
김수영
Original Assignee
주식회사 아이엠파인
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 아이엠파인 filed Critical 주식회사 아이엠파인
Priority to KR1020200081119A priority Critical patent/KR102284043B1/en
Application granted granted Critical
Publication of KR102284043B1 publication Critical patent/KR102284043B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/325
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Provided is a technology which quickly and accurately synchronizes time between terminals in a client-server environment and simultaneously executes a process in a plurality of terminals on the basis of time synchronization to build a multi-terminal process execution environment. According to one embodiment of the present invention, a method for synchronizing time between terminals including a computing device, which includes one or more processors and one or more memories storing instructions executable by the processors, and simultaneously executing a plurality of terminals by using time synchronization comprises: a delay time calculation step of transmitting, by a client terminal, a first signal to a server terminal and using a transmission time of the first signal and a reception time of a second signal to calculate a delay time between the client terminal and the server terminal when receiving the second signal, which is a response signal to the first signal, transmitted from the server terminal; a server timestamp receiving step of receiving, by the client terminal, a timestamp of the server terminal which is a signal for absolute time transmitted from the server terminal; and a timestamp setting step of setting, by the client terminal, the absolute time of the client terminal to a value obtained by adding the time delay time calculated by the delay time calculation step to the timestamp of the server terminal received by the server timestamp receiving step.

Description

단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법, 시스템 및 컴퓨터-판독가능 기록매체{METHOD, APPARATUS AND COMPUTER READABLE RECORDING MEDIUM FOR TIME SYNCHRONIZATION BETWEEN DEVICES AND SIMULTANEOUS EXECUTION OF MULTIPLE DEVICES USING THEREOF}Time synchronization between terminals and simultaneous execution method of multiple terminals using the same, system and computer-readable recording medium

본 발명은 다수의 단말을 통한 프로세스 진행 환경 하에서 다수의 단말 간의 프로세스 실행 시점 차이를 제거하기 위한 단말간 시간 동기화 및 이를 이용한 동시 프로세스 실행에 관련된 것으로, 구체적으로는 GPS 등 별도의 시간 동기화를 위한 구성이 필요하지 않고, 클라이언트-서버 환경 및 다수 클라이언트 환경에서 매우 빠르고 정확하게 단말 간의 시간을 동기화하고, 이를 바탕으로 다수 단말에서 프로세스를 동시에 실행하여 다수 단말 프로세스 실행 환경의 구축이 가능하도록 하기 위한 기술에 관한 것이다.The present invention relates to time synchronization between terminals to eliminate a difference in process execution time between a plurality of terminals under a process progress environment through a plurality of terminals and to concurrent process execution using the same, specifically, a configuration for separate time synchronization such as GPS technology for enabling the construction of a multi-terminal process execution environment by synchronizing time between terminals very quickly and accurately in a client-server environment and multiple client environments, and simultaneously executing processes in multiple terminals based on this will be.

컴퓨팅 장치의 처리 기술의 발달 및 멀티미디어 환경의 다변화에 따라서 다수의 단말이 하나의 프로세스를 동시에 실행하여 예를 들어 다수의 출력 장치에서 전체 영상의 일부를 출력함에 따라서 하나의 콘텐츠가 다수의 출력 장치를 이용하여 하나의 모니터에서 출력되는 것과 같은 콘텐츠 재생 기술이 구현되고 있다.According to the development of processing technology of computing devices and the diversification of the multimedia environment, as a plurality of terminals execute one process at the same time to output, for example, a part of the entire image from a plurality of output devices, one content is transmitted to a plurality of output devices. A content reproduction technology such as output from a single monitor using the

이는, 프로세스의 실행 시, 각 단말의 위치 및 식별 정보를 기준으로 각 단말마다 전체 프로세스의 일부를 실행하도록 프로세스 영역을 매칭하고, 각 단말에 동시에 해당 프로세스를 실행하도록 하는 일련의 클라이언트-서버 환경 또는 다수 클라이언트 환경의 단말 구조의 구현 및 이에 대한 제어에 따라서 가능하다.This is a series of client-server environments or It is possible depending on the implementation and control of the terminal structure of the multiple client environment.

이러한 환경에서 특히 멀티미디어 재생과 같이, 특정 영상을 각 단말에서 분할 출력하여 하나의 콘텐츠를 재생하도록 하는 환경에서는, 각 단말에서 각 프로세스를 실행 시, 실행 시점이 완전히 동기화되어야만 한다. 즉 멀티미디어 재생 시점이 조금이라도 단말 간에 차이가 발생하면, 하나의 콘텐츠를 재생하는 것이 불가능하기 때문이다.In such an environment, especially in multimedia playback, in an environment in which a specific image is divided and output in each terminal to reproduce one content, when each process is executed in each terminal, the execution time must be completely synchronized. That is, if there is even a slight difference in the multimedia playback timing between terminals, it is impossible to reproduce one content.

즉, 상술한 환경에서 단말간의 시간, 즉 타임스탬프를 동기화시키는 것은 프로세스의 실행 시 필수적인 조건이 되는데, 최근에는 다양한 기술로서 단말간 시간 동기화를 구현하는 기술이 개발되고 있다.That is, in the above-described environment, synchronizing the time between terminals, that is, the timestamp is an essential condition when executing a process. Recently, various technologies for implementing time synchronization between terminals have been developed.

예를 들어 한국 등록특허 제10-1613594호 등에서는, 다수 단말 또는 단말의 환경에서 GPS 등의 절대적 타임스탬프를 갖는 구성을 포함시키고, GPS의 타임스탬프에 따라서 단말 사이의 시간을 동기화하게 된다. For example, Korean Patent Registration No. 10-1613594, etc. includes a configuration having an absolute timestamp such as GPS in the environment of multiple terminals or terminals, and synchronizes the time between terminals according to the timestamp of the GPS.

이러한 선행 기술들은 GPS 등의 정확한 절대 타임스탬프를 갖는 기준을 통해서 시간을 동기화하는 측면에서 정확성은 담보될 수 있으나, GPS 수신이 불가능한 경우에는 해당 기술을 구현하는 것이 사실상 불가능하고, 별도의 GPS 수신 모듈 등을 설치해야 하기 때문에 시간 동기화의 프로세스가 복잡한 동시에 별도의 구축 비용이 드는 문제가 있다. In these prior technologies, accuracy can be guaranteed in terms of synchronizing time through a reference having an accurate absolute timestamp such as GPS, but when GPS reception is not possible, it is virtually impossible to implement the technology, and a separate GPS reception module There is a problem in that the process of time synchronization is complicated and a separate construction cost is required because it needs to be installed.

이에 본 발명은, 별도의 시간 동기화를 위한 구성이 전혀 필요하지 않고, 매우 빠르고 정확하게 단말간의 시간을 동기화하도록 하여, 다수 단말 환경에서 프로세스의 단말 간 오차 없는 실행을 위한 기술을 제공하는 데 일 목적이 있다.Accordingly, an object of the present invention is to provide a technique for error-free execution of a process between terminals in a multi-terminal environment by enabling very fast and accurate time synchronization between terminals without requiring any configuration for separate time synchronization. there is.

또한 본 발명은 프로세스 실행 제어에 있어서, 단말간의 동기화된 시간 및 데이터 전송 딜레이를 고려하여 정확하게 프로세스가 다수 단말에서 실행될 수 있는 제어 기술을 제공하여, 단말 간 시간 동기화 및 해당 환경에서의 프로세스 실행 동기화를 매우 빠르고 정확하게 구현하도록 하는 데 다른 목적이 있다.In addition, in the process execution control, the present invention provides a control technology that allows the process to be executed accurately in multiple terminals in consideration of the synchronized time and data transmission delay between terminals, thereby achieving synchronization of time between terminals and synchronization of process execution in the environment. Another purpose is to make the implementation very fast and accurate.

상술한 목적들을 달성하기 위해서, 본 발명의 일 실시예에 따른 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법은, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치를 포함하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법에 관한 것으로, 클라이언트 단말이 서버 단말에 제1 신호를 송신하고, 제1 신호를 송신한 서버 단말로부터 송출되는 제1 신호에 대한 응답 신호인 제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간을 연산하는 딜레이 시간 연산 단계; 상기 클라이언트 단말이 서버 단말로부터 송출되는 절대 시간에 대한 신호인 서버 단말의 타임스탬프를 수신하는 서버 타임스탬프 수신 단계; 및 상기 클라이언트 단말이 클라이언트 단말의 절대 시간을 상기 서버 타임스탬프 수신 단계에 의하여 수신한 서버 단말의 타임스탬프에 상기 딜레이 시간 연산 단계에 의하여 연산된 상기 타임 딜레이 시간을 더한 값으로 세팅하는 타임스탬프 세팅 단계; 를 포함하는 것을 특징으로 한다. In order to achieve the above objects, time synchronization between terminals and the simultaneous execution method of multiple terminals using the same according to an embodiment of the present invention includes one or more processors and one or more memories for storing instructions executable in the processor To a method for synchronizing time between terminals including a computing device and a method for simultaneously executing multiple terminals using the same, wherein a client terminal transmits a first signal to a server terminal, and a first signal transmitted from a server terminal that has transmitted the first signal a delay time calculation step of calculating a time delay time between the client terminal and the server terminal by using the transmission time of the first signal and the reception time of the second signal when receiving the second signal as a response signal; a server timestamp receiving step of receiving, by the client terminal, a timestamp of the server terminal, which is a signal for absolute time transmitted from the server terminal; and a timestamp setting step in which the client terminal sets the absolute time of the client terminal to a value obtained by adding the time delay time calculated by the delay time calculation step to the timestamp of the server terminal received by the server timestamp receiving step. ; It is characterized in that it includes.

상기 딜레이 시간 연산 단계는, 상기 제1 신호를 송신 시 상기 제1 신호를 송신한 시점을 송출 시점으로 감지하는 송출 시점 감지 단계; 상기 제2 신호를 수신 시 상기 제2 신호를 수신한 시점을 수신 시점으로 감지하는 수신 시점 감지 단계; 상기 송신 시점과 상기 수신 시점의 오차 시간을 2로 나눈 값을 샘플 딜레이 시간으로 연산하는 샘플 딜레이 연산 단계; 및 상기 송출 시점 감지 단계, 상기 수신 시점 감지 단계 및 상기 샘플 딜레이 연산 단계를 차례로 기설정된 횟수만큼 수행한 결과 산출된 샘플 딜레이 시간의 평균값을 상기 타임 딜레이 시간으로 연산하는 딜레이 시간 산출 단계; 를 포함하는 것이 바람직하다.The delay time calculation step may include: a transmission time detection step of detecting a transmission time point at which the first signal is transmitted as a transmission time point when the first signal is transmitted; a reception time detection step of detecting the reception time of the second signal as a reception time when the second signal is received; a sample delay calculation step of calculating a value obtained by dividing an error time between the transmission time and the reception time by 2 as a sample delay time; and a delay time calculation step of calculating an average value of the sample delay times calculated as a result of performing the transmission timing detection step, the reception timing detection step, and the sample delay calculation step a predetermined number of times as the time delay time; It is preferable to include

상기 딜레이 시간 산출 단계는, 상기 평균값의 도출 대상이 되는 샘플 딜레이 시간 중, 최대값, 최소값, 및 제1 신호의 송신 및 제2 신호의 수신이 정상적으로 이루어지지 않은 신호값인 오류값에 해당하는 샘플 딜레이 시간을 제외하고 상기 타임 딜레이 시간을 연산하는 것이 바람직하다.In the step of calculating the delay time, a maximum value, a minimum value, and an error value that is a signal value in which transmission of the first signal and reception of the second signal are not normally performed among the sample delay times for which the average value is derived. It is preferable to calculate the time delay time excluding the delay time.

시간 동기화 대상이 되는 단말이 서버-클라이언트 환경이 아닌 다수 클라이언트 단말 환경의 단말인 경우, 시간 동기화를 위한 별도 서버인 타임 싱크 서버가 상기 서버 단말로 기능하며, 상기 타임 싱크 서버에 할당되어 상기 딜레이 시간 연산 단계, 상기 서버 타임스탬프 수신 단계 및 상기 타임스탬프 세팅 단계가 수행되는 클라이언트 단말의 최대 개수가 기설정된 제1 개수이며, 상기 클라이언트 단말의 개수가 상기 제1 개수를 초과하는 제2 개수인 경우, 상기 타임스탬프 세팅 단계의 실행 후, 상기 타임 싱크 서버가, 상기 타임스탬프 세팅 단계가 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 단말 갱신 단계;를 더 포함하는 것이 바람직하다.When the target terminal for time synchronization is a terminal in a multiple client terminal environment rather than a server-client environment, a time sync server, which is a separate server for time synchronization, functions as the server terminal, and is assigned to the time sync server to determine the delay time When the maximum number of client terminals for which the calculation step, the server timestamp receiving step, and the timestamp setting step are performed is a preset first number, and the number of the client terminals is a second number exceeding the first number, After execution of the timestamp setting step, the time sync server releases the assignment to the time sync server of the client terminal on which the timestamp setting step is completed, and assigns a new client terminal unassigned to the time sync server to the time sync server It is preferable to further include a; terminal update step of allocating to the time synchronization target.

상기 단말 갱신 단계의 수행 후, 상기 타임 싱크 서버가, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 할당 가능한지 여부를 판단하고, 모든 클라이언트 단말에 상기 타임스탬프 세팅 단계가 완료되어 새로운 클라이언트 단말을 할당할 수 없는 경우, 타임스탬프 세팅을 완료하는 세팅 완료 단계;를 더 포함하는 것이 바람직하다.After the terminal update step is performed, the time sync server determines whether it is possible to allocate a new client terminal that is not allocated to the time sync server, and the timestamp setting step is completed to allocate a new client terminal to all client terminals If it is not possible, it is preferable to further include a setting completion step of completing the timestamp setting.

상기 타임스탬프 세팅 단계의 반복 수행에 따라서 모든 클라이언트 단말에 대한 상기 타임스탬프 세팅 단계가 수행된 후, 상기 서버 단말이, 상기 타임스탬프 세팅 단계가 수행된 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어하는 프로세스 실행 제어 단계;를 더 포함하는 것이 바람직하다.After the timestamp setting step for all client terminals is performed according to the repeated execution of the timestamp setting step, the server terminal is executed simultaneously between at least two client terminals among the client terminals on which the timestamp setting step is performed. It is preferable to further include a process execution control step of controlling the client terminal to execute the process at a preset execution time based on a synchronized time when a process exists.

상기 프로세스 실행 제어 단계는, 서버 단말이 동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 상기 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅하는 상기 실행 시점 세팅 단계; 및 상기 서버 단말이 상기 프로세스 실행 명령 전송 시점에 상기 프로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 상기 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하는 명령 전송 단계; 를 포함하는 것이 바람직하다.In the process execution control step, the server terminal selects a maximum delay time that is the largest value among the time delay times calculated for a plurality of client terminals that are the execution targets of the process to be simultaneously executed, and the process execution time is at least a preset process. the execution time setting step of setting the process execution time to be a later time than the sum of the maximum delay time from the execution command transmission time; and transmitting, by the server terminal, a control command for executing a process at the process execution time point at the process execution command transmission time point to a plurality of client terminals to be executed of the process. It is preferable to include

한편 본 발명의 일 실시예에 따른 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 시스템은, 제1 신호를 송출하고, 기설정된 프로세스를 실행하는 클라이언트 단말; 및 상기 제1 신호를 수신하며, 제1 신호를 수신 시 응답 신호인 제2 신호를 상기 클라이언트 단말에 전송하며, 상기 프로세스의 실행에 관련된 제어 명령을 전송하는 서버 단말; 을 포함하고, 상기 클라이언트 단말은, 제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간을 연산하고, 상기 서버 단말로부터 송출되는 절대 시간에 대한 신호인 서버 단말의 타임스탬프를 수신한 뒤, 상기 클라이언트 단말의 절대 시간을 상기 서버 단말의 타임스탬프에 상기 타임 딜레이 시간을 더한 값으로 세팅하는 것을 특징으로 한다.Meanwhile, in accordance with an embodiment of the present invention, there is provided a system for synchronizing time between terminals and simultaneously executing multiple terminals using the same, comprising: a client terminal that transmits a first signal and executes a preset process; and a server terminal that receives the first signal, transmits a second signal that is a response signal when the first signal is received, to the client terminal, and transmits a control command related to execution of the process; Including, wherein, when receiving the second signal, the client terminal calculates a time delay time between the client terminal and the server terminal using the transmission time of the first signal and the reception time of the second signal, and After receiving the timestamp of the server terminal, which is a signal for the transmitted absolute time, the absolute time of the client terminal is set to a value obtained by adding the time delay time to the timestamp of the server terminal.

시간 동기화 대상이 되는 단말이 서버-클라이언트 환경이 아닌 다수 클라이언트 단말 환경의 단말인 경우, 시간 동기화를 위한 별도 서버인 타임 싱크 서버가 상기 서버 단말로 기능하며, 상기 타임 싱크 서버에 할당되어 상기 클라이언트 단말의 절대 시간의 세팅이 가능한 클라이언트 단말의 최대 개수가 기설정된 제1 개수이며, 상기 클라이언트 단말의 개수가 상기 제1 개수를 초과하는 제2 개수인 경우, 상기 타임 싱크 서버는, 상기 클라이언트 단말의 절대 시간에 대한 세팅이 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 것이 바람직하다.When the target terminal for time synchronization is a terminal in a multi-client terminal environment rather than a server-client environment, a time sync server, which is a separate server for time synchronization, functions as the server terminal, and is assigned to the time sync server and the client terminal When the maximum number of client terminals capable of setting the absolute time of is a preset first number and the number of client terminals is a second number exceeding the first number, the time sync server may It is preferable to release the assignment to the time sync server of the client terminal for which the time setting has been completed, and to allocate a new client terminal that is not allocated to the time sync server as a time synchronization target to the time sync server.

상기 서버 단말은, 모든 클라이언트 단말에 대한 절대 시간에 대한 세팅이 완료된 후, 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어하되, 동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 상기 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅한 뒤, 상기 프로세스 실행 명령 전송 시점에 상기 프로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 상기 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하는 것이 바람직하다.The server terminal executes the process at a preset execution time based on the synchronized time when there is a process to be simultaneously executed between at least two or more client terminals among the client terminals after the absolute time setting for all client terminals is completed control the client terminal to do so, but select a maximum delay time that is the largest value among the time delay times calculated for a plurality of client terminals that are targets of a process to be executed simultaneously, and a process execution command with at least a preset execution time After setting the process execution time to be a later time than the value obtained by adding the maximum delay time from the transmission time, the execution target of the process sends a control command to execute the process at the process execution time at the process execution command transmission time It is preferable to transmit to a plurality of client terminals.

본 발명에 의하면, 클라이언트-서버 환경이나 다수 클라이언트 환경에 있어서, 서버 또는 타임 싱크 서버 등의 간단한 컴퓨팅 장치와 클라이언트 단말의 데이터 송수신 및 응답 신호의 오차를 이용하여 딜레이 시간을 연산하고, 이를 기준 타임스탬프를 갖는 서버 또는 타임 싱크 서버에 더하는 매우 간단하고 직관적인 프로세스를 통해, 다수 단말의 시간을 정확하게 동기화할 수 있다.According to the present invention, in a client-server environment or a multi-client environment, a delay time is calculated using an error between data transmission/reception and response signals between a simple computing device such as a server or a time sync server and a client terminal, and this is used as a reference timestamp. Through a very simple and intuitive process of adding to a server or time sync server with

또한 해당 딜레이 시간을 이용하여 프로세스 실행 시점을 정함으로써, 서버에서 클라이언트로 제어 명령 전송 시 딜레이 시간에 따른 제어 명령 수신의 오류 등의 발생을 완전하게 차단하고, 정확하게 특정 시점에 모든 단말이 프로세스를 동시에 실행할 수 있도록 하여, 매우 간단하고 정확하게 다수 단말의 프로세스의 동시 실행이 가능하도록 하는 효과가 있다.In addition, by using the delay time to determine the execution time of the process, when the control command is transmitted from the server to the client, it completely blocks the occurrence of errors in receiving the control command according to the delay time, and all terminals simultaneously execute the process at a specific point in time. By making it possible to execute, there is an effect of enabling the simultaneous execution of processes of multiple terminals very simply and accurately.

도 1 내지 5는 본 발명의 일 실시예에 따른 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법의 플로우차트.
도 6은 본 발명의 일 실시예에 따른 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 시스템의 구조를 설명하기 위한 도면.
도 7은 다수 클라이언트 환경에서 타임 싱크 서버를 이용하여 단말 간의 시간을 동기화하는 방식을 설명하기 위한 도면.
도 8은 본 발명의 일 실시예의 구현에 따라서 단말 시간이 동기화되는 흐름을 설명하기 위한 도면.
도 9는 본 발명의 일 실시예의 구현에 따라서 다수 단말의 프로세스 실행이 동기화되는 흐름을 설명하기 위한 도면.
도 10는 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예.
1 to 5 are flowcharts of time synchronization between terminals and a method of simultaneously executing multiple terminals using the same according to an embodiment of the present invention.
6 is a diagram for explaining the structure of a system for simultaneous execution of multiple terminals using time synchronization between terminals according to an embodiment of the present invention;
7 is a view for explaining a method of synchronizing time between terminals using a time sync server in a multi-client environment;
8 is a diagram for explaining a flow in which terminal time is synchronized according to an implementation of an embodiment of the present invention;
9 is a diagram for explaining a flow in which process execution of multiple terminals is synchronized according to an implementation of an embodiment of the present invention;
10 is an example of an internal configuration of a computing device according to an embodiment of the present invention.

이하에서는, 다양한 실시 예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 인식될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다.Hereinafter, various embodiments and/or aspects are disclosed with reference to the drawings. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of one or more aspects. However, it will also be recognized by one of ordinary skill in the art that such aspect(s) may be practiced without these specific details. The following description and accompanying drawings set forth in detail certain illustrative aspects of one or more aspects. These aspects are illustrative, however, and some of various methods may be employed in the principles of various aspects, and the descriptions set forth are intended to include all such aspects and their equivalents.

본 명세서에서 사용되는 "실시 예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다.As used herein, “embodiment”, “example”, “aspect”, “exemplary”, etc. may not be construed as an advantage or an advantage in any aspect or design described herein over other aspects or designs. .

또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다.Also, the terms "comprises" and/or "comprising" mean that the feature and/or element is present, but excludes the presence or addition of one or more other features, elements and/or groups thereof. should be understood as not

또한, 제 1, 제 2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Also, terms including an ordinal number such as 1st, 2nd, etc. may be used to describe various components, but the components are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

또한, 본 발명의 실시 예들에서, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 실시 예에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, in the embodiments of the present invention, unless otherwise defined, all terms used herein, including technical or scientific terms, are those commonly understood by those of ordinary skill in the art to which the present invention belongs. have the same meaning. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in an embodiment of the present invention, an ideal or excessively formal meaning is not interpreted as

한편 본 발명에 있어서, 클라이언트 단말 및 서버 단말 중 적어도 어느 하나를 포함하는 단말은, 본 발명의 기능 수행이 가능한 기기로서 유/무선 전화기(wire/wireless telephone), 개인용 컴퓨터(Personal computer), 태블릿 PC(Tablet PC), 랩톱(Laptop), 스마트폰(Smartphone), 개인 휴대용 정보 단말기(Personal Digital Assistant) 및 이동통신 단말기(Mobile Communication Terminal) 중 어느 하나가 이용되는 것으로 이해될 수 있다.Meanwhile, in the present invention, a terminal including at least one of a client terminal and a server terminal is a device capable of performing the functions of the present invention, such as a wire/wireless telephone, a personal computer, and a tablet PC. (Tablet PC), laptop (Laptop), smart phone (Smartphone), personal digital assistant (Personal Digital Assistant), it can be understood that any one of a mobile communication terminal (Mobile Communication Terminal) is used.

본 발명에서 클라이언트 단말은 예를 들어 멀티미디어 콘텐츠를 재생하는 단말일 수 있다. 이때 클라이언트 단말은 실내외에 격자형태 등 서로 연결되도록 배치되거나 독립적으로 배치되어, 하나의 콘텐츠를 다수의 클라이언트 단말이 중복되거나 서로 연결되어 하나의 콘텐츠를 이루도록 기능할 수 있다. 예를 들어 멀티비전이나 비디오월 등을 구성하는 다수의 단말이 클라이언트 단말에 포함될 수 있는 것이다. 그러나 상술한 예 이외에 클라이언트 단말은 서버 단말의 제어에 따라서 서로 동시에 특정 프로세스를 실행하는 모든 단말을 포함하는 것으로 이해될 것이다.In the present invention, the client terminal may be, for example, a terminal that plays multimedia content. In this case, the client terminals are arranged to be connected to each other, such as in a lattice form, indoors and outdoors, or are arranged independently, so that a plurality of client terminals are overlapped or connected to each other to form one content. For example, a plurality of terminals constituting a multi-vision or video wall may be included in the client terminal. However, it will be understood that, in addition to the above-described examples, the client terminal includes all terminals that execute a specific process simultaneously with each other under the control of the server terminal.

서버 단말은, 상술한 프로세스의 실행에 있어서 다수의 클라이언트 단말을 동시 제어하는 단말을 의미하는데, 이때 클라이언트-서버 환경이 아니라, 다수의 클라이언트 단말이 피어투피어(P2P, Peer to Peer) 형태로 구성된 다수 클라이언트 환경에서는, 서버 단말의 기능을 수행하는 특정 클라이언트 단말을 의미하거나, 서버 단말의 기능을 수행하는 클라이언트 간의 제어 환경 그 자체를 의미하는 것으로 이해될 것이다. 또한 후술하는 타임 싱크 서버 역시 상술한 서버 단말과 동일한 개념으로 이해되거나, 타임 싱크 기능만을 수행하는 특정 클라이언트 단말 또는 별도의 단말을 의미하는 것으로 이해되어야 할 것이다.The server terminal means a terminal that simultaneously controls a plurality of client terminals in the execution of the above-described process. In this case, instead of in a client-server environment, a plurality of client terminals are configured in a peer-to-peer (P2P, Peer to Peer) format. In a multiple client environment, it will be understood to mean a specific client terminal performing a function of a server terminal, or a control environment itself between clients performing a function of a server terminal. In addition, a time sync server, which will be described later, should be understood as the same concept as the above-described server terminal, or to mean a specific client terminal or a separate terminal performing only a time synchronization function.

본 발명에서 프로세스는, 다수의 단말에서 서로 연결되거나 독립적으로 실행되어 하나의 기능을 수행하는 모든 기능 수행을 포함한다. 상술한 예에서 프로세스는 멀티미디어 콘텐츠의 재생 프로세스를 의미한다. 이외에, 물리적 이벤트 재생 프로세스, 결제 프로세스, 순차적 데이터 처리 프로세스 등 다수의 단말에서 동기화되어 수행되어야 하는 본 발명의 기능이 적용될 수 있는 모든 프로세스가 후술하는 프로세스에 포함되는 개념으로 이해될 것이다.In the present invention, the process includes performing all functions connected to each other or independently executed in a plurality of terminals to perform one function. In the above example, the process refers to a playback process of multimedia content. In addition, all processes to which the functions of the present invention that must be performed in synchronization in a plurality of terminals, such as a physical event reproduction process, a payment process, and a sequential data processing process, can be applied will be understood as a concept included in the process described below.

이러한 배경을 바탕으로 도 1을 먼저 참조하면, 본 발명에 있어서 클라이언트 단말은, 서버 단말에 제1 신호를 송신하고, 제1 신호를 송신한 서버 단말로부터 송출되는 제1 신호에 대한 응답 신호인 제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간을 연산하는 딜레이 시간 연산 단계(S10)를 수행한다. Referring to FIG. 1 based on this background, in the present invention, the client terminal transmits a first signal to the server terminal, and the first signal is a response signal to the first signal transmitted from the server terminal that has transmitted the first signal. When the second signal is received, a delay time calculation step (S10) of calculating a time delay time between the client terminal and the server terminal is performed using the transmission time of the first signal and the reception time of the second signal.

제1 신호는 예를 들어 타임스탬프 측정을 위한 단순 8Byte 크기의 기본 신호이거나, 실제 제어 명령 송수신 또는 프로세스 실행 등의 준비에 있어서 환경 설정 등, 서버 단말과 클라이언트 단말 사이에 있어서 클라이언트 단말에서 서버 단말에 전송되는 일련의 데이터 신호들 중, 8byte 크기의 신호에 해당하는 모든 신호를 포함할 수 있다. 즉, 본 발명에서는 시간 동기화를 위해서 제1 신호를 별도로 생성하여 송신하거나, 이러한 불필요한 데이터의 낭비를 막기 위해서, 프로세스 진행 전후에 실제로 특정 기능 수행을 위해서 클라이언트 단말에서 서버 단말로 송신되는 동일한 특정 크기(예를 들어 8Byte)의 모든 신호를 제1 신호로 가정하여 송신하게 된다. 후자의 예의 경우, 제1 신호에 대한 식별 값이 클라이언트 단말에 저장되어, 제1 신호로서 기능함을 인지하도록 할 수 있다.The first signal is, for example, a basic signal of a simple 8 Byte size for timestamp measurement, or between the server terminal and the client terminal, such as environment setting in preparation for actual control command transmission/reception or process execution, from the client terminal to the server terminal Among a series of transmitted data signals, all signals corresponding to 8-byte sized signals may be included. That is, in the present invention, in order to separately generate and transmit the first signal for time synchronization, or to prevent such unnecessary data waste, the same specific size ( For example, it is assumed that all signals of 8 bytes) are transmitted as the first signal. In the case of the latter example, the identification value for the first signal may be stored in the client terminal to recognize that it functions as the first signal.

한편, 제1 신호를 수신한 서버 단말에서는 이에 대한 응답, 즉 일종의 Ack 신호가 생성되어 클라이언트 단말에 전송될 수 있다. 해당 신호는 예를 들어 제1 신호를 잘 수신했음을 알리는 Ack 신호로서, 제1 신호의 수신 즉시 송출되어 클라이언트 단말에 전송되는 신호이다.Meanwhile, the server terminal receiving the first signal may generate a response, that is, a kind of Ack signal, and transmit it to the client terminal. The corresponding signal is, for example, an Ack signal indicating that the first signal has been successfully received, and is a signal that is transmitted immediately upon reception of the first signal and transmitted to the client terminal.

이때 클라이언트 단말은 제1 신호에 대한 송신 시점을 임시 저장하고, 제2 신호를 수신 시 제2 신호의 수신 시점을 임시 저장한 뒤, 해당 시점 사이의 시간을 연산한다. 이때 각 시점은 동기화되기 전 클라이언트 단말의 타임스탬프를 이용하여 측정된 뒤 시점 사이의 시간을 연산하는 방식으로 연산되거나, 제1 신호의 송신 시점은 0으로 하는 타이머가 제1 신호의 송신 시점부터 각각 동작하고, 제2 신호의 수신 시점을 체크하는 방식으로 연산되어, 타이머 값이 제1 신호의 송신 시점과 제2 신호의 수신 시점 사이의 시간으로 도출될 수 있다.In this case, the client terminal temporarily stores the transmission time of the first signal, and when receiving the second signal, temporarily stores the reception time of the second signal, and then calculates the time between the corresponding time points. At this time, each time point is calculated using the timestamp of the client terminal before synchronization and is calculated by calculating the time between the time points, or a timer that sets the time of transmission of the first signal to 0 is set from the time of transmission of the first signal. It operates and is calculated by checking the reception time of the second signal, so that the timer value may be derived as a time between the transmission time of the first signal and the reception time of the second signal.

제1 신호와 제2 신호의 송수신 시점 사이의 시간은 데이터 송수신을 위해서 동기화되는 데 있어서의 딜레이 시간, 즉 서버와 클라이언트 단말 사이의 타임 딜레이 시간으로 이용될 수 있다. 즉 서버에서 프로세스의 실행 명령이 전달되는데, 클라이언트 단말에 따라서 각 타임스탬프는, 해당 명령의 전달을 위한 신호 송신 시간만큼 딜레이를 반영해야만 다수의 클라이언트 단말의 시간이 완전하게 동기화될 수 있는 것이다.The time between the transmission/reception time of the first signal and the second signal may be used as a delay time in synchronization for data transmission/reception, that is, a time delay time between the server and the client terminal. That is, the execution command of the process is transmitted from the server. Depending on the client terminal, each timestamp must reflect a delay as much as the signal transmission time for the transmission of the corresponding command so that the time of a plurality of client terminals can be completely synchronized.

구체적으로 타임 딜레이 시간의 연산 프로세스인 S10 단계는 도 2에 도시된 바의 예와 같이 구체화되어 수행될 수 있다.Specifically, step S10, which is a process of calculating the time delay time, may be embodied and performed as in the example shown in FIG. 2 .

도 2를 참조하면, 클라이언트 단말은 먼저, 상술한 예와 같이, 제1 신호를 송신 시 상기 제1 신호를 송신한 시점을 송출 시점으로 감지하는 송출 시점 감지 단계(S11)를 수행하고, 제2 신호를 수신 시 제2 신호를 수신한 시점을 수신 시점으로 감지하는 수신 시점 감지 단계(S12)를 수행한다. Referring to FIG. 2 , the client terminal first, as in the above-described example, when transmitting the first signal, performs a transmission timing detection step (S11) of detecting the transmission timing of the first signal as the transmission timing, and a second When the signal is received, the reception time detection step S12 of detecting the reception time of the second signal as the reception time is performed.

이후 딜레이를 타임스탬프에 반영해야 하는 시간은 서버 단말에서 제어 명령이 클라이언트 단말에 송신되어야 하는 일방 신호 송신 시간에 해당하기 때문에, 송신 시점과 수신 시점의 오차 시간을 2로 나눈 값을 샘플 딜레이 시간으로 연산하는 샘플 딜레이 연산 단계(S13)가 수행된다. Since the time required to reflect the subsequent delay in the timestamp corresponds to the one-way signal transmission time during which the control command from the server terminal must be transmitted to the client terminal, the value obtained by dividing the error time between the transmission time and the reception time by 2 is used as the sample delay time. A sample delay calculation step S13 is performed.

S11 내지 S13 단계는 1회 수행시보다 다수회 수행 시 더욱 그 정확성이 높아질 것이다. 따라서, 클라이언트 단말은 예를 들어, S11 내지 S13 단계를 차례로 기설정된 횟수(예를 들어 50회)만큼 수행한 결과 산출된 샘플 딜레이 시간의 평균값을 상술한 해당 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간으로 연산하는 딜레이 시간 산출 단계(S14)를 수행한다.Steps S11 to S13 will be more accurate when performed multiple times than when performed once. Accordingly, the client terminal, for example, calculates the average value of the sample delay times calculated as a result of performing steps S11 to S13 sequentially a predetermined number of times (for example, 50 times) as the time delay time between the client terminal and the server terminal. A delay time calculation step (S14) calculated as .

이때 기설정된 횟수는 정해져 있는 횟수이거나, 프로세스 실행 시점 및 프로세스 실행 시점에 따른 서버 단말로부터 프로세스 실행 명령이 모든 클라이언트 단말에 전송되는 것으로 예측되는 시점 전까지 정해져 있지 않고 S11 내지 S13 단계를 반복 수행하는 것으로 이해될 수 있다. 즉, 프로세스의 실행 스케줄이 미리 설정되어 저장되는 경우, 딜레이를 고려하여 프로세스의 실행 명령이 일정 시간 전 서버 단말로부터 각 클라이언트 단말에 전송될 것인데, 이로부터 일정 시간 전(예를 들어 1분)까지 횟수의 정함이 없이 S11 내지 S13 단계를 반복 수행하도록 하여 그 정확성을 더욱 높이는 것이다.At this time, it is understood that the predetermined number of times is not set, or steps S11 to S13 are repeatedly performed without being determined until the time when the process execution time and the time when the process execution command is expected to be transmitted to all client terminals from the server terminal according to the execution time of the process can be That is, when the execution schedule of the process is set and stored in advance, the execution command of the process will be transmitted from the server terminal to each client terminal from the server terminal a predetermined time in consideration of the delay. The accuracy is further improved by repeating steps S11 to S13 without determining the number of times.

S14 단계의 수행에 있어서 타임 딜레이 시간의 연산 정확도를 높이기 위해서, 클라이언트 단말은 예를 들어, 평균값의 도출 대상이 되는 샘플 딜레이 시간 중, 최대값, 최소값, 및 제1 신호의 송신 및 제2 신호의 수신이 정상적으로 이루어지지 않은 신호값인 오류값에 해당하는 샘플 딜레이 시간을 제외하고 타임 딜레이 시간을 연산하는 것이 바람직할 것이다.In order to increase the calculation accuracy of the time delay time in performing step S14, for example, the client terminal transmits the maximum value, the minimum value, and the first signal and the second signal among the sample delay times for which the average value is derived. It may be desirable to calculate the time delay time excluding the sample delay time corresponding to an error value, which is a signal value that is not normally received.

이때 오류값은, 제1 신호에 대한 응답 신호가 송출되지 않아 제2 신호의 수신이 되지 않거나, 제1 신호가 존재하지 않으나 제2 신호가 수신되는 등, 샘플 딜레이 시간으로 활용되지 못하는 것으로 판단되는 모든 경우를 의미하는 것으로 이해되어야 한다.At this time, it is determined that the error value cannot be used as the sample delay time, such as the second signal is not received because the response signal to the first signal is not transmitted, or the first signal does not exist but the second signal is received. It should be understood to mean all cases.

상술한 바와 같이 구체적으로 수행되는 S10 단계의 수행이 완료되면, 클라이언트 단말은, 시간 동기화를 위해서, 서버 단말로부터 송출되는 절대 시간에 대한 신호인 서버 단말의 타임스탬프를 수신하는 서버 타임스탬프 수신 단계(S20)를 수행한다. When the execution of step S10 that is specifically performed as described above is completed, the client terminal receives a timestamp of the server terminal, which is a signal for absolute time transmitted from the server terminal, for time synchronization ( S20) is performed.

서버 단말의 타임스탬프는, 절대 시간으로서 기준이 되는 시간에 대한 정보로서, 연원일시분초 정보를 포함하는 개념으로 이해될 수 있다. 즉 일종의 클락(Clock) 신호로서, 해당 신호들은 프로세스 실행 시점 등 본 발명의 다양한 기능 수행의 시점을 정하기 위한 신호로서 사용될 수 있다.The timestamp of the server terminal is information about a time that is a reference as an absolute time, and may be understood as a concept including information on the origin date, hour, minute, and second. That is, as a kind of clock signal, the corresponding signals may be used as a signal for determining the timing of performing various functions of the present invention, such as a process execution time.

S20 단계가 수행되면, 클라이언트 단말은 클라이언트 단말의 절대 시간, 즉 타임스탬프를 S20 단계의 수행에 의하여 수신한 서버 단말의 타임스탬프에 S10 단계의 수행에 의하여 연산된 상기 타임 딜레이 시간을 더한 값으로 세팅하는 타임스탬프 세팅 단계(S30)를 수행하게 된다.When step S20 is performed, the client terminal sets the absolute time of the client terminal, that is, the timestamp to the timestamp of the server terminal received by performing step S20 plus the time delay time calculated by performing step S10. A timestamp setting step (S30) is performed.

즉, 클라이언트 단말의 타임스탬프는 역시 클라이언트 단말에서 프로세스의 실행 시점 등을 정하는 기준으로 사용될 수 있는데, 이때 상술한 타임 딜레이 시간을 반영해야만, 모든 클라이언트의 프로세스 실행 시점이 완전히 동일하게 될 것이기 때문이다. 즉, 상술한 S10 내지 S30 단계는 서버-클라이언트 환경에 있어서 제어 대상이 되는 모든 클라이언트 단말 사이에서 수행되도록 반복될 수 있다. 즉 모든 클라이언트 단말에서 S30 단계의 수행이 완료되면, 서버 단말은 모든 단말에 대한 시간 동기화가 완료된 것으로 처리하고, 이후의 프로세스를 진행할 수 있다. That is, the timestamp of the client terminal may also be used as a criterion for determining the execution time of the process in the client terminal, and in this case, the time delay time described above must be reflected, because the execution time of the process of all clients will be completely identical. That is, the above-described steps S10 to S30 may be repeated to be performed among all client terminals to be controlled in the server-client environment. That is, when the execution of step S30 is completed in all the client terminals, the server terminal may treat the time synchronization for all terminals as completed, and proceed with the subsequent process.

이를 도 8을 참조하면 다음과 같다, 제1 신호(S1)는 클라이언트 단말로부터 서버 단말에 전송되며, 이에 대한 Ack 신호로서 제2 신호(S2)가 서버 단말로부터 클라이언트 단말에 전송된다. 이때 샘플 딜레이 시간 SD는 (S2-S1)/2로서 상술한 바와 같이 연산될 수 있다. 이러한 과정이 n회 반복된 후, 최대값, 최소값 및 오류값을 제외하고, 이에 대한 평균값이 타임 딜레이 시간(DT)으로 연산될 것이다. 이후, 클라이언트 단말은 서버 단말의 타임스탬프를 수신한 뒤, 서버 단말의 타임스탬프에 DT를 더한 값을 자신의 타임스탬프로 사용하게 된다. Referring to FIG. 8 , the first signal S1 is transmitted from the client terminal to the server terminal, and as an Ack signal for this, the second signal S2 is transmitted from the server terminal to the client terminal. In this case, the sample delay time SD may be calculated as (S2-S1)/2 as described above. After this process is repeated n times, the average value will be calculated as the time delay time DT, excluding the maximum value, the minimum value, and the error value. Thereafter, after receiving the timestamp of the server terminal, the client terminal uses a value obtained by adding DT to the timestamp of the server terminal as its timestamp.

이러한 서버-클라이언트 환경은 예를 들어 도 6과 같은 시스템으로 구현될 수 있다. 즉 서버 단말(20)과 제어 대상이 되는 단말군(1)에 속하는 모든 클라이언트 단말(10) 사이에서 상술한 S10 내지 S30 단계가 수행되는 것이다. 그러나, 다수 단말의 환경 중, 서버 단말이 존재하지 않은 다수 단말 환경이 존재할 수 있으며, 서버-클라이언트 환경에 있어서도, 서버 단말(20)과 동기화될 수 있는 클라이언트 단말(10)의 개수가 정해진 환경에서, 클라이언트 단말(10)의 수가 많아 한 번에 모든 클라이언트 단말(10)의 시간 동기화가 불가능할 수 있다.Such a server-client environment may be implemented, for example, as a system as shown in FIG. 6 . That is, the above-described steps S10 to S30 are performed between the server terminal 20 and all client terminals 10 belonging to the terminal group 1 to be controlled. However, among the environments of multiple terminals, there may be multiple terminal environments in which no server terminals exist, and even in a server-client environment, in an environment in which the number of client terminals 10 that can be synchronized with the server terminal 20 is determined. , since the number of client terminals 10 is large, time synchronization of all the client terminals 10 at once may not be possible.

이러한 다수 클라이언트 환경에서는, 상술한 모든 기능의 수행 시, 시간 동기화를 위한 별도 서버 또는 단말인 타임 싱크 서버가 상술한 서버 단말로 기능할 수 있으며, 이때 타임 싱크 서버에 할당되어 S10 내지 S30 단계를 서로 수행하는 클라이언트 단말의 개수가 제1 개수로 정해질 수 있다. In this multi-client environment, when performing all the above-described functions, a time sync server, which is a separate server or terminal for time synchronization, may function as the above-described server terminal. The number of performing client terminals may be determined as the first number.

이때 상술한 바와 같이 시간 동기화 대상이 되는 클라이언트 단말의 개수가 제1 개수를 초과하는 제2 개수인 경우, S30 단계의 실행 후에, 도 3에 도시된 바와 같이 타임 싱크 서버는 현재 S30 단계의 수행이 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 타임 싱크 서버에 미할당된 동시에 S30 단계의 수행이 미완료된 상태인 것으로 판단되는 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 단말 갱신 단계(S40)를 수행한다. At this time, as described above, if the number of client terminals to be time synchronization is a second number exceeding the first number, after the execution of step S30, as shown in FIG. 3 , the time sync server is currently performing step S30 Release the assignment of the completed client terminal to the time sync server, and update the terminal to allocate a new client terminal that is not assigned to the time sync server and is determined to be in a state in which the execution of step S30 is incomplete to the time sync server as a time synchronization target Step S40 is performed.

이때 타임 싱크 서버는, 서버 단말이 존재하지 않는 다수 클라이언트 단말 환경에서는 클라이언트 단말 중 어느 하나 또는 시간 동기화를 위해서 별도 존재하는 단말을 의미하고, 서버 단말이 시간 동기화 처리할 수 있는 클라이언트 단말의 수가 정해진 상태에서 클라이언트 단말의 수가 정해진 상술한 제1 개수를 초과하는 제2 개수인 경우 서버 단말 자체가 타임 싱크 서버인 것으로 이해될 것이다.In this case, the time sync server means any one of the client terminals or a terminal that exists separately for time synchronization in a multiple client terminal environment in which the server terminal does not exist, and the number of client terminals that the server terminal can process time synchronization is determined. When the number of client terminals is the second number exceeding the predetermined first number, it will be understood that the server terminal itself is a time sync server.

이를 바탕으로 도 7을 참조하면, 타임 싱크 서버(21)는 시간 동기화가 가능한 클라이언트 단말(11)의 개수가 정해진 할당 공간(200)이 있는 것으로 설명될 수 있다. 이때 할당 공간(200)에는 처음 단계에서 C1 내지 C5의 클라이언트 단말이 할당되어 있고, C6 내지 C9 단말은 할당 공간(200)에 미할당된 클라이언트 단말(12)로 유지된다.Based on this, referring to FIG. 7 , the time sync server 21 may be described as having an allocated space 200 in which the number of client terminals 11 capable of time synchronization is determined. In this case, client terminals C1 to C5 are allocated to the allocation space 200 in the first step, and terminals C6 to C9 are maintained as unallocated client terminals 12 in the allocation space 200 .

이때 S30 단계가 S1 단말에 완료된 것으로 판단되면, S40 단계의 수행을 통해서, 타임 싱크 서버는 C1, 즉 S30 단계의 수행이 완료된 단말(13)에 대한 할당을 해제하고, 미할당된 클라이언트 단말(21) 중 어느 한 단말(C6, 14)를 새롭게 할당 공간(200)에 할당하는 것이다. 이후 다시 C3에 대한 S30 단계의 수행이 완료되면, C3에 대한 할당을 해제하고, S30 단계의 수행이 완료된 단말(13) 이외의 단말(12) 중 어느 한 단말(C7)을 새롭게 할당하는 것을 반복한다. At this time, if it is determined that step S30 has been completed in the terminal S1, through the execution of step S40, the time sync server releases the assignment to the terminal C1, that is, the terminal 13 on which the step S30 has been completed, and the unassigned client terminal 21 ), any one of the terminals C6 and 14 is newly allocated to the allocation space 200 . After that, when the execution of step S30 for C3 is completed, the allocation of C3 is released, and a new assignment of any one terminal (C7) of the terminals 12 other than the terminal 13 for which the execution of step S30 is completed is repeated. do.

이러한 단말 갱신 단계(S40)의 수행 후, 타임 싱크 서버는, 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 할당 가능한지 여부를 판단하고, 모든 클라이언트 단말에 타임스탬프 세팅 단계(S30)가 완료되어 새로운 클라이언트 단말을 할당할 수 없는 경우, 타임스탬프 세팅을 완료하는 세팅 완료 단계(S50)를 수행한다. After performing the terminal update step (S40), the time sync server determines whether it is possible to allocate a new client terminal unassigned to the time sync server, and the time stamp setting step (S30) is completed for all client terminals to complete the new client If the terminal cannot be assigned, a setting completion step (S50) of completing the timestamp setting is performed.

즉 제2 개수에 해당하는 모든 클라이언트 단말에 대한 S30 단계가 완료되는 것은 예를 들어 할당 공간(200)에 대한 해제가 모두 완료된 상태이거나, 이러한 과정 없이 S30 단계의 수행이 완료된 클라이언트 단말의 식별 정보를 서버 단말 또는 타임 싱크 서버가 저장함으로써 모든 클라이언트 단말에 대한 시간 동기화가 완료됨을 감지한 상태일 때 S50 단계가 완료된다. 즉 S50 단계는 S40 단계의 수행 후에 수행되는 것뿐 아니라, 상술한 서버-클라이언트 환경에서 S30 단계의 반복 수행이 모든 클라이언트 단말에 대해서 완료된 상태에도 수행될 수 있는 것으로 이해될 것이다.That is, if step S30 for all client terminals corresponding to the second number is completed, for example, all release of the allocation space 200 is completed, or identification information of the client terminal on which step S30 is completed without this process is displayed. When the server terminal or the time sync server detects that time synchronization for all client terminals is completed by storing, step S50 is completed. That is, step S50 is not only performed after step S40 is performed, but it will be understood that the above-described server-client environment may be performed even when the repeated execution of step S30 is completed for all client terminals.

한편 이와 같이 시간 동기화가 완료된 후, 즉 S30 단계의 반복 수행에 따라서 모든 클라이언트 단말에 대해서 S30 단계의 수행이 완료된 것으로 판단되거나, 상술한 S50 단계의 수행이 완료되면, 실제 프로세스의 동시 실행을 위해서 서버 단말이 기능을 수행할 수 있다. 즉, 도 4에 도시된 바와 같이, 서버 단말은 타임스탬프 세팅 단계(S30)가 수행된 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어하는 프로세스 실행 제어 단계(S60)를 수행하게 된다.Meanwhile, after the time synchronization is completed, that is, when it is determined that the execution of step S30 is completed for all client terminals according to the repeated execution of step S30, or when the above-described step S50 is completed, the server for simultaneous execution of the actual process The terminal may perform a function. That is, as shown in FIG. 4 , when a process to be simultaneously executed between at least two or more client terminals among the client terminals on which the timestamp setting step S30 is performed exists, the server terminal executes a preset execution time based on the synchronized time A process execution control step (S60) of controlling the client terminal to execute the process is performed.

적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스는 상술한 본 발명의 설명에서 언급된 프로세스를 의미하는 것으로 이해될 것이다. 이때, 프로세스는 갑자기 실행되는 것이 아니라, 서버 단말로부터 클라이언트 단말에 전송되는 신호로서, 프로세스의 동시 실행(그룹 실행)을 위해서 각 클라이언트 단말이 실행해야 하는 프로세스들에 대한 실행 시점 및 실행 명령을 포함하는 제어 신호에 의하여 실행되는 것이 당연할 것이다.A process to be executed simultaneously between at least two or more client terminals will be understood to mean a process mentioned in the above description of the present invention. At this time, the process is not abruptly executed, but as a signal transmitted from the server terminal to the client terminal, including the execution time and execution command for the processes that each client terminal must execute for the simultaneous execution (group execution) of the process. It would be natural to be executed by a control signal.

이때 상술한 과정에 의하여 모든 클라이언트 단말의 시간이 동기화된 후 해당 시점에 정확하게 각 클라이언트 단말의 프로세스가 실행되도록 하여, 오차 없이 모든 프로세스가 실행되도록 하는 것이다.At this time, after the time of all client terminals is synchronized by the above-described process, the processes of each client terminal are executed precisely at the corresponding time point, so that all processes are executed without error.

이와 같은 S60 단계에 대한 구체적인 예가 도 5 및 9에 도시되어 있다. 도 5와 도 9를 동시에 참조하면, 먼저 각 클라이언트 단말(C1, C2, C3)은 시간 동기화가 되기 전, 서로 다른 타임스탬프(CT1, CT2, CT3)을 갖는 상태일 수 있다. 이때, 상술한 S10 내지 S30 단계가 모든 클라이언트(C1, C2, C3)에 대해서 수행되면, 모든 시간은 CTS로 동일하게 동기화된다.A specific example of the step S60 is shown in FIGS. 5 and 9 . Referring to FIGS. 5 and 9 , first, each of the client terminals C1 , C2 , and C3 may have different timestamps CT1 , CT2 , and CT3 before time synchronization. At this time, when steps S10 to S30 described above are performed for all clients C1, C2, and C3, all times are synchronized equally with the CTS.

이때 서버 단말은, S60 단계의 수행에 있어서. 서버 단말이 동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간(MAX(DT))을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅하는 상기 실행 시점 세팅 단계(S61)를 수행한다. 이때 프로세서 실행 명령 전송 시점은 도 9에 도시된 바와 같이 시간 동기화가 완료된 시점 이후의 랜덤하거나 정해진 시점을 의미한다. At this time, the server terminal, in performing step S60. The server terminal selects the maximum delay time (MAX(DT)), which is the largest value among the time delay times calculated for a plurality of client terminals that are the execution targets of the process to be simultaneously executed, and executes the process with at least a preset execution time point The execution time setting step ( S61 ) of setting the process execution time to a point later than the value obtained by adding the maximum delay time from the command transmission time is performed. In this case, the timing of transmitting the processor execution command means a random or predetermined time point after the time synchronization is completed as shown in FIG. 9 .

이는, 예를 들어 프로세스 실행 시점, 즉 멀티미디어 콘텐츠 재생을 예로 들면 콘텐츠 시작 시간과 제어 명령의 전송 시점을 비교할 때, 제어 명령의 전송 시점에서 MAX(DT)를 더한 값이 프로세스 실행 시점 이후가 되는 경우, 특정 클라이언트 단말, 즉 도 9의 예에서는 C2 단말은, 프로세스 실행 시점 이후에 제어 명령을 수신하게 되어, 프로세스가 모든 클라이언트 단말에서 동시에 일괄 실행되지 않거나, 아예 C2 단말에서 프로세스가 실행되지 않는 오류가 발생할 수 있다. 이러한 오류의 발생을 방지하기 위해서 S61 단계가 수행된다. This is, for example, when the process execution time, that is, multimedia content playback, when comparing the content start time and the control command transmission time, the value obtained by adding MAX(DT) from the control command transmission time becomes after the process execution time. , a specific client terminal, that is, terminal C2 in the example of FIG. 9 , receives a control command after the process execution time, so that the process is not simultaneously executed in all client terminals at the same time, or the process is not executed in terminal C2 at all. can occur In order to prevent such an error from occurring, step S61 is performed.

이후 서버 단말은, 프로세스 실행 명령 전송 시점에, 프로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하는 명령 전송 단계(S62)를 수행하여, 프로세스의 모든 클라이언트에서의 정확한 일괄 실행이 가능하도록 한다. Thereafter, the server terminal performs a command transmission step (S62) of transmitting a control command to execute the process at the time of the process execution command to a plurality of client terminals that are the execution targets of the process, at the time of transmitting the process execution command, Enables accurate batch execution on the client.

한편 본 발명의 일 실시예에 따른 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 시스템은, 도 6에 도시된 바와 같이 서버 단말(20) 및 클라이언트 단말(10)을 포함하는 구조로 이해될 수 있다. 이때 서버 단말(20) 및 클라이언트 단말(10)의 각 기능은 상술한 바와 같다.Meanwhile, the time synchronization between terminals and the simultaneous execution system of multiple terminals using the same according to an embodiment of the present invention can be understood as a structure including a server terminal 20 and a client terminal 10 as shown in FIG. 6 . there is. In this case, each function of the server terminal 20 and the client terminal 10 is as described above.

즉, 클라이언트 단말(10)은 제1 신호를 송출하고, 기설정된 프로세스를 실행하며, 서버 단말(20)은 제1 신호를 수신하며, 제1 신호를 수신 시 응답 신호인 제2 신호를 상기 클라이언트 단말에 전송하며, 상기 프로세스의 실행에 관련된 상술한 제어 명령을 전송하는 기능을 수행한다. That is, the client terminal 10 transmits a first signal, executes a preset process, the server terminal 20 receives the first signal, and when receiving the first signal, sends a second signal that is a response signal to the client. It transmits to the terminal, and performs a function of transmitting the above-described control command related to the execution of the process.

이때, 클라이언트 단말(10)은, 상술한 바와 같이 제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말(10)과 서버 단말(20) 사이의 타임 딜레이 시간을 연산하고, 서버 단말(20)로부터 송출되는 절대 시간에 대한 신호인 서버 단말(20)의 타임스탬프를 수신한 뒤, 클라이언트 단말(10)의 절대 시간, 즉 타임스탬프를 서버 단말(20)의 타임스탬프에 타임 딜레이 시간을 더한 값으로 세팅하게 된다.At this time, when the client terminal 10 receives the second signal as described above, the time between the client terminal 10 and the server terminal 20 using the transmission time of the first signal and the reception time of the second signal After calculating the delay time and receiving the timestamp of the server terminal 20, which is a signal for the absolute time transmitted from the server terminal 20, the absolute time of the client terminal 10, that is, the timestamp is transferred to the server terminal 20 ) timestamp plus the time delay time.

이때 도 7에 대한 설명에서 언급한 바와 같이, 시간 동기화 대상이 되는 단말이 서버-클라이언트 환경이 아닌 다수 클라이언트 단말 환경의 단말이거나, 서버 단말이 시간 동기화를 수행할 수 있는 클라이언트 단말의 개수가 정해진 상태에서 클라이언트 단말의 개수가 이를 초과하는 경우, 시간 동기화를 위한 별도 서버인 타임 싱크 서버가 서버 단말로 기능하거나, 서버 단말 자체가 타임 싱크 서버로 이해된다.At this time, as mentioned in the description of FIG. 7 , a terminal to be time synchronization is a terminal in a multiple client terminal environment rather than a server-client environment, or the number of client terminals capable of performing time synchronization by the server terminal is determined. When the number of client terminals exceeds this, a time sync server, which is a separate server for time synchronization, functions as a server terminal, or the server terminal itself is understood as a time sync server.

이때, 타임 싱크 서버에 할당되어 클라이언트 단말의 절대 시간의 세팅이 가능한 클라이언트 단말의 최대 개수가 기설정된 제1 개수이며, 클라이언트 단말의 개수가 상기 제1 개수를 초과하는 제2 개수인 경우, 타임 싱크 서버는, 클라이언트 단말의 절대 시간에 대한 세팅이 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 기능을 수행할 수 있다.In this case, when the maximum number of client terminals allocated to the time sync server and capable of setting the absolute time of the client terminals is a preset first number, and the number of client terminals is a second number exceeding the first number, time sync The server releases the assignment to the time sync server of the client device for which the absolute time setting of the client device is completed, and assigns a new client device that is not assigned to the time sync server to the time sync server as a time synchronization target. can do.

또한 S60, S61, S62 단계에 대한 설명에서 언급한 바와 같이 모든 클라이언트 단말에 대한 시간 동기화가 완료된 경우, 서버 단말은 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어한다.In addition, as mentioned in the description of steps S60, S61, and S62, when time synchronization for all client terminals is completed, the server terminal determines the synchronized time when there is a process to be executed simultaneously between at least two or more client terminals among the client terminals. The client terminal is controlled to execute the process at a preset execution time as a reference.

이때 동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 상기 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅한 뒤, 프로세스 실행 명령 전송 시점에 상로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하는 기능을 수행한다.At this time, a maximum delay time, which is the largest value among the time delay times calculated for a plurality of client terminals to be executed at the same time, is selected, and the maximum delay time from the time when the process execution command is transmitted is at least a preset time for executing the process. A function of setting the process execution time to be a later time than the sum of , and then transmitting a control command to execute the process at the upper process execution time at the process execution command transmission time to a plurality of client terminals that are the execution targets of the process carry out

이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description.

또 다른 한편 도 10에서는 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예를 도시하였으며, 이하의 설명에 있어서, 상술한 도 1 내지 9에 대한 설명과 중복되는 불필요한 실시 예에 대한 설명은 생략하기로 한다.On the other hand, FIG. 10 shows an example of an internal configuration of a computing device according to an embodiment of the present invention, and in the following description, descriptions of unnecessary embodiments overlapping with those of FIGS. is to be omitted.

도 10에 도시한 바와 같이, 컴퓨팅 장치(10000)은 적어도 하나의 프로세서(processor)(11100), 메모리(memory)(11200), 주변장치 인터페이스(peripheral interface)(11300), 입/출력 서브시스템(I/O subsystem)(11400), 전력 회로(11500) 및 통신 회로(11600)를 적어도 포함할 수 있다. 이때, 컴퓨팅 장치(10000)은 촉각 인터페이스 장치에 연결된 유저 단말이기(A) 혹은 전술한 컴퓨팅 장치(B)에 해당될 수 있다.10, the computing device 10000 includes at least one processor 11100, a memory 11200, a peripheral interface 11300, an input/output subsystem ( It may include at least an I/O subsystem) 11400 , a power circuit 11500 , and a communication circuit 11600 . In this case, the computing device 10000 may correspond to a user terminal connected to the tactile interface device (A) or the aforementioned computing device (B).

메모리(11200)는, 일례로 고속 랜덤 액세스 메모리(high-speed random access memory), 자기 디스크, 에스램(SRAM), 디램(DRAM), 롬(ROM), 플래시 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(11200)는 컴퓨팅 장치(10000)의 동작에 필요한 소프트웨어 모듈, 명령어 집합 또는 그밖에 다양한 데이터를 포함할 수 있다.The memory 11200 may include, for example, a high-speed random access memory, a magnetic disk, an SRAM, a DRAM, a ROM, a flash memory, or a non-volatile memory. there is. The memory 11200 may include a software module, an instruction set, or other various data required for the operation of the computing device 10000 .

이때, 프로세서(11100)나 주변장치 인터페이스(11300) 등의 다른 컴포넌트에서 메모리(11200)에 액세스하는 것은 프로세서(11100)에 의해 제어될 수 있다.In this case, access to the memory 11200 from other components such as the processor 11100 or the peripheral interface 11300 may be controlled by the processor 11100 .

주변장치 인터페이스(11300)는 컴퓨팅 장치(10000)의 입력 및/또는 출력 주변장치를 프로세서(11100) 및 메모리 (11200)에 결합시킬 수 있다. 프로세서(11100)는 메모리(11200)에 저장된 소프트웨어 모듈 또는 명령어 집합을 실행하여 컴퓨팅 장치(10000)을 위한 다양한 기능을 수행하고 데이터를 처리할 수 있다.Peripheral interface 11300 may couple input and/or output peripherals of computing device 10000 to processor 11100 and memory 11200 . The processor 11100 may execute a software module or an instruction set stored in the memory 11200 to perform various functions for the computing device 10000 and process data.

입/출력 서브시스템(11400)은 다양한 입/출력 주변장치들을 주변장치 인터페이스(11300)에 결합시킬 수 있다. 예를 들어, 입/출력 서브시스템(11400)은 모니터나 키보드, 마우스, 프린터 또는 필요에 따라 터치스크린이나 센서 등의 주변장치를 주변장치 인터페이스(11300)에 결합시키기 위한 컨트롤러를 포함할 수 있다. 다른 측면에 따르면, 입/출력 주변장치들은 입/출력 서브시스템(11400)을 거치지 않고 주변장치 인터페이스(11300)에 결합될 수도 있다.The input/output subsystem 11400 may couple various input/output peripherals to the peripheral interface 11300 . For example, the input/output subsystem 11400 may include a controller for coupling a peripheral device such as a monitor, keyboard, mouse, printer, or a touch screen or sensor as needed to the peripheral interface 11300 . According to another aspect, input/output peripherals may be coupled to peripheral interface 11300 without going through input/output subsystem 11400 .

전력 회로(11500)는 단말기의 컴포넌트의 전부 또는 일부로 전력을 공급할 수 있다. 예를 들어 전력 회로(11500)는 전력 관리 시스템, 배터리나 교류(AC) 등과 같은 하나 이상의 전원, 충전 시스템, 전력 실패 감지 회로(power failure detection circuit), 전력 변환기나 인버터, 전력 상태 표시자 또는 전력 생성, 관리, 분배를 위한 임의의 다른 컴포넌트들을 포함할 수 있다.The power circuit 11500 may supply power to all or some of the components of the terminal. For example, the power circuit 11500 may include a power management system, one or more power sources such as batteries or alternating current (AC), a charging system, a power failure detection circuit, a power converter or inverter, a power status indicator, or a power source. It may include any other components for creation, management, and distribution.

통신 회로(11600)는 적어도 하나의 외부 포트를 이용하여 다른 컴퓨팅 장치와 통신을 가능하게 할 수 있다.The communication circuit 11600 may enable communication with another computing device using at least one external port.

또는 상술한 바와 같이 필요에 따라 통신 회로(11600)는 RF 회로를 포함하여 전자기 신호(electromagnetic signal)라고도 알려진 RF 신호를 송수신함으로써, 다른 컴퓨팅 장치와 통신을 가능하게 할 수도 있다.Alternatively, as described above, if necessary, the communication circuit 11600 may include an RF circuit to transmit and receive an RF signal, also known as an electromagnetic signal, to enable communication with other computing devices.

이러한 도 10의 실시 예는, 컴퓨팅 장치(10000)의 일례일 뿐이고, 컴퓨팅 장치(11000)은 도 10에 도시된 일부 컴포넌트가 생략되거나, 도 10에 도시되지 않은 추가의 컴포넌트를 더 구비하거나, 2개 이상의 컴포넌트를 결합시키는 구성 또는 배치를 가질 수 있다. 예를 들어, 모바일 환경의 통신 단말을 위한 컴퓨팅 장치는 도 10에도시된 컴포넌트들 외에도, 터치스크린이나 센서 등을 더 포함할 수도 있으며, 통신 회로(1160)에 다양한 통신방식(WiFi, 3G, LTE, Bluetooth, NFC, Zigbee 등)의 RF 통신을 위한 회로가 포함될 수도 있다. 컴퓨팅 장치(10000)에 포함 가능한 컴포넌트들은 하나 이상의 신호 처리 또는 어플리케이션에 특화된 집적 회로를 포함하는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어 양자의 조합으로 구현될 수 있다.This embodiment of FIG. 10 is only an example of the computing device 10000, and the computing device 11000 may omit some components shown in FIG. 10, or further include additional components not shown in FIG. 10, or 2 It may have a configuration or arrangement that combines two or more components. For example, the computing device for a communication terminal in a mobile environment may further include a touch screen or a sensor in addition to the components shown in FIG. 10 , and various communication methods (WiFi, 3G, LTE) are provided in the communication circuit 1160 , Bluetooth, NFC, Zigbee, etc.) may include a circuit for RF communication. Components that may be included in the computing device 10000 may be implemented in hardware, software, or a combination of both hardware and software including an integrated circuit specialized for one or more signal processing or applications.

본 발명의 실시 예에 따른 방법들은 다양한 컴퓨팅 장치를 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 기록매체에 기록될 수 있다. 특히, 본 실시 예에 따른 프로그램은 PC 기반의 프로그램 또는 모바일 단말 전용의 어플리케이션으로 구성될 수 있다. 본 발명이 적용되는 애플리케이션은 파일 배포 시스템이 제공하는 파일을 통해 이용자 단말에 설치될 수 있다. 일 예로, 파일 배포 시스템은 이용자 단말이기의 요청에 따라 상기 파일을 전송하는 파일 전송부(미도시)를 포함할 수 있다.Methods according to an embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computing devices and recorded in a computer-readable recording medium. In particular, the program according to the present embodiment may be configured as a PC-based program or an application dedicated to a mobile terminal. The application to which the present invention is applied may be installed in the user terminal through a file provided by the file distribution system. As an example, the file distribution system may include a file transmission unit (not shown) that transmits the file according to a request of the user terminal.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, the devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨팅 장치상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be permanently or temporarily embody in The software may be distributed over networked computing devices and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 기록매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and used by those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result. Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (11)

하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치를 포함하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법에 관한 것으로,
클라이언트 단말이 서버 단말에 제1 신호를 송신하고, 제1 신호를 송신한 서버 단말로부터 송출되는 제1 신호에 대한 응답 신호인 제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간을 연산하는 딜레이 시간 연산 단계;
상기 클라이언트 단말이 서버 단말로부터 송출되는 절대 시간에 대한 신호인 서버 단말의 타임스탬프를 수신하는 서버 타임스탬프 수신 단계; 및
상기 클라이언트 단말이 클라이언트 단말의 절대 시간을 상기 서버 타임스탬프 수신 단계에 의하여 수신한 서버 단말의 타임스탬프에 상기 딜레이 시간 연산 단계에 의하여 연산된 상기 타임 딜레이 시간을 더한 값으로 세팅하는 타임스탬프 세팅 단계; 를 포함하고,
상기 제1 신호는, 서버 단말과 클라이언트 단말 사이에 있어서 클라이언트 단말에서 서버 단말에 제어 명령 송수신 또는 프로세스 실행 등의 준비에 있어서의 환경 설정 등을 위해서 전송되는 데이터 신호들 중, 8byte 크기의 신호에 해당하는 모든 신호 중 선택된 어느 한 신호이며,
상기 타임스탬프 세팅 단계의 반복 수행에 따라서 모든 클라이언트 단말에 대한 상기 타임스탬프 세팅 단계가 수행된 후,
상기 서버 단말이, 상기 타임스탬프 세팅 단계가 수행된 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어하는 프로세스 실행 제어 단계;를 더 포함하고,
상기 프로세스 실행 제어 단계는,
서버 단말이 동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 상기 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅하는 상기 실행 시점 세팅 단계; 및
상기 서버 단말이 상기 프로세스 실행 명령 전송 시점에 상기 프로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 상기 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하는 명령 전송 단계; 를 포함하고,
시간 동기화 대상이 되는 단말이 서버-클라이언트 환경이 아닌 다수 클라이언트 단말 환경의 단말인 경우, 시간 동기화를 위한 별도 서버인 타임 싱크 서버가 상기 서버 단말로 기능하되, 상기 타임 싱크 서버는 상기 클라이언트 단말 중 어느 하나이며, 상기 타임 싱크 서버에 할당되어 상기 딜레이 시간 연산 단계, 상기 서버 타임스탬프 수신 단계 및 상기 타임스탬프 세팅 단계가 수행되는 클라이언트 단말의 최대 개수가 기설정된 제1 개수이며, 상기 클라이언트 단말의 개수가 상기 제1 개수를 초과하는 제2 개수인 경우,
상기 타임스탬프 세팅 단계의 실행 후,
상기 타임 싱크 서버가, 상기 타임스탬프 세팅 단계가 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 단말 갱신 단계;를 더 포함하는 것을 특징으로 하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법.
It relates to a time synchronization between terminals including one or more processors and a computing device including one or more memories for storing instructions executable by the processor, and a method for simultaneous execution of multiple terminals using the same,
When the client terminal transmits the first signal to the server terminal and receives the second signal that is a response signal to the first signal transmitted from the server terminal that has transmitted the first signal, the transmission time of the first signal and the second signal a delay time calculation step of calculating a time delay time between the client terminal and the server terminal using the reception time;
a server timestamp receiving step of receiving, by the client terminal, a timestamp of the server terminal, which is a signal for absolute time transmitted from the server terminal; and
a timestamp setting step of the client terminal setting the absolute time of the client terminal to a value obtained by adding the time delay time calculated by the delay time calculation step to the timestamp of the server terminal received by the server timestamp receiving step; including,
The first signal corresponds to an 8-byte signal among data signals transmitted between the server terminal and the client terminal for transmission/reception of a control command from the client terminal to the server terminal or for environment setting in preparation for process execution, etc. It is one signal selected among all the signals,
After the timestamp setting step for all client terminals is performed according to the repetition of the timestamp setting step,
The server terminal controls the client terminal to execute the process at a preset execution time based on the synchronized time when there is a process to be simultaneously executed between at least two client terminals among the client terminals on which the timestamp setting step is performed. Further comprising; a process execution control step to
The process execution control step is
The server terminal selects the maximum delay time that is the largest value among the time delay times calculated for a plurality of client terminals that are the execution targets of the process to be executed simultaneously, and the process execution time is at least the maximum from the preset process execution command transmission time. the execution time setting step of setting the process execution time to be a later time than a value obtained by adding a delay time; and
a command transmission step of transmitting, by the server terminal, a control command for executing a process at the process execution time point at the time of the process execution command transmission time point, to a plurality of client terminals to be executed of the process; including,
When the target terminal for time synchronization is a terminal in a multiple client terminal environment rather than a server-client environment, a time synchronization server, which is a separate server for time synchronization, functions as the server terminal, but the time synchronization server is selected from any of the client terminals. one, and the maximum number of client terminals allocated to the time sync server and performing the delay time calculation step, the server timestamp receiving step and the timestamp setting step is a preset first number, and the number of the client terminals is When the second number exceeds the first number,
After execution of the timestamp setting step,
Terminal update in which the time sync server releases the assignment to the time sync server of the client terminal for which the timestamp setting step is completed, and allocates a new client terminal that is not allocated to the time sync server to the time sync server as a time synchronization target Step; time synchronization between terminals, characterized in that it further comprises a method of simultaneous execution of multiple terminals using the same.
제1항에 있어서,
상기 딜레이 시간 연산 단계는,
상기 제1 신호를 송신 시 상기 제1 신호를 송신한 시점을 송출 시점으로 감지하는 송출 시점 감지 단계;
상기 제2 신호를 수신 시 상기 제2 신호를 수신한 시점을 수신 시점으로 감지하는 수신 시점 감지 단계;
상기 송신 시점과 상기 수신 시점의 오차 시간을 2로 나눈 값을 샘플 딜레이 시간으로 연산하는 샘플 딜레이 연산 단계; 및
상기 송출 시점 감지 단계, 상기 수신 시점 감지 단계 및 상기 샘플 딜레이 연산 단계를 차례로 기설정된 횟수만큼 수행한 결과 산출된 샘플 딜레이 시간의 평균값을 상기 타임 딜레이 시간으로 연산하는 딜레이 시간 산출 단계; 를 포함하는 것을 특징으로 하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법.
According to claim 1,
The delay time calculation step is,
a transmission time detection step of detecting a transmission time point when the first signal is transmitted as a transmission time point when the first signal is transmitted;
a reception time detection step of detecting the reception time of the second signal as a reception time when the second signal is received;
a sample delay calculation step of calculating a value obtained by dividing an error time between the transmission time and the reception time by 2 as a sample delay time; and
a delay time calculation step of calculating an average value of the sample delay times calculated as a result of performing the transmission timing detection step, the reception timing detection step, and the sample delay calculation step a predetermined number of times as the time delay time; Time synchronization between terminals, characterized in that it comprises a, and the simultaneous execution method of multiple terminals using the same.
제2항에 있어서,
상기 딜레이 시간 산출 단계는,
상기 평균값의 도출 대상이 되는 샘플 딜레이 시간 중, 최대값, 최소값, 및 제1 신호의 송신 및 제2 신호의 수신이 정상적으로 이루어지지 않은 신호값인 오류값에 해당하는 샘플 딜레이 시간을 제외하고 상기 타임 딜레이 시간을 연산하는 것을 특징으로 하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법.
3. The method of claim 2,
The delay time calculation step is,
Among the sample delay times for which the average value is derived, the maximum value, the minimum value, and the sample delay time corresponding to the error value, which is a signal value in which the transmission of the first signal and the reception of the second signal are not normally performed, are excluded. Time synchronization between terminals, characterized in that calculating the delay time, and a method for simultaneous execution of multiple terminals using the same.
삭제delete 제1항에 있어서,
상기 단말 갱신 단계의 수행 후,
상기 타임 싱크 서버가, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 할당 가능한지 여부를 판단하고, 모든 클라이언트 단말에 상기 타임스탬프 세팅 단계가 완료되어 새로운 클라이언트 단말을 할당할 수 없는 경우, 타임스탬프 세팅을 완료하는 세팅 완료 단계;를 더 포함하는 것을 특징으로 하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법.
According to claim 1,
After performing the terminal update step,
The time sync server determines whether it is possible to allocate new client terminals unassigned to the time sync server, and when the timestamp setting step is completed to all client terminals and cannot allocate new client terminals, time stamp setting Setting completion step of completing the; time synchronization between terminals and the simultaneous execution method of multiple terminals using the same, characterized in that it further comprises.
삭제delete 삭제delete 제1 신호를 송출하고, 기설정된 프로세스를 실행하는 클라이언트 단말; 및
상기 제1 신호를 수신하며, 제1 신호를 수신 시 응답 신호인 제2 신호를 상기 클라이언트 단말에 전송하며, 상기 프로세스의 실행에 관련된 제어 명령을 전송하는 서버 단말; 을 포함하고,
상기 클라이언트 단말은,
제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간을 연산하고, 상기 서버 단말로부터 송출되는 절대 시간에 대한 신호인 서버 단말의 타임스탬프를 수신한 뒤, 상기 클라이언트 단말의 절대 시간을 상기 서버 단말의 타임스탬프에 상기 타임 딜레이 시간을 더한 값으로 세팅하고,
상기 제1 신호는, 서버 단말과 클라이언트 단말 사이에 있어서 클라이언트 단말에서 서버 단말에 제어 명령 송수신 또는 프로세스 실행 등의 준비에 있어서의 환경 설정 등을 위해서 전송되는 데이터 신호들 중, 8byte 크기의 신호에 해당하는 모든 신호 중 선택된 어느 한 신호이며,
상기 서버 단말은,
모든 클라이언트 단말에 대한 절대 시간에 대한 세팅이 완료된 후, 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어하되,
동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 상기 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅한 뒤, 상기 프로세스 실행 명령 전송 시점에 상기 프로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 상기 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하고,
시간 동기화 대상이 되는 단말이 서버-클라이언트 환경이 아닌 다수 클라이언트 단말 환경의 단말인 경우, 시간 동기화를 위한 별도 서버인 타임 싱크 서버가 상기 서버 단말로 기능하되, 상기 타임 싱크 서버는 상기 클라이언트 단말 중 어느 하나이며, 상기 타임 싱크 서버에 할당되어 상기 클라이언트 단말의 절대 시간의 세팅이 가능한 클라이언트 단말의 최대 개수가 기설정된 제1 개수이며, 상기 클라이언트 단말의 개수가 상기 제1 개수를 초과하는 제2 개수인 경우,
상기 타임 싱크 서버는,
상기 클라이언트 단말의 절대 시간에 대한 세팅이 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 것을 특징으로 하는 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 시스템.
a client terminal that transmits a first signal and executes a preset process; and
a server terminal that receives the first signal, transmits a second signal that is a response signal when the first signal is received, to the client terminal, and transmits a control command related to execution of the process; including,
The client terminal is
When the second signal is received, the time delay time between the client terminal and the server terminal is calculated using the transmission time of the first signal and the reception time of the second signal, and the server which is a signal for the absolute time transmitted from the server terminal After receiving the timestamp of the terminal, the absolute time of the client terminal is set to a value obtained by adding the time delay time to the timestamp of the server terminal,
The first signal corresponds to an 8-byte signal among data signals transmitted between the server terminal and the client terminal for transmission/reception of a control command from the client terminal to the server terminal or for environment setting in preparation for process execution, etc. It is one signal selected among all the signals,
The server terminal,
After the absolute time setting for all client terminals is completed, when there is a process to be executed simultaneously between at least two client terminals among the client terminals, the client terminal is configured to execute the process at a preset execution time based on the synchronized time. control, but
The maximum delay time, which is the largest value among the time delay times calculated for a plurality of client terminals that are the execution targets of the process to be executed simultaneously, is selected, and the maximum delay time is determined from the time when the process execution command is transmitted in which the process execution time is set at least. After setting the process execution time to be later than the added value, a control command for executing the process at the process execution time at the process execution command transmission time is transmitted to a plurality of client terminals that are the execution targets of the process, ,
When the target terminal for time synchronization is a terminal in a multiple client terminal environment rather than a server-client environment, a time synchronization server, which is a separate server for time synchronization, functions as the server terminal, but the time synchronization server is selected from any of the client terminals. one, the maximum number of client terminals allocated to the time sync server and capable of setting the absolute time of the client terminal is a preset first number, and the number of the client terminals is a second number exceeding the first number case,
The time sync server,
Release the assignment to the time sync server of the client terminal for which the absolute time setting of the client terminal is completed, and assign a new client terminal unassigned to the time sync server as a time synchronization target to the time sync server Time synchronization between terminals and the simultaneous execution system of multiple terminals using the same.
삭제delete 삭제delete 컴퓨터-판독가능 기록매체로서,
상기 컴퓨터-판독가능 기록매체는, 컴퓨팅 장치로 하여금 이하의 단계들을 수행하도록 하는 명령들을 저장하며, 상기 단계들은:
클라이언트 단말이 서버 단말에 제1 신호를 송신하고, 제1 신호를 송신한 서버 단말로부터 송출되는 제1 신호에 대한 응답 신호인 제2 신호를 수신 시, 제1 신호의 송신 시점 및 제2 신호의 수신 시점을 이용하여 클라이언트 단말과 서버 단말 사이의 타임 딜레이 시간을 연산하는 딜레이 시간 연산 단계;
상기 클라이언트 단말이 서버 단말로부터 송출되는 절대 시간에 대한 신호인 서버 단말의 타임스탬프를 수신하는 서버 타임스탬프 수신 단계; 및
상기 클라이언트 단말이 클라이언트 단말의 절대 시간을 상기 서버 타임스탬프 수신 단계에 의하여 수신한 서버 단말의 타임스탬프에 상기 딜레이 시간 연산 단계에 의하여 연산된 상기 타임 딜레이 시간을 더한 값으로 세팅하는 타임스탬프 세팅 단계; 를 포함하고,
상기 제1 신호는, 서버 단말과 클라이언트 단말 사이에 있어서 클라이언트 단말에서 서버 단말에 제어 명령 송수신 또는 프로세스 실행 등의 준비에 있어서의 환경 설정 등을 위해서 전송되는 데이터 신호들 중, 8byte 크기의 신호에 해당하는 모든 신호 중 선택된 어느 한 신호이며,
상기 타임스탬프 세팅 단계의 반복 수행에 따라서 모든 클라이언트 단말에 대한 상기 타임스탬프 세팅 단계가 수행된 후,
상기 서버 단말이, 상기 타임스탬프 세팅 단계가 수행된 클라이언트 단말 중 적어도 둘 이상의 클라이언트 단말 간에 동시에 실행되어야 하는 프로세스 존재 시, 동기화된 시간을 기준으로 기설정된 실행 시점에 프로세스를 실행하도록 상기 클라이언트 단말을 제어하는 프로세스 실행 제어 단계;를 더 포함하고,
상기 프로세스 실행 제어 단계는,
서버 단말이 동시에 실행되어야 하는 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 대해서 연산된 타임 딜레이 시간 중 가장 큰 값인 최대 딜레이 시간을 선정하고, 프로세스 실행 시점이 적어도 기설정된 프로세스 실행 명령 전송 시점으로부터 상기 최대 딜레이 시간을 더한 값보다 이후의 시점이 되도록 프로세스 실행 시점을 세팅하는 상기 실행 시점 세팅 단계; 및
상기 서버 단말이 상기 프로세스 실행 명령 전송 시점에 상기 프로세스 실행 시점에 프로세스를 실행하도록 하는 제어 명령을 상기 프로세스의 실행 대상이 되는 복수의 클라이언트 단말에 전송하는 명령 전송 단계; 를 포함하고,
시간 동기화 대상이 되는 단말이 서버-클라이언트 환경이 아닌 다수 클라이언트 단말 환경의 단말인 경우, 시간 동기화를 위한 별도 서버인 타임 싱크 서버가 상기 서버 단말로 기능하되, 상기 타임 싱크 서버는 상기 클라이언트 단말 중 어느 하나이며, 상기 타임 싱크 서버에 할당되어 상기 딜레이 시간 연산 단계, 상기 서버 타임스탬프 수신 단계 및 상기 타임스탬프 세팅 단계가 수행되는 클라이언트 단말의 최대 개수가 기설정된 제1 개수이며, 상기 클라이언트 단말의 개수가 상기 제1 개수를 초과하는 제2 개수인 경우,
상기 타임스탬프 세팅 단계의 실행 후,
상기 타임 싱크 서버가, 상기 타임스탬프 세팅 단계가 완료된 클라이언트 단말의 타임 싱크 서버에 대한 할당을 해제하고, 상기 타임 싱크 서버에 미할당된 새로운 클라이언트 단말을 타임 싱크 서버에 시간 동기화 대상으로 할당하는 단말 갱신 단계;를 더 포함하는 것을 특징으로 하는 컴퓨터-판독가능 기록매체.
A computer-readable recording medium comprising:
The computer-readable recording medium stores instructions for causing a computing device to perform the following steps, the steps of:
When the client terminal transmits the first signal to the server terminal and receives the second signal that is a response signal to the first signal transmitted from the server terminal that has transmitted the first signal, the transmission time of the first signal and the second signal a delay time calculation step of calculating a time delay time between the client terminal and the server terminal using the reception time;
a server timestamp receiving step of receiving, by the client terminal, a timestamp of the server terminal, which is a signal for absolute time transmitted from the server terminal; and
a timestamp setting step of the client terminal setting the absolute time of the client terminal to a value obtained by adding the time delay time calculated by the delay time calculation step to the timestamp of the server terminal received by the server timestamp receiving step; including,
The first signal corresponds to an 8-byte signal among data signals transmitted between the server terminal and the client terminal for transmission/reception of a control command from the client terminal to the server terminal or for environment setting in preparation for process execution, etc. It is one signal selected among all the signals,
After the timestamp setting step for all client terminals is performed according to the repetition of the timestamp setting step,
The server terminal controls the client terminal to execute the process at a preset execution time based on the synchronized time when there is a process to be simultaneously executed between at least two client terminals among the client terminals on which the timestamp setting step is performed. Further comprising; a process execution control step to
The process execution control step is
The server terminal selects the maximum delay time that is the largest value among the time delay times calculated for a plurality of client terminals that are the execution targets of the process to be executed simultaneously, and the process execution time is at least the maximum from the preset process execution command transmission time. the execution time setting step of setting the process execution time to be a later time than a value obtained by adding a delay time; and
a command transmission step of transmitting, by the server terminal, a control command for executing a process at the process execution time point at the time of the process execution command transmission time point, to a plurality of client terminals to be executed of the process; including,
When the target terminal for time synchronization is a terminal in a multiple client terminal environment rather than a server-client environment, a time synchronization server, which is a separate server for time synchronization, functions as the server terminal, but the time synchronization server is selected from any of the client terminals. one, and the maximum number of client terminals allocated to the time sync server and performing the delay time calculation step, the server timestamp receiving step and the timestamp setting step is a preset first number, and the number of the client terminals is When the second number exceeds the first number,
After execution of the timestamp setting step,
Terminal update in which the time sync server releases the assignment to the time sync server of the client terminal for which the timestamp setting step is completed, and allocates a new client terminal that is not allocated to the time sync server to the time sync server as a time synchronization target The computer-readable recording medium further comprising the step;
KR1020200081119A 2020-07-01 2020-07-01 Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof KR102284043B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200081119A KR102284043B1 (en) 2020-07-01 2020-07-01 Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200081119A KR102284043B1 (en) 2020-07-01 2020-07-01 Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof

Publications (1)

Publication Number Publication Date
KR102284043B1 true KR102284043B1 (en) 2021-08-02

Family

ID=77315593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200081119A KR102284043B1 (en) 2020-07-01 2020-07-01 Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof

Country Status (1)

Country Link
KR (1) KR102284043B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113890664A (en) * 2021-09-24 2022-01-04 锐盟(深圳)医疗科技有限公司 Method for synchronizing data in body area network, detection terminal and computer readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150146116A (en) * 2014-06-20 2015-12-31 삼성전자주식회사 A method and apparatus for providing a broadcast service based on a heterogenous network
KR20180090719A (en) * 2017-02-03 2018-08-13 한국과학기술원 Method and system for media synchronization
KR20190073058A (en) * 2017-12-18 2019-06-26 연세대학교 원주산학협력단 Method and apparatus of multichannel media synchronization based on MMT protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150146116A (en) * 2014-06-20 2015-12-31 삼성전자주식회사 A method and apparatus for providing a broadcast service based on a heterogenous network
KR20180090719A (en) * 2017-02-03 2018-08-13 한국과학기술원 Method and system for media synchronization
KR20190073058A (en) * 2017-12-18 2019-06-26 연세대학교 원주산학협력단 Method and apparatus of multichannel media synchronization based on MMT protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113890664A (en) * 2021-09-24 2022-01-04 锐盟(深圳)医疗科技有限公司 Method for synchronizing data in body area network, detection terminal and computer readable storage medium
CN113890664B (en) * 2021-09-24 2024-01-30 锐盟(深圳)医疗科技有限公司 Method for synchronizing data in body area network, detection terminal and computer readable storage medium

Similar Documents

Publication Publication Date Title
TWI631472B (en) Decentralized operating system
CN108958787B (en) Block chain system upgrading method, device, equipment and storage medium
CN105915308B (en) A kind of method for synchronizing time, apparatus and system
US10275204B2 (en) Sharing content operating method and electronic device for supporting the same
KR20120128357A (en) Method and apparatus for splitting of media file
CN105431787A (en) Time protocol based timing system for time-of-flight instruments
KR102284043B1 (en) Method, apparatus and computer readable recording medium for time synchronization between devices and simultaneous execution of multiple devices using thereof
US20150356031A1 (en) Methods, systems, and computer readable media for providing precise timing in virtual data network or storage network test environment
CN111831054B (en) Asynchronous system clock synchronization method, device, system and storage medium
WO2023160608A1 (en) Robot control method and apparatus, and storage medium and robot cluster
US9015517B2 (en) Information processing apparatus and time-of-day control method
CN111259022A (en) Information synchronization method, synchronization system, computer equipment and medium
CN111158867A (en) Time synchronization processing method, thread scheduling device and electronic equipment
CN109471588A (en) A kind of synchronous method and equipment
EP2896187B1 (en) Information management method and device
KR20170088267A (en) Method for synchronizing image output via multi screen using software and apparatus thereof
US20180107680A1 (en) Methods for transferring reserves when moving virtual machines across systems
CN114491656A (en) Method and apparatus in a blockchain network
US9436622B2 (en) Broadcasting communications over an advertising channel
KR20210040780A (en) System and method for a user equipment to process overlapping physical downlink shared channels
CN110209548B (en) Service control method, system, electronic device and computer readable storage medium
CN103220715A (en) Method and device for reporting network performance testing result
CN116095534A (en) Method, device and storage medium for collecting test equipment data
CN111769895A (en) Multi-device timing method and system and device timing method and device
US20220188176A1 (en) Apparatus for monitoring task execution time and method of operating node

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant