[go: up one dir, main page]

KR102857641B1 - Apparatus for providing DaaS and operation method of the apparatus - Google Patents

Apparatus for providing DaaS and operation method of the apparatus

Info

Publication number
KR102857641B1
KR102857641B1 KR1020230073108A KR20230073108A KR102857641B1 KR 102857641 B1 KR102857641 B1 KR 102857641B1 KR 1020230073108 A KR1020230073108 A KR 1020230073108A KR 20230073108 A KR20230073108 A KR 20230073108A KR 102857641 B1 KR102857641 B1 KR 102857641B1
Authority
KR
South Korea
Prior art keywords
client terminal
virtual
terminal
leader
server
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230073108A
Other languages
Korean (ko)
Other versions
KR20240173948A (en
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 KR1020230073108A priority Critical patent/KR102857641B1/en
Publication of KR20240173948A publication Critical patent/KR20240173948A/en
Priority to KR1020250125995A priority patent/KR20250137555A/en
Application granted granted Critical
Publication of KR102857641B1 publication Critical patent/KR102857641B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1013Network architectures, gateways, control or user entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)

Abstract

일 측면에 따른, 복수의 클라이언트 단말에 대한 DaaS(Device as a Service)를 제공하기 위한 서버는, 상기 서버의 하이퍼바이저에 의해 구동되어 단방향 서비스 데이터를 생성하는 단방향 가상 단말; 상기 서버의 호스트 운영체제 위에 설치되고, 상기 복수의 클라이언트 단말에 대한 그룹을 생성하고 상기 그룹 내 리더 클라이언트 단말을 지정하는 가상 단말 제어 에이전트; 상기 하이퍼바이저에 의해 구동되고, 상기 단방향 서비스 데이터에 대한 재생 시작 및 끝 지점의 정보를 상기 가상 단말 제어 에이전트로 전달하는 가상 단말 에이전트; 및 상기 호스트 운영체제 위에 설치되고, 상기 가상 단말 제어 에이전트로부터 상기 재생 시작 및 끝 지점의 정보를 수신하고, 상기 재생 시작 및 끝 지점의 마커를 포함하는 상기 단방향 서비스 데이터를 상기 리더 클라이언트 단말로 스트리밍 전송하는 스트리머를 포함한다.According to one aspect, a server for providing DaaS (Device as a Service) for a plurality of client terminals includes: a unidirectional virtual terminal driven by a hypervisor of the server to generate unidirectional service data; a virtual terminal control agent installed on a host operating system of the server, the virtual terminal control agent creating a group for the plurality of client terminals and designating a leader client terminal within the group; a virtual terminal agent driven by the hypervisor and transmitting information on playback start and end points for the unidirectional service data to the virtual terminal control agent; and a streamer installed on the host operating system, receiving information on the playback start and end points from the virtual terminal control agent, and streaming the unidirectional service data including markers of the playback start and end points to the leader client terminal.

Description

DaaS를 제공하기 위한 장치 및 이의 동작 방법{Apparatus for providing DaaS and operation method of the apparatus}Apparatus for providing DaaS and operation method of the apparatus

본 발명은 DaaS(Device as a Service) 기술에 관한 것으로, 보다 구체적으로 단방향 서비스와 양방향 서비스 간 전환이 가능한 1:N DaaS를 위한 장치 및 이의 동작 방법에 관한 것이다.The present invention relates to DaaS (Device as a Service) technology, and more specifically, to a device for 1:N DaaS capable of switching between one-way services and two-way services, and an operating method thereof.

DaaS(Device as a Service)는, 클라우드 환경에서 가상 단말을 구현하고 사용자가 원격지에서 가상 단말에 접속하여 이용할 수 있도록 하는 기술이다. 일반적으로 DaaS에서, 서버는 하이퍼바이저를 통해 가상 M:\임시\KTFP23-007\1.출원\머신의 가상 단말 인스턴스를 실행하고, 사용자는 클라이언트를 통해 이 가상 머신에 원격 접속하여 가상 머신의 화면을 스트리밍으로 받아 작업을 수행한다. 데스크탑 디바이스를 제공하는 VDI(Virtual Desktop Infrastructure) 서비스와, 모바일 디바이스를 제공하는 VMI(Virtual Mobile Infrastructure) 서비스는 DaaS의 일종이다.DaaS (Device as a Service) is a technology that implements virtual terminals in a cloud environment and allows users to access and use them remotely. Typically, in DaaS, a server runs a virtual terminal instance of a virtual M:\temporary\KTFP23-007\1.application\machine through a hypervisor, and users remotely access this virtual machine through a client, streaming the virtual machine's screen to perform tasks. VDI (Virtual Desktop Infrastructure) services, which provide desktop devices, and VMI (Virtual Mobile Infrastructure) services, which provide mobile devices, are types of DaaS.

이러한 DaaS는 로봇, 키오스크를 이용한 광고 및 길 안내, 원격 수업, 무인 매장의 POS(Point Of Sales)를 이용한 광고 및 사용자 서비스 등에 적용하는 시도가 전개되고 있다. 예를 들어, 서버에 가상 단말을 구현하고, 동일 공간 내에 설치된 다수의 로봇이나 다수의 키오스크에 광고를 스트리밍하거나, 학교 내 다수의 학생 단말로 원격 수업 데이터를 스트리밍하는 것을 들 수 있다. 그러나, 이와 같이 DaaS에서 동일한 내용의 데이터를 동시에 여러 클라이언트 단말에 제공하는데 있어서 기존 기술은 다음과 같은 한계가 있다.Attempts are being made to apply DaaS to advertising and navigation using robots and kiosks, remote classes, and advertising and user services utilizing POS (Point of Sales) in unmanned stores. Examples include implementing virtual terminals on servers and streaming advertisements to multiple robots or kiosks installed in the same space, or streaming remote class data to multiple student terminals within a school. However, existing technologies have the following limitations when it comes to simultaneously providing the same data to multiple client terminals through DaaS.

서버 내 하나의 가상 단말에 여러 클라이언트를 연결하는 것이 가능하나, 클라이언트 간 영역 침범 등의 보안 문제가 발생할 수 있고, 가상 단말에 여러 클라이언트가 연결되어 제어권 문제가 발생하며, 또한 하나의 가상 단말에서 동일한 화면을 여러 클라이언트에 스트리밍해야 하므로 지속적인 서버 부하가 발생하는 문제점이 있다. 이에 서버 내 하나의 가상 단말에 하나의 클라이언트 단말을 연결하는 것이 일반적이나, 서버 수용량의 한계로 경제성이 없다. 1천만원 수준의 서버에서 약 50개 이하의 가상 단말(즉, 가상 머신)만이 수용 가능하므로, 그 이상의 가상 단말을 구현하기 위해서는 많은 수의 서버가 필요하고, 그만큼 서버 유지 비용 등이 발생하여 경제성이 없다. It is possible to connect multiple clients to a single virtual terminal within a server, but there are security issues such as inter-client area invasion, control issues due to multiple clients being connected to a virtual terminal, and continuous server load occurring because the same screen must be streamed to multiple clients from a single virtual terminal. Therefore, it is common to connect one client terminal to a single virtual terminal within a server, but it is not economical due to server capacity limitations. A server costing around 10 million won can accommodate only about 50 virtual terminals (i.e. virtual machines), so implementing more virtual terminals requires a large number of servers, which incurs server maintenance costs, making it uneconomical.

또한 하나의 가상 단말에 여러 스트리머(예, 영상/음성 스트리머)를 연결하여 데이터를 스크리밍해야 하는데, 마찬가지로 서버 수용량에 한계가 있고, 지속적인 스트리밍을 위해 하나의 클라이언트 단말당 수백 Kbps~ 수 Mbps의 트래픽을 지속적으로 소모하여 망 부하가 증가하는 문제점이 있다. 또한 인터넷을 통해 데이터를 스트리밍해야 하는데 UDP 멀티캐스트, 브로드캐스트 등을 사용할 수 없는 문제점이 있다.Furthermore, multiple streamers (e.g., video/audio streamers) must be connected to a single virtual terminal to stream data. Similarly, server capacity is limited, and continuous streaming can consume hundreds of kilobits per second (Kbps) to several Mbps of traffic per client terminal, increasing network load. Furthermore, data must be streamed over the Internet, but UDP multicast and broadcast cannot be used.

또한 서버 내 가상 단말을 구현하여 단방향으로 다수의 클라이언트 단말로 동일한 내용의 데이터를 스트리밍할 때 임의의 클라이언트 단말에서 사용자 개입이 있을 때 해당 클라이언트 단말에 대해 양방향 서비스를 제공할 수 있어야 하는데 기존 기술로는 한계가 있다. 즉, 단방향 스트리밍 데이터를 재생 중인 클라이언트 단말에 양방향 서비스를 동시에 제공하기 어렵고, 각 클라이언트 단말별로 양방향 서비스를 제공하기 위해서는 각 클라이언트 단말별로 서버 내 양방향 가상 단말을 구현하여 지속 연결해야 하는데 서버 수용량의 한계로 경제성이 없다. 그리고 클라이언트 단말별로 데이터, 서비스 제공 도구 등의 개발이 필요하고 유지 보수가 필요하여 시간과 비용이 소모되는 문제점이 있다. In addition, when implementing a virtual terminal within the server to stream data with the same content to multiple client terminals in one direction, it is necessary to be able to provide two-way services to any client terminal when there is user intervention in that client terminal, but existing technology has limitations. In other words, it is difficult to simultaneously provide two-way services to client terminals that are playing one-way streaming data. In order to provide two-way services to each client terminal, a two-way virtual terminal within the server must be implemented for each client terminal and continuously connected, but this is not economical due to limitations in server capacity. In addition, there is a problem that data and service provision tools must be developed for each client terminal, and maintenance is required, which consumes time and money.

본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, DaaS에서, 적은 서버 부하, 적은 네트워크 사용량으로, 동일한 내용의 데이터를 다수의 클라이언트 단말로 단방향으로 제공하며, 필요시 양방향 서비스를 즉시 제공할 수 있는, DaaS를 제공하기 위한 장치 및 이의 동작 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above-described problem, and its purpose is to provide a device and an operating method for providing DaaS, which can unidirectionally provide data of the same content to multiple client terminals with a small server load and small network usage, and can immediately provide a two-way service when necessary.

일 측면에 따른, 복수의 클라이언트 단말에 대한 DaaS(Device as a Service)를 제공하기 위한 서버는, 상기 서버의 하이퍼바이저에 의해 구동되어 단방향 서비스 데이터를 생성하는 단방향 가상 단말; 상기 서버의 호스트 운영체제 위에 설치되고, 상기 복수의 클라이언트 단말에 대한 그룹을 생성하고 상기 그룹 내 리더 클라이언트 단말을 지정하는 가상 단말 제어 에이전트; 상기 하이퍼바이저에 의해 구동되고, 상기 단방향 서비스 데이터에 대한 재생 시작 및 끝 지점의 정보를 상기 가상 단말 제어 에이전트로 전달하는 가상 단말 에이전트; 및 상기 호스트 운영체제 위에 설치되고, 상기 가상 단말 제어 에이전트로부터 상기 재생 시작 및 끝 지점의 정보를 수신하고, 상기 재생 시작 및 끝 지점의 마커를 포함하는 상기 단방향 서비스 데이터를 상기 리더 클라이언트 단말로 스트리밍 전송하는 스트리머를 포함한다.According to one aspect, a server for providing DaaS (Device as a Service) for a plurality of client terminals includes: a unidirectional virtual terminal driven by a hypervisor of the server to generate unidirectional service data; a virtual terminal control agent installed on a host operating system of the server, the virtual terminal control agent creating a group for the plurality of client terminals and designating a leader client terminal within the group; a virtual terminal agent driven by the hypervisor and transmitting information on playback start and end points for the unidirectional service data to the virtual terminal control agent; and a streamer installed on the host operating system, receiving information on the playback start and end points from the virtual terminal control agent, and streaming the unidirectional service data including markers of the playback start and end points to the leader client terminal.

상기 리더 클라이언트 단말은, 상기 재생 시작 및 끝 지점의 마커에 기초하여 녹화한 상기 단방향 서비스 데이터의 녹화 파일과, 상기 재생 시작 및 끝 지점에 대한 정보 파일을 그룹 내 다른 멤버 클라이언트 단말로 전송할 수 있다.The above leader client terminal can transmit a recording file of the one-way service data recorded based on the markers of the playback start and end points and an information file about the playback start and end points to other member client terminals within the group.

상기 가상 단말 제어 에이전트는, 그룹 내 각 클라이언트 단말의 프로세서 성능, 네트워크 홉 수, 또는 지연 시간 중 적어도 하나를 기초로 리더 클라이언트 단말을 지정할 수 있다.The above virtual terminal control agent can designate a leader client terminal based on at least one of the processor performance, number of network hops, or delay time of each client terminal in the group.

상기 가상 단말 제어 에이전트는, 그룹 내 각 클라이언트 단말로부터 주기적 연결 상태 보고를 수신하고, 리더 클라이언트 단말로부터 보고가 끊긴 경우, 나머지 클라이언트 단말 중 하나를 리더 클라이언트로 재지정할 수 있다.The above virtual terminal control agent receives periodic connection status reports from each client terminal within the group, and when reports from the leader client terminal are disconnected, it can redesignate one of the remaining client terminals as the leader client.

상기 가상 단말 제어 에이전트는, 상기 재지정된 리더 클라이언트 단말을 통해 단방향 서비스를 재시작할 수 있다.The above virtual terminal control agent can restart a unidirectional service through the above reassigned leader client terminal.

상기 서버는, 상기 하이퍼바이저에 의해 구동되고 상기 그룹 내 클라이언트 단말들 중에서 사용자의 입력이 발생한 클라이언트 단말로 양방향 서비스를 제공하는 앙방향 가상 단말을 더 포함할 수 있다.The server may further include a bidirectional virtual terminal that is driven by the hypervisor and provides a bidirectional service to a client terminal from among the client terminals in the group where a user input has occurred.

다른 측면에 따른, 서버로부터 DaaS(Device as a Service)를 제공받기 위한 클라이언트 단말은, 상기 클라이언트 단말의 하이퍼바이저에 의해 구동되고, 서버의 단방향 가상 단말로부터 수신되는 재생 시작 및 끝 지점의 마커를 포함하는 단방향 서비스 데이터를 재생하는 가상 영역; 상기 하이퍼바이저 위에 설치되고, 상기 가상 영역을 녹화하는 가상 영역 녹화 유닛; 상기 하아퍼바이저 위에 설치되고, 상기 가상 영역 녹화 유닛을 제어하는 가상 영역 제어 유닛; 상기 클라이언트 단말의 호스트 운영체제 위에 설치되고, 상기 재생 시작 및 끝 지점의 마커에 기초하여 상기 가상 영역 제어 유닛으로 녹화 시작/종료 명령을 전달하는 가상 영역 제어 에이전트; 및 상기 호스트 운영체제 위에 설치되고, 상기 서버와 통신하여 리더 지정 프로세스를 수행하고, 상기 가상 영역의 녹화 파일 및, 상기 재생 시작 및 끝 지점에 대한 정보 파일을 동일 그룹에 속하는 다른 멤버 클라이언트 단말로 전송하는 통신 및 중계 에이전트;를 포함한다.According to another aspect, a client terminal for receiving DaaS (Device as a Service) from a server includes: a virtual area driven by a hypervisor of the client terminal and playing unidirectional service data including markers of playback start and end points received from a unidirectional virtual terminal of the server; a virtual area recording unit installed on the hypervisor and recording the virtual area; a virtual area control unit installed on the hypervisor and controlling the virtual area recording unit; a virtual area control agent installed on a host operating system of the client terminal and transmitting a recording start/end command to the virtual area control unit based on the markers of the playback start and end points; and a communication and relay agent installed on the host operating system and communicating with the server to perform a leader designation process and transmitting a recording file of the virtual area and an information file of the playback start and end points to other member client terminals belonging to the same group.

상기 가상 영역 제어 에이전트는, 상기 단방향 가상 단말의 접속시 상기 가상 영역 제어 유닛으로 녹화 시작 명령을 전달하고 상기 단방향 서비스 데이터의 재생에서 상기 끝 지점의 마커가 확인되면 상기 가상 영역 제어 유닛으로 녹화 종료 명령을 전달할 수 있다.The above virtual area control agent can transmit a recording start command to the virtual area control unit when the unidirectional virtual terminal is connected, and can transmit a recording end command to the virtual area control unit when the marker of the end point is confirmed during playback of the unidirectional service data.

상기 통신 및 중계 에이전트는, 동일 그룹에 속하는 다른 멤버 클라이언트 단말의 요청시, 또는 다른 멤버 클라이언트 단말의 상태 정보에 기초하여, 상기 녹화 파일 및 상기 정보 파일을 해당 멤버의 클라이언트 단말로 재전송할 수 있다.The above communication and relay agent can retransmit the recording file and the information file to the client terminal of another member belonging to the same group at the request of the client terminal of the other member, or based on the status information of the client terminal of the other member.

또 다른 측면에 따른, 서버로부터 DaaS(Device as a Service)를 제공받기 위한 클라이언트 단말은, 상기 클라이언트 단말의 호스트 운영체제 위에 설치되고, 상기 서버에 의해 리더로 지정된 클라이언트 단말로부터 단방향 서비스 데이터에 대한 녹화 파일 및, 재생 시작 및 끝 지점에 대한 정보 파일을 수신하는 통신 및 중계 에이전트; 상기 클라이언트 단말의 하아퍼바이저 위에 설치되고, 상기 수신된 녹화 파일을 상기 하이퍼바이저에 의해 구동되는 가상 영역에 로딩하여 재생하는 가상 영역 재생 유닛; 상기 하이퍼바이저 위에 설치되고, 상기 가상 영역 재생 유닛을 제어하는 가상 영역 제어 유닛; 및 상기 호스트 운영체제 위에 설치되고, 상기 정보 파일에 포함된 재생 시작 및 끝 지점의 정보에 따라 상기 가상 영역 제어 유닛으로 재생 시작/종료 명령을 전달하여 상기 가상 영역 내에서 상기 재생 시작 및 끝 지점 사이가 반복 재생되도록 하는 가상 영역 제어 에이전트를 포함한다.According to another aspect, a client terminal for receiving DaaS (Device as a Service) from a server includes a communication and relay agent installed on a host operating system of the client terminal and receiving a recording file for unidirectional service data and an information file for playback start and end points from a client terminal designated as a leader by the server; a virtual area playback unit installed on a hypervisor of the client terminal and loading the received recording file into a virtual area driven by the hypervisor and playing it back; a virtual area control unit installed on the hypervisor and controlling the virtual area playback unit; and a virtual area control agent installed on the host operating system and transmitting a playback start/end command to the virtual area control unit according to the information for playback start and end points included in the information file so that playback is repeated between the playback start and end points within the virtual area.

상기 가상 영역 제어 에이전트는, 상기 리더로 지정된 클라이언트 단말과 다른 기종인 경우, 재생 시작 및 끝 지점에 관하여 상기 리더로 지정된 클라이언트 단말에 대한 상대 시각을 확인하고, 재생 시작 및 끝 지점에 대한 프로세서 사이클 카운트에 기초하여 재생 시작 및 끝 지점을 설정할 수 있다.The above virtual area control agent, if the client terminal designated as the leader is of a different type, can check the relative time with respect to the client terminal designated as the leader with respect to the playback start and end points, and set the playback start and end points based on the processor cycle count for the playback start and end points.

상기 가상 영역에서 양방향 서비스에 대한 사용자의 입력 이벤트가 발생할 경우, 상기 가상 영역 제어 에이전트는, 상기 서버의 양방향 가상 단말에 접속하여 상기 가상 영역에서 로딩된 녹화 파일에 양방향 서비스 데이터를 추가하고, 양방향 서비스 사용이 종료되는 경우 상기 추가된 양방향 서비스 데이터에 대한 파일을 삭제한 후, 상기 단방향 서비스 데이터를 다시 재생 제어할 수 있다.When a user input event for a two-way service occurs in the virtual area, the virtual area control agent connects to the two-way virtual terminal of the server to add two-way service data to a recording file loaded in the virtual area, and when the use of the two-way service is terminated, deletes the file for the added two-way service data, and then controls the playback of the one-way service data again.

또 다른 측면에 따른, 서버에서 복수의 클라이언트 단말에 대해 DaaS(Device as a Service)를 제공하는 방법은, 상기 복수의 클라이언트 단말에 대한 그룹을 생성하고 그룹 내 리더 클라이언트 단말을 지정하는 단계; 하이퍼바이저에 의해 단방향 가상 단말을 구동하여 단방향 서비스 데이터를 생성하는 단계; 및 재생 시작 및 끝 지점의 마커를 포함하는 상기 단방향 서비스 데이터를 호스트 운영체제 내의 스트리머를 통해 상기 리더 클라이언트 단말로 스트리밍 전송하는 단계를 포함한다.According to another aspect, a method for providing DaaS (Device as a Service) for a plurality of client terminals from a server includes the steps of: creating a group for the plurality of client terminals and designating a leader client terminal within the group; generating unidirectional service data by driving a unidirectional virtual terminal by a hypervisor; and streaming the unidirectional service data including markers of playback start and end points to the leader client terminal through a streamer within a host operating system.

상기 방법은, 상기 리더 클라이언트 단말에 의해, 상기 재생 시작 및 끝 지점의 마커에 기초하여 녹화한 상기 단방향 서비스 데이터의 녹화 파일과, 상기 재생 시작 및 끝 지점에 대한 정보 파일이 그룹 내 다른 멤버 클라이언트 단말로 전송되는 단계를 더 포함할 수 있다.The method may further include a step of transmitting, by the leader client terminal, a recording file of the one-way service data recorded based on markers of the playback start and end points and an information file about the playback start and end points to another member client terminal within the group.

상기 지정하는 단계는, 그룹 내 각 클라이언트 단말의 프로세서 성능, 네트워크 홉 수, 또는 지연 시간 중 적어도 하나를 기초로 리더 클라이언트 단말을 지정할 수 있다.The above-mentioned designating step may designate a leader client terminal based on at least one of the processor performance, number of network hops, or delay time of each client terminal in the group.

상기 방법은, 그룹 내 각 클라이언트 단말로부터 주기적 연결 상태 보고를 수신하고, 리더 클라이언트 단말로부터 보고가 끊긴 경우, 나머지 클라이언트 단말 중 하나를 리더 클라이언트로 재지정하는 단계를 더 포함할 수 있다.The above method may further include a step of receiving periodic connection status reports from each client terminal within the group, and, if reports from the leader client terminal are disconnected, redesignating one of the remaining client terminals as the leader client.

상기 방법은, 상기 재지정된 리더 클라이언트 단말을 통해 단방향 서비스를 재시작하는 단계를 더 포함할 수 있다.The above method may further include a step of restarting a unidirectional service through the re-designated leader client terminal.

상기 방법은, 상기 그룹 내 클라이언트 단말들 중에서 사용자의 입력이 발생한 클라이언트 단말에 대해 상기 하이퍼바이저에 의해 양방향 가상 단말을 구동하여 양방향 서비스를 제공하는 단계를 더 포함할 수 있다.The above method may further include a step of providing a two-way service by driving a two-way virtual terminal by the hypervisor for a client terminal among the client terminals within the group where a user input has occurred.

본 발명에 따르면, 서버에서 그룹 내 모든 클라이언트 단말들로 단방향 서비스 데이터를 스트리밍 전송하지 않고 리더 클라이언트 단말로만 단방향 서비스 데이터를 스트리밍 전송만 하면 되므로, 서버 부하 및 네트워크 사용량을 줄일 수 있고, 클라이언트 단말의 배터리를 효율적으로 사용할 수 있도록 한다.According to the present invention, since one-way service data is not streamed from a server to all client terminals within a group, but only to a leader client terminal, server load and network usage can be reduced, and the battery of the client terminal can be used efficiently.

본 발명에 따르면, 그룹 내 모든 클라이언트 단말에서 동일한 내용의 단방향 서비스 데이터를 재생하는 도중 특정 클라이언트 단말에서 사용자의 개입이 있는 경우 해당 특정 클라이언트 단말을 즉시 양방향 서비스로 전환하여 제공할 수 있고, 양방향 서비스 종료시 다시 단방향 서비스로 전환할 수 있어, 유연하게 단방향 서비스와 양방향 서비스를 제공할 수 있다.According to the present invention, when a user intervenes at a specific client terminal while playing one-way service data of the same content at all client terminals in a group, the specific client terminal can be immediately switched to a two-way service and provided, and when the two-way service ends, the terminal can be switched back to a one-way service, thereby providing one-way and two-way services flexibly.

본 발명에 따르면, 그룹 내 클라이언트 단말들의 기종이 상이하더라도, 각 클라이언트 단말은 동일한 내용의 단방향 서비스 데이터의 동일한 구간을 반복 재생할 수 있어, 특정 기기로 제한되지 않고 복수의 클라이언트 단말로 동일한 내용의 단방향 서비스를 제공할 수 있다.According to the present invention, even if the client terminals within a group are of different models, each client terminal can repeatedly play the same section of one-way service data having the same content, so that one-way service having the same content can be provided to multiple client terminals without being limited to a specific device.

도 1은 본 발명의 일 실시예에 따른 DaaS(Device as a Service) 시스템의 구성을 나타낸 도면이다.
도 2는 도 1의 서버의 구성을 구체적으로 나타낸 도면이다.
도 3은 도 1의 클라이언트 단말의 구성을 구체적으로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 서버에서 클라이언트 단말들의 그룹을 생성하고 리더를 지정하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 리더 클라이언트 단말로 단방향 서비스데이터를 스트리밍 전송하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 리더를 재지정하는 방법을 설명하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 리더 클라이언트 단말이 단방향 서비스 데이터를 그룹 멤버들에게 배포하는 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 리더 클라이언트 단말이 멤버들의 상태를 확인하는 방법을 설명하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 멤버 클라이언트 단말이 단방향 서비스를 제공하는 방법을 설명하는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 멤버 클라이언트 단말에서 녹화 파일을 재생하는 구체적인 방법을 설명하는 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 단방향 서비스를 양방향 서비스로 전환하는 방법을 설명하는 흐름도이다.
FIG. 1 is a diagram showing the configuration of a DaaS (Device as a Service) system according to one embodiment of the present invention.
Figure 2 is a drawing specifically showing the configuration of the server of Figure 1.
Figure 3 is a drawing specifically showing the configuration of the client terminal of Figure 1.
FIG. 4 is a flowchart illustrating a method of creating a group of client terminals and designating a leader in a server according to one embodiment of the present invention.
FIG. 5 is a flowchart illustrating a method for streaming one-way service data to a leader client terminal according to one embodiment of the present invention.
FIG. 6 is a flowchart illustrating a method for reassigning a leader according to one embodiment of the present invention.
FIG. 7 is a flowchart illustrating a method for a leader client terminal to distribute unidirectional service data to group members according to one embodiment of the present invention.
FIG. 8 is a flowchart illustrating a method for a leader client terminal to check the status of members according to one embodiment of the present invention.
FIG. 9 is a flowchart illustrating a method for a member client terminal to provide a one-way service according to one embodiment of the present invention.
FIG. 10 is a flowchart illustrating a specific method of playing a recording file on a member client terminal according to one embodiment of the present invention.
FIG. 11 is a flowchart illustrating a method for converting a one-way service into a two-way service according to one embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, the embodiments disclosed in this specification will be described in detail with reference to the attached drawings. Regardless of the drawing numbers, identical or similar components will be given the same reference numbers, and redundant descriptions thereof will be omitted. The suffix "part" used for components in the following description is given or used interchangeably only for the convenience of writing the specification, and does not in itself have a distinct meaning or role. In addition, when describing the embodiments disclosed in this specification, if it is determined that a specific description of a related known technology may obscure the gist of the embodiments disclosed in this specification, a detailed description thereof will be omitted. In addition, the attached drawings are only intended to facilitate easy understanding of the embodiments disclosed in this specification, and the technical ideas disclosed in this specification are not limited by the attached drawings, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and technical scope of the present invention.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms that include ordinal numbers, such as first, second, etc., may be used to describe various components, but the components are not limited by these terms. These terms are used solely to distinguish one component from another.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as "comprises" or "have" are intended to indicate the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but should be understood not to preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.In implementing the present invention, components may be described in detail for convenience of explanation, but these components may be implemented in one device or module, or one component may be implemented by being divided into multiple devices or modules.

도 1은 본 발명의 일 실시예에 따른 DaaS(Device as a Service) 시스템의 구성을 나타낸 도면이다. 도 1을 참조하면, 본 실시예에 따른 DaaS 시스템은, 서버(100) 및 복수의 클라이언트 단말(200)을 포함한다. DaaS 시스템에서 클라이언트 단말(200)은 서버(100)에 접속하고 서버(100) 내에서 가상 단말이 실행되어 가상 단말의 화면, 영상, 음성 등의 스트리밍 데이터가 클라이언트 단말(200)로 전송된다. 본 실시예에서, 복수의 클라이언트 단말(200)은, 동일 서비스를 제공받는 클라이언트 그룹이다. 예를 들어, 키오스크, 또는 로봇, 교육용 단말, POS 또는 사이니지 단말 등일 수 있다.FIG. 1 is a diagram illustrating a configuration of a DaaS (Device as a Service) system according to one embodiment of the present invention. Referring to FIG. 1, the DaaS system according to the present embodiment includes a server (100) and a plurality of client terminals (200). In the DaaS system, a client terminal (200) connects to the server (100), and a virtual terminal is executed within the server (100), and streaming data such as the screen, video, and audio of the virtual terminal are transmitted to the client terminal (200). In the present embodiment, the plurality of client terminals (200) are a group of clients that receive the same service. For example, the client terminals may be kiosks, robots, educational terminals, POS, or signage terminals.

서버(100)는, 도 1을 참조하면, 호스트 운영체제(OS)(110), 하이퍼바이저(120) 및 가상 단말(130)을 포함한다. 서버(100)는, 도시되지 않았지만, CPU, GPU, 메모리(MEMORY), 디스크 및 네트워크 인터페이스 카드(NIC, 예, ethernet 카드) 등의 물리 하드웨어와, 디바이스 드라이버 등도 포함한다. CPU는 메모리에 저장된 명령어 세트를 실행하여 DaaS의 여러 기능을 수행하고 데이터를 처리한다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 디스크는 하나 이상의 자기 디스크 저장 장치로서 로컬 저장 장치나 네트워크 부착 스토리지 등의 원격 저장 장치 등을 포함한다. Referring to FIG. 1, the server (100) includes a host operating system (OS) (110), a hypervisor (120), and a virtual terminal (130). Although not illustrated, the server (100) also includes physical hardware such as a CPU, a GPU, memory (MEMORY), a disk, and a network interface card (NIC, e.g., an ethernet card), as well as device drivers. The CPU executes a set of instructions stored in the memory to perform various functions of DaaS and process data. The memory may include a high-speed random access memory, a non-volatile memory such as a flash memory device, or another non-volatile semiconductor memory device. The disk includes one or more magnetic disk storage devices, such as a local storage device or a remote storage device such as a network-attached storage device.

호스트 운영체제(110)는 서버(100)의 물리 디스크에 설치되어 CPU에 의해 실행된다. 하이퍼바이저(120)는, 상기 호스트 운영체제(110) 상에 가상 단말(130)에 해당하는 가상 머신을 생성하고 가상 머신 내에 물리 하드웨어를 가상화하여 논리적인 물리 디바이스를 생성하며 운영체제를 설치하여 운영하는 소프트웨어 계층이다. 예를 들어, KVM(Kernel-based Virtual Machine)/QEMU 기술을 이용할 수 있으나 여기에 제한되는 것은 아니다.The host operating system (110) is installed on the physical disk of the server (100) and is executed by the CPU. The hypervisor (120) is a software layer that creates a virtual machine corresponding to a virtual terminal (130) on the host operating system (110), virtualizes physical hardware within the virtual machine to create a logical physical device, and installs and operates the operating system. For example, KVM (Kernel-based Virtual Machine)/QEMU technology can be used, but is not limited thereto.

가상 단말(130)은, 가상 머신으로서, 호스트 운영체제(110)에 의해 가상화된 논리적인 가상 하드웨어(Virtual Hardware)를 포함하고, 또한 게스트 운영체제(Guest OS)가 설치되며 게스트 운영체제(Guest OS)에 각종 사용자 응용(User Application)이 설치되어 실행될 수 있다. 사용자 응용은 예를 들어, 광고 서비스, 교육 서비스 등의 다양한 서비스를 포함한다. 게스트 운영체제는 Linux, NetBSD, FreeBSD, Solaris, Windows, Darwin, RTXC, UNIX, OS X 또는 VxWorks, 안드로이드 등을 포함하는 운영체제일 수 있다. 가상 단말(130)은 단방향 단말과 양방향 단말을 포함할 수 있다. 이에 대해서는 이하에서 더 자세히 설명된다.The virtual terminal (130) is a virtual machine that includes logical virtual hardware virtualized by the host operating system (110), and also has a guest operating system (Guest OS) installed on it, and various user applications (User Applications) can be installed and executed on the guest operating system (Guest OS). The user applications include various services, such as advertising services and education services. The guest operating system can be an operating system including Linux, NetBSD, FreeBSD, Solaris, Windows, Darwin, RTXC, UNIX, OS X, VxWorks, Android, etc. The virtual terminal (130) can include a unidirectional terminal and a bidirectional terminal. This will be described in more detail below.

클라이언트 단말(200)은, 퍼스널 컴퓨터, 노트북, 태블릿 PC, 스마트폰 등의 사용자가 보유하는 컴퓨팅 장치이다. 클라이언트 단말(200)은, 서버(100)에 접속하고 서버(100) 내에서 실행된 가상 단말(130)의 화면, 음성, 영상 등의 스트리밍 데이터를 수신할 수 있다. 클라이언트 단말(200)은, 호스트 운영체제(OS)(210), 하이퍼바이저(220), 하이퍼바이저(220) 및 가상 영역(230)을 포함한다. 가상 영역(230)은, 하이퍼바이저(220)에 의해 구동되는 가상 머신의 내부로서 서버(100)의 가상 단말(130)로부터 스트리밍 전송되는 데이터가 재생된다. 가상 영역(230)은 가상 머신이 동작할 수 있는 호스트 운영체제(OS)(210)에 의해 가상화된 논리적인 가상 하드웨어(Virtual Hardware)를 포함하고, 또한 게스트 운영체제(Guest OS)가 설치되며 게스트 운영체제(Guest OS)에 각종 사용자 응용(User Application)이 설치되어 실행될 수 있다.A client terminal (200) is a computing device owned by a user, such as a personal computer, laptop, tablet PC, or smartphone. The client terminal (200) can connect to a server (100) and receive streaming data, such as screens, voices, and images, of a virtual terminal (130) running within the server (100). The client terminal (200) includes a host operating system (OS) (210), a hypervisor (220), and a virtual area (230). The virtual area (230) is the interior of a virtual machine driven by the hypervisor (220), and data streaming from the virtual terminal (130) of the server (100) is played. The virtual area (230) includes logical virtual hardware virtualized by a host operating system (OS) (210) on which a virtual machine can operate, and also a guest operating system (Guest OS) is installed, and various user applications can be installed and executed in the guest operating system (Guest OS).

복수의 클라이언트 단말(200)은, 서버(100)에 의해 하나의 그룹으로 관리되고, 복수의 클라이언트 단말(200) 중 하나의 클라이언트 단말(200)이 서버(100)에 의해 리더로 지정될 수 있다. 서버(100)의 가상 단말(130)에서 재생되는 단방향 서비스 데이터가 리더로 지정된 클라이언트 단말(200)(이하, 리더 클라이언트 단말이라 함)로 일회성으로 스트리밍 전송된다. 이때, 서버(100)로부터 스트리밍 전송되는 단방향 서비스 데이터에는 재생 시작 및 끝 지점 마커가 포함된다. 리더 클라이언트 단말(200)은 서버(100)의 가상 단말(130)에 접속한 시점부터 녹화를 시작하고 상기 재생 시작 및 끝 지점 마커을 체크하고 상기 끝 지점 마커에 도달시 녹화를 종료하여 그 녹화 파일과 재생 시작 및 끝 지점의 정보 파일을 그룹 내 다른 클라이언트 단말(200)로 전송한다. 여기서 녹화 파일은 디스크 이미지 파일로서, 예를 들어 스냅샷이다.A plurality of client terminals (200) are managed as a group by the server (100), and one of the plurality of client terminals (200) can be designated as a leader by the server (100). One-way service data played on the virtual terminal (130) of the server (100) is streamed once to the client terminal (200) designated as the leader (hereinafter, referred to as the leader client terminal). At this time, the one-way service data streamed from the server (100) includes playback start and end point markers. The leader client terminal (200) starts recording from the time of connection to the virtual terminal (130) of the server (100), checks the playback start and end point markers, and ends recording when the end point marker is reached, and transmits the recording file and the playback start and end point information file to other client terminals (200) in the group. Here, the recording file is a disk image file, for example, a snapshot.

그룹 내 다른 클라이언트 단말(200) 각각은 리더 클라이언트 단말(200)로부터 전송되는 녹화 파일을 각 클라이언트 단말(200) 내의 가상 영역(230)에서 부팅하고 구동한다. 이때, 각 클라이언트 단말(200)은, 상기 정보 파일에 포함된 재생 시작 및 끝 지점의 정보를 기초로 상기 구동된 녹화 파일에서 컨텐츠의 재생 시작 지점과 끝 지점 사이를 반복하여 재생한다. 이로써, 그룹 내 클라이언트 단말(200)들은 모두 동일한 내용의 단방향 서비스 데이터를 재생하여 표시하게 된다. Each of the other client terminals (200) within the group boots and runs the recording file transmitted from the leader client terminal (200) in a virtual area (230) within each client terminal (200). At this time, each client terminal (200) repeatedly plays the content between the playback start point and the playback end point in the driven recording file based on the playback start and end point information included in the information file. As a result, all client terminals (200) within the group play and display the same content of one-way service data.

그룹 내 모든 클라이언트 단말(200)은, 단방향 서비스 제공 중, 서버(100)로 연결 상태 보고를 주기적으로 전송한다. 그룹 내 모든 클라이언트 단말(200)은, 동일한 내용의 단방향 서비스 데이터를 재생하여 표시하는 도중, 어느 한 클라이언트 단말(200)에서 화면 터치 등의 사용자 입력이 발생할 경우, 해당 클라이언트 단말(200)은 서버(100)로 양방향 연결을 요청하고 서버(100)와 통신하여 양방향 서비스를 제공한다. 즉, 클라이언트 단말(200)은 사용자 입력을 서버(100)로 전송하고 서버(100)로부터 사용자 입력에 대한 응답 데이터를 스트리밍 전송받아 표시하는 방식으로 양방향 서비스를 제공한다. 이후 사용자의 종료 입력이 발생할 경우, 해당 클라이언트 단말(200)은 서버(100)와의 양방향 연결을 끊고 기존 재생하던 단방향 서비스의 녹화 파일을 다시 재생하여 표시한다. All client terminals (200) within the group periodically transmit connection status reports to the server (100) while providing one-way service. When all client terminals (200) within the group are playing and displaying one-way service data having the same content, if a user input such as a screen touch occurs on a client terminal (200), the client terminal (200) requests a two-way connection to the server (100) and communicates with the server (100) to provide a two-way service. That is, the client terminal (200) provides a two-way service by transmitting a user input to the server (100) and receiving and displaying streaming data in response to the user input from the server (100). Thereafter, when a user terminates the service, the client terminal (200) disconnects the two-way connection with the server (100) and replays and displays the recording file of the one-way service that was previously playing.

이상에서 설명한 바와 같이, 그룹 내 모든 클라이언트 단말(200)이 서버(100)로부터 단방향 서비스 데이터를 스트리밍받지 않고 리더 클라이언트 단말(200)만 단방향 서비스 데이터를 스트리밍 받으므로 네트워크 트래픽에 의한 망 부하를 줄일 수 있고 서버 수용량을 증설할 필요가 없으며, 또한 리더 클라이언트 단말(200) 이외 그룹 내 다른 멤버인 클라이언트 단말(200)은 서버(100)와 네트워크 통신을 지속적으로 할 필요가 없어 전력 소모를 줄일 수 있다. 이하에서는 도면을 참조하여 보다 구체적으로 실시예를 참조하여 설명한다. As described above, since not all client terminals (200) within the group receive one-way service data streaming from the server (100), but only the leader client terminal (200) receives one-way service data streaming, the network load due to network traffic can be reduced, there is no need to increase server capacity, and also, other than the leader client terminal (200), other member client terminals (200) within the group do not need to continuously communicate with the server (100) through the network, thereby reducing power consumption. Hereinafter, a more specific description will be given with reference to an embodiment with reference to the drawings.

도 2는 도 1의 서버의 구성을 구체적으로 나타낸 도면이다. 도 2를 참조하면, 호스트 운영체제(110) 위에, 가상 단말 제어 에이전트(111) 및 스트리머(112)가 설치되고, 가상 단말(130)로서 단방향 가상 단말(131)과 양방향 가상 단말(132)이 하이퍼바이저(120)에 의해 구동되고, 또한 하이퍼바이저(120)에 의해 가상 단말 에이전트(133)가 구동된다. 단방향 가상 단말(131), 양방향 가상 단말(132) 및 가상 단말 에이전트(133) 각각은 가상 머신일 수 있다. FIG. 2 is a drawing specifically showing the configuration of the server of FIG. 1. Referring to FIG. 2, a virtual terminal control agent (111) and a streamer (112) are installed on a host operating system (110), and a unidirectional virtual terminal (131) and a bidirectional virtual terminal (132) as virtual terminals (130) are driven by a hypervisor (120), and a virtual terminal agent (133) is also driven by the hypervisor (120). Each of the unidirectional virtual terminal (131), the bidirectional virtual terminal (132), and the virtual terminal agent (133) may be a virtual machine.

가상 단말 제어 에이전트(111)는, 가상 단말 에이전트(133)와 연동하여 가상 단말(130: 131, 132)과 클라이언트 단말(200) 간의 연결을 관리하고, 또한 클라이언트 단말(200)들의 그룹을 관리하고 연결을 제어한다. 가상 단말 제어 에이전트(111)는, 관리자의 입력에 따라 클라이언트 단말(200)들의 그룹을 생성하고, 각 그룹 내에서 리더 클라이언트 단말(200)을 지정한다. 바람직하게, 가상 단말 제어 에이전트(111)는, 관리자의 입력에 따라 그룹을 생성한 후, 클라이언트 단말(200)들로부터 그룹에 대한 가입 요청을 수신할 수 있고, 지정된 수의 클라이언트 단말(200)들을 그룹에 포함한다. 지정된 수보다 많은 클라이언트 단말(200)들이 그룹 가입 신청을 하는 경우, 가상 단말 제어 에이전트(111)는, 지정된 수에 따라 복수의 그룹으로 분할할 수 있다.The virtual terminal control agent (111) manages the connection between the virtual terminal (130: 131, 132) and the client terminal (200) in conjunction with the virtual terminal agent (133), and also manages a group of client terminals (200) and controls the connection. The virtual terminal control agent (111) creates a group of client terminals (200) according to an input of an administrator, and designates a leader client terminal (200) within each group. Preferably, the virtual terminal control agent (111), after creating a group according to an input of an administrator, can receive a request to join the group from the client terminals (200), and includes a specified number of client terminals (200) in the group. If more client terminals (200) than the specified number apply to join the group, the virtual terminal control agent (111) can divide the group into multiple groups according to the specified number.

가상 단말 제어 에이전트(111)는, 프로세서 성능이 가장 우수한(예, 처리량이 가장 높은) 클라이언트 단말을, 또는 클라이언트 단말(200)들의 네트워크 홉(hop) 수를 확인하여 홉 수가 가장 작은 클라이언트 단말을, 또는 클라이언트 단말(200)들의 RTT(Round Trip Time)을 확인하여 RTT가 가장 작은 클라이언트 단말을 리더로 지정할 수 있다. 가상 단말 제어 에이전트(111)는, 리더로 지정된 클라이언트 단말(200)로 그룹 멤버 정보(예, IP 주소, ID 등)를 전송하고 또한 그룹 내 멤버들로 리더 정보(예, IP 주소, ID 등)를 전송한다. The virtual terminal control agent (111) can designate as a leader the client terminal with the best processor performance (e.g., highest throughput), the client terminal with the smallest number of network hops by checking the number of network hops of the client terminals (200), or the client terminal with the smallest RTT (Round Trip Time) by checking the RTT of the client terminals (200). The virtual terminal control agent (111) transmits group member information (e.g., IP address, ID, etc.) to the client terminal (200) designated as the leader and also transmits leader information (e.g., IP address, ID, etc.) to members within the group.

가상 단말 제어 에이전트(111)는, 그룹 내 각 클라이언트 단말(200)로부터 주기적으로 연결 상태 보고를 수신할 수 있다. 가상 단말 제어 에이전트(111)는, 리더 클라이언트 단말(200)로부터 주기적 연결 상태 보고가 수신되지 않는 경우, 리더 지정 프로세스를 재시작하고, 단방향 서비스가 중단 상태인 경우, 재지정된 리더 클라이언트 단말(200)을 통해 단방향 서비스를 앞서 설명한 절차에 따라 재시작한다. The virtual terminal control agent (111) can periodically receive connection status reports from each client terminal (200) within the group. If the virtual terminal control agent (111) does not receive periodic connection status reports from the leader client terminal (200), it restarts the leader designation process, and if the unidirectional service is interrupted, it restarts the unidirectional service through the re-designated leader client terminal (200) according to the procedure described above.

가상 단말 제어 에이전트(111)는, 리더 클라이언트 단말(200)의 접속에 의해 단방향 가상 단말(131)이 구동되는 경우, 가상 단말 에이전트(133)로부터 단방향 서비스 데이터의 반복 재생을 위한 재생 시작 및 끝 지점의 정보를 수신하여, 스트리머(112)로 전달한다. 바람직하게, 가상 단말 에이전트(133)는, 관리자로부터 재생 시작 및 끝 지점의 정보를 수신할 수 있다.When a unidirectional virtual terminal (131) is driven by a connection of a leader client terminal (200), the virtual terminal control agent (111) receives information on the start and end points of playback for repeated playback of unidirectional service data from the virtual terminal agent (133) and transmits the information to the streamer (112). Preferably, the virtual terminal agent (133) can receive information on the start and end points of playback from an administrator.

스트리머(112)는, 가상 단말(130: 131, 132)의 화면, 음성 등의 데이터을 인코딩하여 클라이언트 단말(200)로 스트리밍 전송한다. 예를 들어, 가상 단말(130:, 131, 132)에서 실행되는 어플리케이션의 화면이나 바탕 화면 등을 클라이언트 단말(200)로 스트리밍 전송한다. 바람직하게, 스트리머(112)는, 서버(100)의 CPU, GPU 등을 이용하여 인코딩 및 트랜스코딩을 수행할 수 있다. 스트리머(112)는, 단방향 서비스 데이터를 리더 클라이언트 단말(200)로 스트리밍 전송할 때, 가상 단말 제어 에이전트(111)로부터 수신된 재생 시작 및 끝 지점 마커를 단방향 서비스 데이터에 포함시켜 전송한다.The streamer (112) encodes data such as the screen and voice of the virtual terminal (130: 131, 132) and streams them to the client terminal (200). For example, the screen or desktop of an application running on the virtual terminal (130: 131, 132) is streamed to the client terminal (200). Preferably, the streamer (112) can perform encoding and transcoding using the CPU, GPU, etc. of the server (100). When streaming one-way service data to the leader client terminal (200), the streamer (112) includes playback start and end point markers received from the virtual terminal control agent (111) in the one-way service data and transmits them.

도 2에 도시된 바와 같이, 스트리머(112)는, 사용자 UX 향상을 위해 호스트 운영체제(110) 위에 설치되는 것이 바람직하다. 스트리머(112)를 가상 단말(130: 131, 132) 내에 설치할 경우, 영상/네트워크/사용자 입출력(I/O) 데이터가 가상 단말(130: 131, 132) 내 게스트 운영체제(Guest OS)를 통과하여 지연이 발생하고, 서버(100)의 GPU를 사용할 수 없다. 호스트 운영체제(110)에 스트리머(112)를 설치할 경우 이러한 지연을 감소시킬 수 있고 서비스 제공시 반응 속도를 향상시킬 수 있으며 서버(110)의 GPU를 이용한 그래픽 가속 기능을 여러 클라이언트에게 제공할 수 있어 다양한 기능, 빠른 컴퓨팅이 가능해진다.As illustrated in FIG. 2, the streamer (112) is preferably installed on the host operating system (110) to improve user UX. When the streamer (112) is installed in a virtual terminal (130: 131, 132), video/network/user input/output (I/O) data passes through the guest operating system (Guest OS) in the virtual terminal (130: 131, 132), causing a delay, and the GPU of the server (100) cannot be used. When the streamer (112) is installed in the host operating system (110), such delay can be reduced, the response speed when providing a service can be improved, and the graphic acceleration function using the GPU of the server (110) can be provided to multiple clients, enabling various functions and fast computing.

단방향 가상 단말(131)은, 단방향 서비스 데이터를 리더 클라이언트 단말(200)로 제공한다. 바람직하게, 단방향 가상 단말(131)은, 하이퍼바이저(120) 상에서 동작하고, 관리자의 입력에 따라 구동될 수 있고, 또는 리더 클라이언트 단말(200)로부터의 요청에 따라 구동될 수 있다. 단방향 가상 단말(131)은, 스트리머(112)를 통해 단방향 서비스 데이터를 리더 클라이언트 단말(200)로 전송하고, 단방향 서비스 데이터의 전송 완료 후 종료될 수 있다.The unidirectional virtual terminal (131) provides unidirectional service data to the leader client terminal (200). Preferably, the unidirectional virtual terminal (131) operates on the hypervisor (120) and can be driven according to an administrator's input or can be driven according to a request from the leader client terminal (200). The unidirectional virtual terminal (131) transmits unidirectional service data to the leader client terminal (200) through the streamer (112) and can be terminated after the transmission of the unidirectional service data is completed.

양방향 가상 단말(132)은, 단방향 서비스 데이터를 재생 중인 그룹 내 클라이언트 단말(200) 중 사용자 입력이 있는 클라이언트 단말(200)로부터 양방향 서비스 요청시 구동되어, 스트리머(112)를 통해 양방향 서비스 데이터를 해당 클라이언트 단말(200)로 전송하고 사용자의 입력에 따라 응답 데이터를 전송한다. 양방향 가상 단말(132)은, 클라이언트 단말(200)로부터 사용자의 종료 입력이 수신되면, 해당 클라이언트 단말(200)과의 접속을 해제하고 구동을 종료한다.The bidirectional virtual terminal (132) is driven when a bidirectional service request is made from a client terminal (200) with user input among the client terminals (200) within the group that are playing unidirectional service data, transmits the bidirectional service data to the client terminal (200) via the streamer (112), and transmits response data according to the user's input. When a user's termination input is received from the client terminal (200), the bidirectional virtual terminal (132) disconnects from the client terminal (200) and ends the operation.

가상 단말 에이전트(133)는, 가상 단말 제어 에이전트(111)와 연동하여, 가상 단말(130: 131, 132)과 클라이언트 단말(200) 간의 연결을 관리하고, 또한 가상 단말(130: 131, 132)의 이벤트를 가상 단말 제어 에이전트(111)로 전달한다. 본 실시예에서, 가상 단말 에이전트(133)는, 단방향 가상 단말(131)에서 재생되는 단방향 서비스 데이터에 대한 관리자의 재생 시작 및 끝 지점에 대한 입력에 따라 재생 시작 및 끝 지점의 정보를 가상 단말 제어 에이전트(111)로 전달한다.The virtual terminal agent (133) manages the connection between the virtual terminal (130: 131, 132) and the client terminal (200) in conjunction with the virtual terminal control agent (111), and also transmits events of the virtual terminal (130: 131, 132) to the virtual terminal control agent (111). In this embodiment, the virtual terminal agent (133) transmits information on the start and end points of playback to the virtual terminal control agent (111) according to an input of an administrator regarding the start and end points of playback for unidirectional service data played in the unidirectional virtual terminal (131).

도 3은 도 1의 클라이언트 단말의 구성을 구체적으로 나타낸 도면이다. 도 3을 참조하면, 호스트 운영체제(210) 위에, 가상 영역 제어 에이전트(211), 통신 및 중계 에이전트(212)가 설치되고, 하이퍼바이저(220) 위에는 가상 영역 녹화 유닛(221), 가상 영역 재생 유닛(222) 및 가상 영역 제어 유닛(223)이 설치되며, 가상 영역(230)에는 가상 영역 에이전트(231)가 설치된다. FIG. 3 is a drawing specifically showing the configuration of the client terminal of FIG. 1. Referring to FIG. 3, a virtual area control agent (211) and a communication and relay agent (212) are installed on a host operating system (210), a virtual area recording unit (221), a virtual area playback unit (222), and a virtual area control unit (223) are installed on a hypervisor (220), and a virtual area agent (231) is installed in a virtual area (230).

가상 영역 제어 에이전트(211)는, 가상 영역(230) 내의 가상 영역 에이전트(231)와 연동하여 가상 영역 에이전트(231)로부터 가상 영역(230) 내의 이벤트를 수신한다. 또한, 가상 영역 제어 에이전트(211)는, 하이퍼바이저(220) 위의 가상 영역 제어 유닛(223)과 통신하여 가상 영역(230)의 녹화 시작/종료, 재생 시작/종료 명령을 가상 영역 제어 유닛(223)으로 전달한다. The virtual area control agent (211) receives events within the virtual area (230) from the virtual area agent (231) by interacting with the virtual area agent (231) within the virtual area (230). In addition, the virtual area control agent (211) communicates with the virtual area control unit (223) above the hypervisor (220) and transmits commands for starting/ending recording and starting/ending playback of the virtual area (230) to the virtual area control unit (223).

바람직하게, 리더 클라이언트 단말(200)의 가상 영역 제어 에이전트(211)는, 서버(100) 내 단방향 가상 단말(130)로의 접속이 완료되면, 가상 영역(230)의 녹화 시작 명령을 하이퍼바이저(220)의 가상 영역 제어 유닛(233)으로 전달하고, 단방향 가상 단말(130)로부터 스트리밍되는 단방향 서비스 데이터에서 재생 끝 지점 마커가 확인되면, 가상 영역(230)의 녹화 종료 명령을 하이퍼바이저(220)의 가상 영역 제어 유닛(233)으로 전달한다. Preferably, when the connection to the unidirectional virtual terminal (130) in the server (100) is completed, the virtual area control agent (211) of the leader client terminal (200) transmits a recording start command of the virtual area (230) to the virtual area control unit (233) of the hypervisor (220), and when a playback end point marker is confirmed in the unidirectional service data streamed from the unidirectional virtual terminal (130), it transmits a recording end command of the virtual area (230) to the virtual area control unit (233) of the hypervisor (220).

한편, 리더가 아닌 클라이언트 단말(200)의 가상 영역 제어 에이전트(211)는, 리더 클라이언트 단말(200)로부터 수신된 녹화 파일 및, 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일에 따라, 하이퍼바이저(200)의 가상 영역 제어 유닛(233)으로 재생 시작 명령 또는 재생 종료 명령을 전달한다. 바람직하게, 가상 영역 제어 에이전트(211)는, 상기 정보 파일에 포함된 재생 시작 및 끝 지점의 정보를 기초로, 가상 영역 제어 유닛(233)으로 재생 시작 명령 또는 재생 종료 명령을 전달하여, 가상 영역(230) 내에서 단방향 서비스 데이터가 재생 시작 시점부터 끝 지점까지 반복 재생되도록 한다.Meanwhile, the virtual area control agent (211) of the non-leader client terminal (200) transmits a playback start command or a playback end command to the virtual area control unit (233) of the hypervisor (200) based on the recording file received from the leader client terminal (200) and the information file including information on the playback start and end points. Preferably, the virtual area control agent (211) transmits a playback start command or a playback end command to the virtual area control unit (233) based on the information on the playback start and end points included in the information file, thereby allowing the unidirectional service data to be repeatedly played from the playback start point to the end point within the virtual area (230).

가상 영역 제어 에이전트(211)는, 해당 클라이언트 단말(200)이 리더 클라이언트 단말(200)과 다른 기종인 경우, 재생 시작 및 끝 지점에 관하여 리더 클라이언트 단말(200)에 대한 상대 시각을 확인하고, 재생 시작 및 끝 지점에 대한 프로세서 사이클 카운트를 기록한 후, 재생 시작 및 끝 지점을 설정할 수 있다.The virtual area control agent (211), if the client terminal (200) is of a different type from the leader client terminal (200), can check the relative time with respect to the leader client terminal (200) with respect to the start and end points of playback, record the processor cycle count for the start and end points of playback, and then set the start and end points of playback.

통신 및 중계 에이전트(231)는, 클라이언트 단말(200)의 서버(100) 내 등록, 클라이언트 단말(200)의 그룹 가입, 및 리더 지정 프로세스를 수행하며, 가상 영역(230)에서 재생되는 단방향 가상 단말(131)의 단방향 서비스 데이터에 대한 녹화 파일 및 상기 정보 파일의 그룹 내 다른 클라이언트 단말(200)로의 전송 및 다른 클라이언트 단말(220)로부터의 수신을 수행한다. The communication and relay agent (231) performs the registration of the client terminal (200) in the server (100), the group joining of the client terminal (200), and the leader designation process, and transmits the recording file and the information file for the unidirectional service data of the unidirectional virtual terminal (131) played in the virtual area (230) to other client terminals (200) within the group and receives them from other client terminals (220).

또한, 통신 및 중계 에이전트(231)는, 리더 상태에서, 그룹 멤버들의 서비스 상태 정보를 서버(100) 또는 각 멤버 클라이언트 단말(200)들로부터 수집하고, 단방향 서비스가 지속 제공되고 있지 않은 멤버가 있는 경우, 단방향 서비스 데이터에 대한 녹화 파일 및 상기 정보 파일을 해당 멤버의 클라이언트 단말(200)로 재전송할 수 있다. 또는 리더가 아닌 멤버 상태에서의 통신 및 중계 에이전트(231)는, 단방향 서비스를 지속 제공할 수 없는 경우, 리더 클라이언트 단말(200)로 단방향 서비스 데이터를 재전송 요청할 수 있다.In addition, the communication and relay agent (231), in the leader state, collects service status information of group members from the server (100) or each member client terminal (200), and, if there is a member for which one-way service is not continuously provided, can retransmit a recording file of one-way service data and the information file to the client terminal (200) of the member. Alternatively, the communication and relay agent (231) in the member state other than the leader can request one-way service data to be retransmitted to the leader client terminal (200) if one-way service cannot be continuously provided.

하이퍼바이저(220) 위의 가상 영역 녹화 유닛(221)은, 가상 영역 제어 유닛(223)의 제어에 따라, 가상 영역(230) 내의 단방향 서비스 데이터를 녹화하여 녹화 파일을 생성한다. 여기서 녹화 파일은 디스크 이미지, 예를 들어 디스크 스냅샷이다. 가상 영역 녹화 유닛(221)은, 리더 클라이언트 단말(200)에서 동작한다. The virtual area recording unit (221) on the hypervisor (220) records unidirectional service data within the virtual area (230) under the control of the virtual area control unit (223) to generate a recording file. Here, the recording file is a disk image, for example, a disk snapshot. The virtual area recording unit (221) operates on the leader client terminal (200).

하이버파이저(220) 위의 가상 영역 재생 유닛(222)은, 가상 영역 제어 유닛(223)의 제어에 따라, 리더 클라이언트 단말(200)로부터 수신된 녹화 파일을 가상 영역(230)에 로딩하여 재생한다. 이때, 가상 영역 재생 유닛(222)은, 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일에 기초한 가상 영역 제어 유닛(223)의 제어에 따라, 재생 시작 시점과 끝 지점 사이를 반복하여 재생한다.The virtual area playback unit (222) above the hypervisor (220) loads and plays a recording file received from the leader client terminal (200) into the virtual area (230) under the control of the virtual area control unit (223). At this time, the virtual area playback unit (222) repeatedly plays between the playback start point and the playback end point under the control of the virtual area control unit (223) based on an information file including information on the playback start and end points.

하이퍼바이저(220) 위의 가상 영역 제어 유닛(223)은, 앞서 설명한 바와 같이, 호스트 운영체제(210) 위에 설치된 가상 영역 제어 에이전트(211)와 통신하여, 가상 영역 제어 에이전트(211)로부터 녹화 시작/종료, 재생 시작/종료 명령을 수신하고, 수신된 명령에 기초하여, 가상 영역 녹화 유닛(221) 및 가상 영역 재생 유닛(222)을 제어한다.The virtual area control unit (223) on the hypervisor (220), as described above, communicates with the virtual area control agent (211) installed on the host operating system (210), receives recording start/end and playback start/end commands from the virtual area control agent (211), and controls the virtual area recording unit (221) and the virtual area playback unit (222) based on the received commands.

가상 영역 에이전트(231)는, 가상 영역(230)에서 동작하고, 가상 영역(230) 내의 이벤트를 호스트 운영체제(210)의 가상 영역 제어 에이전트(211)로 전달한다. 예컨대, 가상 영역 에이전트(231)는, 단방향 서비스 데이터에 대한 사용자의 입력이 수신되면, 호스트 운영체제(210)의 가상 영역 제어 에이전트(211)로 사용자 입력 이벤트를 전달하여, 단방향 서비스를 양방향 서비스로 전환되도록 한다. 리더 클라이언트 단말(200)의 가상 영역 에이전트(231)는, 서버(100)의 가상 단말(130)에 접속하여 가상 단말(130: 131, 132)의 영상/음성을 스트리밍받을 수 있다. 또한, 가상 영역 에이전트(231)는, 주기적으로 연결 상태 보고를 서버(100)로 전송할 수 있다.The virtual area agent (231) operates in the virtual area (230) and transmits events within the virtual area (230) to the virtual area control agent (211) of the host operating system (210). For example, when a user input for one-way service data is received, the virtual area agent (231) transmits a user input event to the virtual area control agent (211) of the host operating system (210), thereby converting the one-way service into a two-way service. The virtual area agent (231) of the leader client terminal (200) can connect to the virtual terminal (130) of the server (100) and stream video/audio of the virtual terminal (130: 131, 132). In addition, the virtual area agent (231) can periodically transmit a connection status report to the server (100).

가상 영역 제어 에이전트(211)는, 단방향 서비스를 양방향 서비스로 전환하는데 있어서, 서버(100) 내 양방향 가상 단말(132)에 접속하고, 가상 영역(230)에서 로딩된 녹화 파일, 즉 디스크 스냅샷에 양방향 서비스 데이터를 추가하는 방식으로 양방향 서비스 데이터를 기록할 수 있고, 양방향 서비스 사용이 종료되는 경우, 추가된 양방향 서비스 데이터에 대한 디스크 스냅샷 파일을 삭제한다. The virtual area control agent (211) can record the bidirectional service data by connecting to the bidirectional virtual terminal (132) in the server (100) to convert the one-way service into a two-way service, adding the bidirectional service data to a recording file loaded from the virtual area (230), i.e., a disk snapshot, and when the use of the two-way service is terminated, deleting the disk snapshot file for the added two-way service data.

도 4는 본 발명의 일 실시예에 따른 서버에서 클라이언트 단말들의 그룹을 생성하고 리더를 지정하는 방법을 설명하는 흐름도이다.FIG. 4 is a flowchart illustrating a method of creating a group of client terminals and designating a leader in a server according to one embodiment of the present invention.

도 4를 참조하면, 단계 S401에서, 서버(100)는, 관리자의 입력에 따라 클라이언트 그룹을 생성한다. 예를 들어, 클라이언트 그룹의 이름 등을 생성한다. 단계 S402에서, 서버(100)는, 상기 생성된 클라이언트 그룹으로의 새로운 클라이언트 단말의 가입이 있는지 확인한다. 바람직하게, 클라이언트 단말(200)의 사용자는 서버(100)에서 제공되는 클라이언트 그룹들에서 가입을 원하는 그룹을 선택하여 가입 신청을 할 수 있다.Referring to FIG. 4, in step S401, the server (100) creates a client group based on an administrator's input. For example, it creates a name for the client group. In step S402, the server (100) checks whether a new client terminal has joined the created client group. Preferably, a user of the client terminal (200) can select a group to which he or she wishes to join from the client groups provided by the server (100) and apply for membership.

단계 S403에서, 서버(100)는, 그룹 내 가입된 클라이언트 수가 N(N은 1 보다 큰 자연수)개 보다 많은지 확인한다. 바람직하게, 서버(100)는, 그룹을 생성한 후 소정 기간 동안만 가입 신청을 받고 소정 기간 경과 후에 그룹 내 가입된 클라이언트 수가 N개 보다 많은지 확인한다. 만약 그룹 내 가입된 클라이언트 수가 N개 보다 많은 경우, 단계 S404에서, 서버(100)는, 그룹을 복수 개로 분할한다. In step S403, the server (100) verifies whether the number of clients registered within the group is greater than N (where N is a natural number greater than 1). Preferably, the server (100) receives registration applications only for a predetermined period of time after creating the group, and verifies whether the number of clients registered within the group is greater than N after the predetermined period of time has elapsed. If the number of clients registered within the group is greater than N, the server (100) divides the group into multiple groups in step S404.

이와 같이 그룹 생성이 최종 완료되면, 단계 S405에서, 서버(100)는, 그룹 내 클라이언트 단말(200)들의 프로세서 성능, 네트워크 홉 수, 그리고 RTT를 확인한다. 서버(100)는, 클라이언트 단말(200)들로 관련 메시지를 전송하여 확인할 수 있다.Once group creation is completed in this manner, in step S405, the server (100) checks the processor performance, network hop count, and RTT of the client terminals (200) within the group. The server (100) can confirm this by sending a related message to the client terminals (200).

단계 S406에서, 서버(100)는, 프로세서 성능으로 리더 지정이 가능한지 확인한다. 예를 들어, 클라이언트 단말(200)들이 모두 동일 기종인 경우, 프로세서 성능이 동일하므로, 프로세서 성능으로 리더 지정이 불가능한 것으로 판단한다. 프로세서 성능으로 리더 지정이 가능한 경우, 단계 S407에서, 서버(100)는, 가장 처리량이 높은 프로세서를 보유한 클라이언트 단말(200)을 리더로 지정한다.In step S406, the server (100) determines whether leader designation is possible based on processor performance. For example, if all client terminals (200) are of the same model, and the processor performance is the same, it is determined that leader designation based on processor performance is not possible. If leader designation based on processor performance is possible, in step S407, the server (100) designates the client terminal (200) with the highest processing capacity as the leader.

한편, 프로세서 성능으로 리더 지정이 불가능한 경우, 단계 S408에서, 서버(100)는, 네트워크 홉 수로 리더 지정이 가능한지 확인한다. 예를 들어, 클라이언트 단말(200)들의 네트워크 홉 수가 모두 동일한 경우, 홉 수로 리더 지정이 불가능한 것으로 판단할 수 있다. 홉 수로 리더 지정이 가능한 경우, 단계 S409에서, 서버(100)는, 홉 수가 가장 작은 클라이언트 단말(200)을 리더로 지정한다.Meanwhile, if leader designation is not possible due to processor performance, in step S408, the server (100) determines whether leader designation is possible based on the number of network hops. For example, if the number of network hops of all client terminals (200) is the same, it can be determined that leader designation based on the number of hops is not possible. If leader designation based on the number of hops is possible, in step S409, the server (100) designates the client terminal (200) with the smallest number of hops as the leader.

홉 수로 리더 지정이 불가능한 경우, 단계 S410에서, 서버(100)는, RTT로 리더 지정이 가능한지 확인한다. 예를 들어, 클라이언트 단말(200)들의 RTT가 모두 동일한 경우, RTT로 리더 지정이 불가능한 것으로 판단할 수 있다. RTT로 리더 지정이 가능한 경우, 단계 S411에서, 서버(100)는, RTT가 가장 작은 클라이언트 단말(200)을 리더로 지정한다. 여기서 RTT는 신호의 왕복 시간으로서, 이는 지연 시간을 의미한다.If leader designation is not possible by hop count, in step S410, the server (100) checks whether leader designation is possible by RTT. For example, if the RTTs of all client terminals (200) are the same, it can be determined that leader designation by RTT is not possible. If leader designation is possible by RTT, in step S411, the server (100) designates the client terminal (200) with the smallest RTT as the leader. Here, RTT refers to the round-trip time of the signal, which means delay time.

이상에서 설명한 예 이외, 프로세서 성능, 홉 수, 및 RTT를 조합하여 리더를 지정할 수 있다. 예를 들어, 두 개의 클라이언트 단말(200)의 프로세서 성능이 그룹 내에서 가장 좋은 경우, 두 개의 클라이언트 단말(200)의 홉 수를 비교하여, 홉 수가 더 작은 클라이언트 단말(200)을 리더로 지정할 수 있다. 홉 수도 동일한 경우, RTT가 더 작은 클라이언트 단말(200)을 리더로 지정할 수 있다.In addition to the examples described above, a leader can be designated by combining processor performance, hop count, and RTT. For example, if two client terminals (200) have the best processor performance within a group, the hop counts of the two client terminals (200) can be compared, and the client terminal (200) with the smaller hop count can be designated as the leader. If the hop counts are also the same, the client terminal (200) with the smaller RTT can be designated as the leader.

이상과 같은 조건으로 리더를 지정할 수 없는 경우, 단계 S412에서, 서버(100)는, 그룹 내 클라이언트 단말(200)들 중 임의의 하나의 클라이언트 단말(200)을 리더로 지정한다. If a leader cannot be designated under the above conditions, in step S412, the server (100) designates any one of the client terminals (200) within the group as a leader.

리더 지정이 완료되면, 단계 S413에서, 서버(100)는, 리더 클라이언트 단말(200)로 그룹 내 멤버 클라이언트 단말(200)들의 정보(예, IP 주소, ID 등)를 전송한다. 이후, 리더 클라이언트 단말(200)은, 수신된 멤버 클라이언트 단말(200)들의 정보를 기초로 멤버 클라이언트 단말(200)들로 리더 정보(예, IP 주소, ID 등)를 전송한다. 따라서, 그룹 내 클라이언트 단말(200)들은 누가 리더이고 멤버인지를 알 수 있게 된다.When leader designation is completed, in step S413, the server (100) transmits information (e.g., IP address, ID, etc.) of member client terminals (200) within the group to the leader client terminal (200). Thereafter, the leader client terminal (200) transmits leader information (e.g., IP address, ID, etc.) to the member client terminals (200) based on the received information of the member client terminals (200). Accordingly, the client terminals (200) within the group can know who is the leader and who is a member.

도 5는 본 발명의 일 실시예에 따른 리더 클라이언트 단말로 단방향 서비스데이터를 스트리밍 전송하는 방법을 설명하는 흐름도이다.FIG. 5 is a flowchart illustrating a method for streaming one-way service data to a leader client terminal according to one embodiment of the present invention.

도 5를 참조하면, 단계 S501에서, 서버(100)는, 리더 클라이언트 단말(200)로부터 단방향 서비스 데이터의 요청을 수신할 수 있고, 또는 관리자로부터 단방향 서비스 데이터의 스트리밍에 대한 입력을 수신할 수 있다. 관리자로부터의 입력은 그룹 생성 완료된 후에 또는 기존 단방향 서비스 데이터의 변경이 필요한 경우에 수신될 수 있다.Referring to FIG. 5, in step S501, the server (100) may receive a request for unidirectional service data from a leader client terminal (200), or may receive input for streaming unidirectional service data from an administrator. Input from the administrator may be received after group creation is completed or when changes to existing unidirectional service data are required.

단계 S502에서, 서버(100)는, 단방향 가상 단말(131)을 실행한다. 그리고 단계 S503에서, 서버(100)는, 단방향 가상 단말(131) 상에서 관리자의 입력에 따라 단방향 서비스 데이터를 재생한다. In step S502, the server (100) executes a unidirectional virtual terminal (131). And in step S503, the server (100) plays unidirectional service data on the unidirectional virtual terminal (131) according to an administrator's input.

단계 S504에서, 서버(100)는, 관리자로부터 상기 재생 중인 단방향 서비스 데이터에 대해 클라이언트 단말(200)들에서 재생되어야 할 재생 시작 및 끝 지점을 입력받는다.In step S504, the server (100) receives from the administrator the start and end points of playback to be played on the client terminals (200) for the one-way service data being played.

단계 S505에서, 서버(100)는, 상기 재생 시작 및 끝 지점의 마커가 포함된 단방향 서비스 데이터를 스트리머(112)를 통해 리더 클라이언트 단말(200)로 스트리밍 전송한다. 그리고 단계 S506에서, 서버(100)는, 단방향 가상 단말(131)을 종료한다. In step S505, the server (100) streams one-way service data including markers of the playback start and end points to the leader client terminal (200) via the streamer (112). Then, in step S506, the server (100) terminates the one-way virtual terminal (131).

이상의 도 5를 참조한 실시예에 따르면, 서버(100)는, 단방향 서비스 데이터가 클라이언트 단말(200)들에서 재생되도록 하는데 있어서, 각 클라이언트 단말(200)들에게 반복하여 단방향 서비스 데이터를 스트리밍 전송할 필요가 없고, 오직 리더 클라이언트 단말(200)에게만 단방향 서비스 데이터를 전송하고, 이후 단방향 가상 단말(131)을 종료하므로, 서버 수용량을 증설할 필요가 없고, 네트워크 트래픽을 줄일 수 있다.According to the embodiment with reference to the above FIG. 5, the server (100) does not need to repeatedly stream the unidirectional service data to each client terminal (200) in order to allow the unidirectional service data to be played on the client terminals (200), but only transmits the unidirectional service data to the leader client terminal (200) and then terminates the unidirectional virtual terminal (131), so there is no need to increase the server capacity and network traffic can be reduced.

도 6은 본 발명의 일 실시예에 따른 리더를 재지정하는 방법을 설명하는 흐름도이다.FIG. 6 is a flowchart illustrating a method for reassigning a leader according to one embodiment of the present invention.

도 6을 참조하면, 단계 S601에서, 서버(100)는, 각 클라이언트 단말(200)로부터 주기적 연결 상태 보고를 수신한다. 단계 S602에서, 서버(100)는, 주기적 연결 상태 보고를 기초로, 보고가 끊어진 클라이언트 단말(200)이 존재하는지 확인한다.Referring to FIG. 6, in step S601, the server (100) receives periodic connection status reports from each client terminal (200). In step S602, the server (100) checks, based on the periodic connection status reports, whether there is a client terminal (200) whose reports have been disconnected.

보고가 끊어진 클라이언트 단말(200)이 존재하는 경우, 단계 S603에서, 서버(100)는, 해당 클라이언트 단말(200)이 리더 클라이언트 단말(200)인지 확인한다. 리더 클라이언트 단말(200)이 아닌 경우, 단계 S604에서, 서버(100)는, 관리자에게 알림을 전달한다. 알림은 관리자 단말로 팝업 메시지를 표시하거나, 또는 관리자의 이메일 주소로 메일을 전송하는 등의 다양한 방식을 포함할 수 있다.If there is a client terminal (200) whose report is disconnected, in step S603, the server (100) checks whether the client terminal (200) is a leader client terminal (200). If it is not a leader client terminal (200), in step S604, the server (100) sends a notification to the administrator. The notification may include various methods, such as displaying a pop-up message on the administrator terminal or sending an email to the administrator's email address.

보고가 끊어진 클라이언트 단말(200)이 리더 클라이언트 단말(200)인 경우, 단계 SS605에서, 서버(100)는, 도 4를 참조하여 설명한 방법에 따라 리더 클라이언트 단말(200)을 재지정하는 절차를 시작하여 리더 클라이언트 단말(200)을 지정한다. If the client terminal (200) whose report is disconnected is a leader client terminal (200), in step SS605, the server (100) starts a procedure for re-designating the leader client terminal (200) according to the method described with reference to FIG. 4, thereby designating the leader client terminal (200).

리더 클라이언트 단말(200)의 재지정을 완료한 후, 단계 S606에서, 서버(100)는, 단방향 서비스가 중단 상태인지 확인한다. 예컨대, 직전 리더 클라이언트 단말(200)로 단방향 서비스 데이터의 스트리밍 전송이 완료되지 않은 상태에서 해당 직전 리더 클라이언트 단말(200)의 연결이 끊어진 경우, 단방향 서비스 중단 상태라 판단할 수 있다.After completing the reassignment of the leader client terminal (200), in step S606, the server (100) checks whether the unidirectional service is interrupted. For example, if the connection of the previous leader client terminal (200) is disconnected while the streaming transmission of unidirectional service data to the previous leader client terminal (200) is not completed, the unidirectional service can be determined to be interrupted.

단방향 서비스가 중단 상태인 경우, 단계 S607에서, 서버(100)는, 도 5를 참조한 방법에 따라 재생 시작 및 끝 지점의 마커가 포함된 단방향 서비스 데이터를 재지정된 리더 클라이언트 단말(200)로 다시 스트리밍 전송한다.If the one-way service is interrupted, in step S607, the server (100) re-streams the one-way service data including markers of the playback start and end points to the re-designated leader client terminal (200) according to the method referring to FIG. 5.

도 7은 본 발명의 일 실시예에 따른 리더 클라이언트 단말이 단방향 서비스 데이터를 그룹 멤버들에게 배포하는 방법을 설명하는 흐름도이다.FIG. 7 is a flowchart illustrating a method for a leader client terminal to distribute unidirectional service data to group members according to one embodiment of the present invention.

도 7을 참조하면, 단계 S701에서, 리더 클라이언트 단말(200)은, 서버(100)의 단방향 가상 단말(131)에 접속한다. 그리고 단계 S702에서, 리더 클라이언트 단말(100)은, 단방향 가상 단말(131)로부터 재생 시작 및 끝 지점의 마커가 포함된 단방향 서비스 데이터를 수신하고 재생을 시작한다. 리더 클라이언트 단말(100)은, 가상 영역(230)에서 단방향 서비스 데이터를 재생한다.Referring to FIG. 7, in step S701, the leader client terminal (200) connects to the unidirectional virtual terminal (131) of the server (100). Then, in step S702, the leader client terminal (100) receives unidirectional service data including markers of playback start and end points from the unidirectional virtual terminal (131) and starts playback. The leader client terminal (100) plays the unidirectional service data in the virtual area (230).

단계 S703에서, 리더 클라이언트 단말(200)은, 녹화를 시작한다. 바람직하게, 리더 클라이언트 단말(200)은, 단방향 서비스 데이터가 수신되는 시점부터 가상 영역(200) 내의 단방향 서비스 데이터의 녹화를 시작할 수 있다.In step S703, the leader client terminal (200) starts recording. Preferably, the leader client terminal (200) can start recording the unidirectional service data within the virtual area (200) from the time the unidirectional service data is received.

단계 S704에서, 리더 클라이언트 단말(200)은, 단방향 서비스 데이터를 재생하면서 재생 끝 지점에 도달하는지 확인한다. 바람직하게, 리더 클라이언트 단말(200)은, 단방향 서비스 데이터에서 재생 끝 지점의 마커 도달 여부를 확인한다. In step S704, the leader client terminal (200) checks whether the playback end point has been reached while playing the unidirectional service data. Preferably, the leader client terminal (200) checks whether the playback end point marker has been reached in the unidirectional service data.

재생 끝 지점에 도달한 경우, 단계 S705에서, 리더 클라이언트 단말(200)은, 녹화를 종료하고 녹화 파일을 생성한다. 여기서 녹화 파일은 디스크 이미지, 예를 들어 디스크 스냅샷이다. When the playback end point is reached, in step S705, the leader client terminal (200) ends recording and creates a recording file. Here, the recording file is a disk image, for example, a disk snapshot.

단계 S706에서, 리더 클라이언트 단말(200)은, 그룹 멤버들에게 녹화 파일 및, 재생 시작 및 끝 지점의 정보 파일을 전송한다. 이때, 리더 클라이언트 단말(200)은, P2P 통신 등을 이용하여 그룹 멤버들에게 파일을 전송할 수 있으나 반드시 여기에 제한되는 것은 아니며 서버(100)를 통해 전송할 수도 있다. 파일을 반복 전송하는 것이 아닌, 한 번의 전송만 하면 되므로, 서버(100)를 통해 전송하더라도 서버(100)의 부하 문제는 크게 발생하지 않는다. 한편, 각 클라이언트 단말(200)은, 서버(100)로 주기적으로 연결 상태 보고를 전송한다. In step S706, the leader client terminal (200) transmits the recording file and the playback start and end point information file to the group members. At this time, the leader client terminal (200) may transmit the file to the group members using P2P communication, etc., but is not necessarily limited thereto, and may also transmit it via the server (100). Since the file is transmitted only once rather than repeatedly, even if it is transmitted via the server (100), the load problem of the server (100) does not significantly occur. Meanwhile, each client terminal (200) periodically transmits a connection status report to the server (100).

도 8은 본 발명의 일 실시예에 따른 리더 클라이언트 단말이 멤버들의 상태를 확인하는 방법을 설명하는 흐름도이다.FIG. 8 is a flowchart illustrating a method for a leader client terminal to check the status of members according to one embodiment of the present invention.

도 8을 참조하면, 단계 S801에서, 리더 클라이언트 단말(200)은, 그룹 멤버들의 서비스 상태 정보를 수집한다. 바람직하게, 리더 클라이언트 단말(200)은, 서버(100)를 통해 그룹 멤버들의 서비스 상태 정보를 수집할 수 있다. 도 6을 참조하여 설명한 바와 같이, 각 클라이언트 단말(200)은, 주기적 연결 상태 보고를 서버(100)로 전송하므로, 리더 클라이언트 단말(200)은, 서버(100)로부터 그룹 멤버들의 서비스 상태 정보를 수집할 수 있다. 여기서 서비스 상태 정보는, 단방향 서비스의 지속 제공 여부에 대한 정보, 또는 재전송 요청 등을 포함한다.Referring to FIG. 8, in step S801, the leader client terminal (200) collects service status information of group members. Preferably, the leader client terminal (200) can collect service status information of group members through the server (100). As described with reference to FIG. 6, each client terminal (200) transmits periodic connection status reports to the server (100), so the leader client terminal (200) can collect service status information of group members from the server (100). Here, the service status information includes information on whether a one-way service is continuously provided, a retransmission request, etc.

단계 S802에서, 리더 클라이언트 단말(200)은, 각 멤버의 클라이언트 단말(200)에서 단방향 서비스가 지속 제공 중인지 판단한다. 일부 클라리언트 단말(200)에서 단방향 서비스가 제공되고 있지 않은 경우, 단계 S803에서, 리더 클라이언트 단말(200)은, 녹화 파일 및, 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일을 해당 클라이언트 단말(200)로 재전송한다. In step S802, the leader client terminal (200) determines whether the one-way service is continuously provided on each member's client terminal (200). If the one-way service is not provided on some client terminals (200), in step S803, the leader client terminal (200) retransmits to the corresponding client terminal (200) an information file including the recording file and information on the start and end points of playback.

이상의 도 8을 참조한 실시예에 따르면, 그룹 내 멤버들에서 단방향 서비스가 중단 없이 지속적으로 제공될 수 있다. According to the embodiment referring to the above figure 8, one-way service can be continuously provided without interruption to members within a group.

도 9는 본 발명의 일 실시예에 따른 멤버 클라이언트 단말이 단방향 서비스를 제공하는 방법을 설명하는 흐름도이다.FIG. 9 is a flowchart illustrating a method for a member client terminal to provide a one-way service according to one embodiment of the present invention.

도 9를 참조하면, 단게 S901에서, 어느 한 멤버 클라이언트 단말(200)은, 리더 클라이언트 단말(200)로부터 단방향 서비스를 위한 녹화 파일 및, 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일을 수신한다.Referring to FIG. 9, in step S901, one member client terminal (200) receives a recording file for a one-way service and an information file including information on the start and end points of playback from a leader client terminal (200).

단계 S902에서, 멤버 클라이언트 단말(200)은, 수신된 녹화 파일을 가상 영역(230)에 로딩하여 재생한다. 이때, 멤버 클라이언트 단말(200)은, 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일에 기초하여, 재생 시작 시점과 끝 지점 사이를 반복하여 재생한다.In step S902, the member client terminal (200) loads the received recording file into the virtual area (230) and plays it. At this time, the member client terminal (200) repeatedly plays between the playback start point and the playback end point based on an information file including information on the playback start and end points.

단계 S903에서, 멤버 클라이언트 단말(200)은, 단방향 서비스를 지속 제공할 수 있는지 확인한다. 예를 들어, 멤버 클라이언트 단말(200)은, 기존 수신된 녹화 파일 또는 정보 파일이 삭제 또는 훼손된 경우, 단방향 서비스를 지속 제공할 수 없는 것으로 판단할 수 있다. In step S903, the member client terminal (200) determines whether the one-way service can continue to be provided. For example, if a previously received recording file or information file has been deleted or damaged, the member client terminal (200) may determine that the one-way service cannot continue to be provided.

단방향 서비스를 지속 제공할 수 있는 경우, 단계 S904에서, 멤버 클라이언트 단말(200)은, 리더 클라이언트 단말(200)에게 지속 가능 알림을 전송한다. 바람직하게, 멤버 클라이언트 단말(200)은, 서버(100)를 통해 지속 가능 알림을 전송할 수 있고, 또는 P2P 통신 등의 직접 통신에 의해 지속 가능 알림을 전송할 수 있다.If the one-way service can be continuously provided, in step S904, the member client terminal (200) transmits a sustainability notification to the leader client terminal (200). Preferably, the member client terminal (200) can transmit the sustainability notification through the server (100), or can transmit the sustainability notification through direct communication such as P2P communication.

단방향 서비스를 지속 제공할 수 없는 경우, 단계 S905에서, 멤버 클라이언트 단말(200)은, 리더 클라이언트 단말(200)로 녹화 파일 및 정보 파일의 재전송을 요청한다. 멤버 클라이언트 단말(200)은, 서버를 통해 또는 P2P 통신 등을 통해 재전송을 요청할 수 있다.If the one-way service cannot be continuously provided, in step S905, the member client terminal (200) requests the leader client terminal (200) to retransmit the recording file and information file. The member client terminal (200) may request the retransmission through a server or through P2P communication, etc.

단계 S906에서, 멤버 클라이언트 단말(200)은, 리더 클라이언트 단말(200)로부터 녹화 파일 및 정보 파일을 재수신한다. 그리고 단계 S907에서, 멤버 클라이언트 단말(200)은, 녹화 파일을 재생하고, 이때 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일에 기초하여, 재생 시작 시점과 끝 지점 사이를 반복하여 재생한다.In step S906, the member client terminal (200) re-receives the recording file and the information file from the leader client terminal (200). Then, in step S907, the member client terminal (200) plays the recording file, and at this time, based on the information file including information on the playback start and end points, plays the file repeatedly between the playback start point and the playback end point.

도 10은 본 발명의 일 실시예에 따른 멤버 클라이언트 단말에서 녹화 파일을 재생하는 구체적인 방법을 설명하는 흐름도이다.FIG. 10 is a flowchart illustrating a specific method of playing a recording file on a member client terminal according to one embodiment of the present invention.

도 10을 참조하면, 단계 S1001에서, 멤버 클라이언트 단말(200)은, 리더 클라이언트 단말(200)로부터 녹화 파일 및, 재생 시작 및 끝 지점의 정보를 포함하는 정보 파일을 수신한다. 그리고 단계 S1002에서, 멤버 클라이언트 단말(200)은, 리더 클라이언트 단말(200)이 동일 기종인지 확인한다.Referring to FIG. 10, in step S1001, the member client terminal (200) receives a recording file and an information file including information on the start and end points of playback from the leader client terminal (200). Then, in step S1002, the member client terminal (200) verifies whether the leader client terminal (200) is of the same model.

동일 기종인 경우, 단계 S1003에서, 멤버 클라이언트 단말(200)은, 상기 정보 파일에 포함된 재생 시작 및 끝 지점의 정보를 기초로 재생 시작 및 끝 지점을 설정한다. 그리고 단계 S1004에서, 멤버 클라이언트 단말(200)은, 녹화 파일의 재생을 시작한다. 여기서 녹화 파일은 디스크 스냅샷 파일로서, 멤버 클라이언트 단말(200)의 가상 영역(230)에 로딩되고 상기 재생 시작 및 끝 지점 사이가 반복 재생된다. If the devices are of the same type, in step S1003, the member client terminal (200) sets the playback start and end points based on the playback start and end point information included in the information file. Then, in step S1004, the member client terminal (200) starts playback of the recording file. Here, the recording file is a disk snapshot file, loaded into the virtual area (230) of the member client terminal (200), and the area between the playback start and end points is repeatedly played.

한편, 동일 기종이 아닌 경우, 단계 S1005에서, 멤버 클라이언트 단말(200)은, 재생 시작 및 끝 지점에 관하여 리더 클라이언트 단말(200)에 대한 상대 시각을 확인한다. 그리고 단계 S1006에서, 멤버 클라이언트 단말(200)은, 녹화 파일의 재생을 시작한다. Meanwhile, if they are not of the same type, in step S1005, the member client terminal (200) checks the relative time with respect to the leader client terminal (200) with respect to the start and end points of playback. Then, in step S1006, the member client terminal (200) starts playback of the recording file.

단계 S1007에서, 멤버 클라이언트 단말(200)은, 재생 시작 및 끝 지점에 대한 프로세서 사이클 카운트를 기록한다. 그리고 단계 S1008에서, 멤버 클라이언트 단말(200)은, 재생 시작 및 끝 지점을 설정한다.In step S1007, the member client terminal (200) records the processor cycle count for the playback start and end points. And in step S1008, the member client terminal (200) sets the playback start and end points.

한편, 단계 S1009에서, 멤버 클라이언트 단말(200)은, 재생되고 있는 녹화 파일이 재생 끝 지점에 도달하였는지 확인하고, 재생 끝 지점에 도달한 경우, 단계 S1010에서, 재생 시작 지점으로 회귀한 후, 단계 S1011에서 다시 재생을 시작한다. 따라서, 멤버 클라이언트 단말(200)은, 재생 시작 지점부터 재생 끝 지점까지 반복 재생하게 된다. Meanwhile, in step S1009, the member client terminal (200) checks whether the recording file being played has reached the playback end point, and if it has reached the playback end point, in step S1010, it returns to the playback start point and then starts playback again in step S1011. Accordingly, the member client terminal (200) repeatedly plays from the playback start point to the playback end point.

도 11은 본 발명의 일 실시예에 따른 단방향 서비스를 양방향 서비스로 전환하는 방법을 설명하는 흐름도이다.FIG. 11 is a flowchart illustrating a method for converting a one-way service into a two-way service according to one embodiment of the present invention.

도 11을 참조하면, 단방향 서비스를 제공 중인 클라이언트 단말(200)은, 단계 S1101에서, 사용자 입력이 발생하는지 확인한다. 사용자 입력이 발생한 경우, 단계 S1102에서, 클라이언트 단말(200)은, 녹화 파일의 재생을 종료한다. 그리고 단계 S1103에서, 클라이언트 단말(200)은, 서버(100)의 양방향 가상 단말(132)로 접속한다.Referring to FIG. 11, a client terminal (200) providing a one-way service checks whether a user input has occurred in step S1101. If a user input has occurred, the client terminal (200) terminates playback of the recording file in step S1102. Then, in step S1103, the client terminal (200) connects to the two-way virtual terminal (132) of the server (100).

단계 S1004에서, 클라이언트 단말(200)은, 양방향 서비스를 사용자에게 제공한다. 예를 들어, 사용자의 입력을 양방향 가상 단말(132)로 전송하고 양방향 가상 단말(132)로부터 사용자의 입력에 대한 응답 데이터를 수신하여 표시할 수 있다. 이때, 클라이언트 단말(200)은, 기존 단방향 서비스를 위한 녹화 파일의 디스크 스냅샷에 양방향 서비스 데이터를 추가하는 방식으로 양방향 서비스 데이터를 기록한다.In step S1004, the client terminal (200) provides a two-way service to the user. For example, the client terminal (200) may transmit the user's input to the two-way virtual terminal (132) and receive and display response data to the user's input from the two-way virtual terminal (132). At this time, the client terminal (200) records the two-way service data by adding the two-way service data to a disk snapshot of a recording file for an existing one-way service.

단계 S1005에서, 클라이언트 단말(200)은, 양방향 서비스 사용이 종료되는지 확인한다. 양방향 서비스 사용의 종료는 사용자의 종료 입력 또는 양방향 서비스 내의 절차에 따른 종료 등을 포함할 수 있다.In step S1005, the client terminal (200) determines whether the use of the two-way service has ended. Termination of the use of the two-way service may include termination by a user's termination input or termination according to a procedure within the two-way service.

양방향 서비스 사용이 종료되면, 단계 S1006에서, 클라이언트 단말(200)은, 양방향 가상 단말(132)의 접속을 해제한다. 그리고 단계 S1007에서, 클라이언트 단말(200)은, 상기 단계 S1004에서 추가된 양방향 서비스 데이터에 대한 디스크 스냅샷 파일을 삭제한다. When the use of the two-way service is terminated, in step S1006, the client terminal (200) disconnects the two-way virtual terminal (132). Then, in step S1007, the client terminal (200) deletes the disk snapshot file for the two-way service data added in step S1004.

단계 S1108에서, 클라이언트 단말(200)은, 단방향 서비스를 다시 제공하기 위해, 재생 시작 및 끝 지점을 다시 설정하고, 단계 S1109에서, 재생 시작 및 끔 지점을 반복하여 재생한다. 양방향 서비스는 단방향 서비스의 녹화 파일, 즉 디스크 스냅샷을 기초로 제공되고 종료 후 관련 스냅샷 파일만을 삭제하면 되므로, 양방향 서비스 종료 후 다시 녹화 파일을 수신할 필요가 없이, 재생 시작 및 끝 지점의 재설정이면 충분하다.In step S1108, the client terminal (200) resets the playback start and end points to provide the unidirectional service again, and in step S1109, repeats the playback start and end points. Since the bidirectional service is provided based on the recording file of the unidirectional service, i.e., the disk snapshot, and only the relevant snapshot file needs to be deleted after termination, there is no need to receive the recording file again after termination of the bidirectional service; resetting the playback start and end points is sufficient.

이상의 실시예에 따른 DaaS(Device as a Service) 시스템은, 로봇, 키오스크를 이용한 광고 및 공간(또는 길) 안내 등에 이용될 수 있다. 예를 들어, 동일 공간 내 다수의 로봇 또는 키오스트에 단방향 서비스로서 광고를 송출하고, 사용자 터치가 있는 경우 로봇 또는 키오스트는 길 안내 등이 가능한 양방향 서비스로 전환될 수 있다. 다른 예로, 원격 수업 중 수업 도우미 개입, 또는 원격 수업 과정의 시험 응시 등에 이용될 수 있다. 동일 학습 내에 다수의 학생 단말에 단방향 서비스로서 수업 데이터를 송출하고, 학생의 조교 호출시, 또는 선생님의 퀴즈 출제시 문제 풀이 등이 가능한 양방향 서비스로 전환될 수 있다. 또 다른 예로, 무인 매장의 POS를 이용한 광고 및 사용자 서비스에 이용될 수 있다. 동일 지역 내 다수의 무인 매장 POS 단말에 단방향 서비스로서 광고를 송출하고, 고객이 터치한 POS 단말은 계산 등의 가능한 양방향 서비스로 전환될 수 있다.The DaaS (Device as a Service) system according to the above embodiments can be used for advertising and space (or route) guidance using robots and kiosks. For example, advertisements can be transmitted as a one-way service to multiple robots or kiosks within the same space, and when a user touches the robot or kiosk, the robot or kiosk can switch to an interactive service, such as route guidance. Another example is the use of teaching assistant intervention during remote classes or exam-taking in remote classes. Within the same learning environment, class data can be transmitted as a one-way service to multiple student terminals, and when a student calls a teaching assistant or a teacher creates a quiz, the service can switch to an interactive service, such as problem solving. Another example is the use of POS in unmanned stores for advertising and user services. Advertisements can be transmitted as a one-way service to multiple unmanned store POS terminals within the same area, and when a customer touches the POS terminal, the service can switch to an interactive service, such as payment processing.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification includes many features, such features should not be construed as limiting the scope of the present invention or the claims. Furthermore, features described in individual embodiments herein may be combined and implemented in a single embodiment. Conversely, various features described in a single embodiment herein may be implemented individually or in appropriate combinations across multiple embodiments.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although operations are illustrated in the drawings in a specific order, this should not be construed as meaning that such operations are performed in the specific order depicted, or in a series of sequential orders, or that all illustrated operations must be performed to achieve a desired result. Multitasking and parallel processing may be advantageous in certain environments. Furthermore, it should be understood that the distinction between the various system components in the embodiments described above does not require such distinction in all embodiments. The program components and systems described above may generally be implemented as a package in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention, as described above, can be implemented as a program and stored in a computer-readable form on a recording medium (e.g., CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). Since this process can be easily performed by a person skilled in the art to which the present invention pertains, it will not be described in further detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is not limited to the above-described embodiments and the attached drawings, as various substitutions, modifications, and changes can be made within the scope of the technical idea of the present invention by a person having ordinary skill in the art to which the present invention pertains.

100 : 서버
110, 210 : 호스트 운영체제(OS)
111 : 가상 단말 제어 에이전트
112 : 스트리머
120, 220 : 하이퍼바이저
130 : 가상 단말
131 : 단방향 가상 단말
132 : 양방향 가상 단말
133 : 가상 단말 에이전트
200 : 클라이언트 단말
211 : 가상 영역 제어 에이전트
212 : 통신 및 중계 에이전트
221 : 가상 영역 녹화 유닛
222 : 가상 영역 재생 유닛
223 : 가상 영역 제어 유닛
100: Server
110, 210: Host operating system (OS)
111: Virtual Terminal Control Agent
112: Streamer
120, 220: Hypervisor
130: Virtual terminal
131: One-way virtual terminal
132: Bidirectional virtual terminal
133: Virtual Terminal Agent
200: Client terminal
211: Virtual Reality Control Agent
212: Communication and Relay Agent
221: Virtual Area Recording Unit
222: Virtual Reality Playback Unit
223: Virtual Area Control Unit

Claims (18)

복수의 클라이언트 단말에 대한 DaaS(Device as a Service)를 제공하기 위한 서버에 있어서,
상기 서버의 하이퍼바이저에 의해 구동되어 단방향 서비스 데이터를 생성하는 단방향 가상 단말;
상기 서버의 호스트 운영체제 위에 설치되고, 상기 복수의 클라이언트 단말에 대한 그룹을 생성하고 상기 그룹 내 리더 클라이언트 단말을 지정하는 가상 단말 제어 에이전트;
상기 하이퍼바이저에 의해 구동되고, 상기 단방향 서비스 데이터에 대한 재생 시작 및 끝 지점의 정보를 상기 가상 단말 제어 에이전트로 전달하는 가상 단말 에이전트;
상기 호스트 운영체제 위에 설치되고, 상기 가상 단말 제어 에이전트로부터 상기 재생 시작 및 끝 지점의 정보를 수신하고, 상기 재생 시작 및 끝 지점의 마커를 포함하는 상기 단방향 서비스 데이터를 상기 리더 클라이언트 단말로 스트리밍 전송하는 스트리머; 및
상기 하이퍼바이저에 의해 구동되고, 상기 리더 클라이언트 단말로부터 수신된 상기 단방향 서비스 데이터에 포함된 상기 재생 시작 및 끝 지점의 마커를 기초로 단방향 서비스를 제공 중인 상기 그룹 내 클라이언트 단말들 중에서 사용자의 입력이 발생한 클라이언트 단말로 양방향 서비스를 제공하고, 양방향 서비스 사용 종료시 해당 클라이언트 단말의 단방향 서비스가 다시 제공되도록 해당 클라이언트 단말의 접속을 해제하는 앙방향 가상 단말을 포함하는 서버.
In a server for providing DaaS (Device as a Service) to multiple client terminals,
A unidirectional virtual terminal driven by the hypervisor of the above server to generate unidirectional service data;
A virtual terminal control agent installed on the host operating system of the above server, which creates a group for the plurality of client terminals and designates a leader client terminal within the group;
A virtual terminal agent driven by the hypervisor and transmitting information on the start and end points of playback for the unidirectional service data to the virtual terminal control agent;
A streamer installed on the host operating system, receiving information on the start and end points of the playback from the virtual terminal control agent, and streaming the unidirectional service data including markers of the start and end points of the playback to the leader client terminal; and
A server including a bidirectional virtual terminal that is driven by the hypervisor and provides a bidirectional service to a client terminal in the group that has received a user input based on markers of the playback start and end points included in the unidirectional service data received from the leader client terminal, and that disconnects the client terminal when the bidirectional service is terminated so that the unidirectional service of the client terminal is provided again.
제1항에 있어서,
상기 리더 클라이언트 단말은,
상기 재생 시작 및 끝 지점의 마커에 기초하여 녹화한 상기 단방향 서비스 데이터의 녹화 파일과, 상기 재생 시작 및 끝 지점에 대한 정보 파일을 그룹 내 다른 멤버 클라이언트 단말로 전송하는 것을 특징으로 하는 서버.
In the first paragraph,
The above leader client terminal is,
A server characterized in that it transmits a recording file of the one-way service data recorded based on the markers of the playback start and end points and an information file about the playback start and end points to other member client terminals within the group.
제1항에 있어서,
상기 가상 단말 제어 에이전트는,
그룹 내 각 클라이언트 단말의 프로세서 성능, 네트워크 홉 수, 또는 지연 시간 중 적어도 하나를 기초로 리더 클라이언트 단말을 지정하는 것을 특징으로 하는 서버.
In the first paragraph,
The above virtual terminal control agent,
A server characterized in that it designates a leader client terminal based on at least one of processor performance, number of network hops, or delay time of each client terminal in the group.
제1항에 있어서,
상기 가상 단말 제어 에이전트는,
그룹 내 각 클라이언트 단말로부터 주기적 연결 상태 보고를 수신하고, 리더 클라이언트 단말로부터 보고가 끊긴 경우, 나머지 클라이언트 단말 중 하나를 리더 클라이언트로 재지정하는 것을 특징으로 하는 서버.
In the first paragraph,
The above virtual terminal control agent,
A server characterized in that it receives periodic connection status reports from each client terminal within a group, and, when reports from a leader client terminal are disconnected, redesignates one of the remaining client terminals as a leader client.
제4항에 있어서,
상기 가상 단말 제어 에이전트는,
상기 재지정된 리더 클라이언트 단말을 통해 단방향 서비스를 재시작하는 것을 특징으로 하는 서버.
In paragraph 4,
The above virtual terminal control agent,
A server characterized in that it restarts a one-way service through the above-mentioned re-designated leader client terminal.
삭제delete 서버로부터 DaaS(Device as a Service)를 제공받기 위한 클라이언트 단말에 있어서,
상기 클라이언트 단말의 하이퍼바이저에 의해 구동되고, 상기 서버의 단방향 가상 단말로부터 수신되는 재생 시작 및 끝 지점의 마커를 포함하는 단방향 서비스 데이터를 재생하는 가상 영역;
상기 하이퍼바이저 위에 설치되고, 상기 가상 영역을 녹화하는 가상 영역 녹화 유닛;
상기 하이퍼바이저 위에 설치되고, 상기 가상 영역 녹화 유닛을 제어하는 가상 영역 제어 유닛;
상기 클라이언트 단말의 호스트 운영체제 위에 설치되고, 상기 재생 시작 및 끝 지점의 마커에 기초하여 상기 가상 영역 제어 유닛으로 녹화 시작/종료 명령을 전달하는 가상 영역 제어 에이전트; 및
상기 호스트 운영체제 위에 설치되고, 상기 서버와 통신하여 리더 지정 프로세스를 수행하고, 상기 가상 영역의 녹화 파일 및, 상기 재생 시작 및 끝 지점에 대한 정보 파일을 동일 그룹에 속하는 다른 멤버 클라이언트 단말로 전송하는 통신 및 중계 에이전트;를 포함하는 클라이언트 단말.
For a client terminal to receive DaaS (Device as a Service) from a server,
A virtual area driven by the hypervisor of the client terminal and playing unidirectional service data including markers of playback start and end points received from the unidirectional virtual terminal of the server;
A virtual area recording unit installed on the hypervisor and recording the virtual area;
A virtual area control unit installed on the hypervisor and controlling the virtual area recording unit;
A virtual area control agent installed on the host operating system of the client terminal and transmitting a recording start/end command to the virtual area control unit based on markers of the playback start and end points; and
A client terminal including a communication and relay agent installed on the host operating system, communicating with the server to perform a leader designation process, and transmitting a recording file of the virtual area and an information file about the start and end points of the playback to other member client terminals belonging to the same group.
제7항에 있어서,
상기 가상 영역 제어 에이전트는,
상기 단방향 가상 단말의 접속시 상기 가상 영역 제어 유닛으로 녹화 시작 명령을 전달하고 상기 단방향 서비스 데이터의 재생에서 상기 끝 지점의 마커가 확인되면 상기 가상 영역 제어 유닛으로 녹화 종료 명령을 전달하는 것을 특징으로 하는 클라이언트 단말.
In paragraph 7,
The above virtual area control agent,
A client terminal characterized in that, when the unidirectional virtual terminal is connected, a recording start command is transmitted to the virtual area control unit, and when the marker of the end point is confirmed during playback of the unidirectional service data, a recording end command is transmitted to the virtual area control unit.
제7항에 있어서,
상기 통신 및 중계 에이전트는,
동일 그룹에 속하는 다른 멤버 클라이언트 단말의 요청시, 또는 다른 멤버 클라이언트 단말의 상태 정보에 기초하여, 상기 녹화 파일 및 상기 정보 파일을 해당 멤버의 클라이언트 단말로 재전송하는 것을 특징으로 하는 클라이언트 단말.
In paragraph 7,
The above communication and relay agent,
A client terminal characterized in that, upon request from another member client terminal belonging to the same group, or based on status information of another member client terminal, the recording file and the information file are retransmitted to the client terminal of the corresponding member.
서버로부터 DaaS(Device as a Service)를 위한 클라이언트 단말에 있어서,
상기 클라이언트 단말의 호스트 운영체제 위에 설치되고, 상기 서버에 의해 리더로 지정된 클라이언트 단말로부터 단방향 서비스 데이터에 대한 녹화 파일 및, 재생 시작 및 끝 지점에 대한 정보 파일을 수신하는 통신 및 중계 에이전트;
상기 클라이언트 단말의 하이퍼바이저 위에 설치되고, 상기 수신된 녹화 파일을 상기 하이퍼바이저에 의해 구동되는 가상 영역에 로딩하여 재생하는 가상 영역 재생 유닛;
상기 하이퍼바이저 위에 설치되고, 상기 가상 영역 재생 유닛을 제어하는 가상 영역 제어 유닛; 및
상기 호스트 운영체제 위에 설치되고, 상기 정보 파일에 포함된 재생 시작 및 끝 지점의 정보에 따라 상기 가상 영역 제어 유닛으로 재생 시작/종료 명령을 전달하여 상기 가상 영역 내에서 상기 재생 시작 및 끝 지점 사이가 반복 재생되도록 하는 가상 영역 제어 에이전트를 포함하는 클라이언트 단말.
For client terminals for DaaS (Device as a Service) from the server,
A communication and relay agent installed on the host operating system of the client terminal and receiving a recording file for one-way service data and an information file for the start and end points of playback from the client terminal designated as a leader by the server;
A virtual area playback unit installed on the hypervisor of the client terminal and loading the received recording file into a virtual area driven by the hypervisor and playing it back;
A virtual area control unit installed on the hypervisor and controlling the virtual area playback unit; and
A client terminal including a virtual area control agent installed on the host operating system and transmitting a playback start/end command to the virtual area control unit according to information on the playback start and end points included in the information file, thereby causing repeated playback between the playback start and end points within the virtual area.
제10항에 있어서,
상기 가상 영역 제어 에이전트는,
상기 리더로 지정된 클라이언트 단말과 다른 기종인 경우, 재생 시작 및 끝 지점에 관하여 상기 리더로 지정된 클라이언트 단말에 대한 상대 시각을 확인하고, 재생 시작 및 끝 지점에 대한 프로세서 사이클 카운트에 기초하여 재생 시작 및 끝 지점을 설정하는 것을 특징으로 하는 클라이언트 단말.
In Article 10,
The above virtual area control agent,
A client terminal characterized in that, when the client terminal is of a different type from the client terminal designated as the leader, the client terminal checks the relative time with respect to the client terminal designated as the leader with respect to the start and end points of playback, and sets the start and end points of playback based on the processor cycle count for the start and end points of playback.
제10항에 있어서,
상기 가상 영역에서 양방향 서비스에 대한 사용자의 입력 이벤트가 발생할 경우,
상기 가상 영역 제어 에이전트는,
상기 서버의 양방향 가상 단말에 접속하여 상기 가상 영역에서 로딩된 녹화 파일에 양방향 서비스 데이터를 추가하고, 양방향 서비스 사용이 종료되는 경우 상기 추가된 양방향 서비스 데이터에 대한 파일을 삭제한 후, 상기 단방향 서비스 데이터를 다시 재생 제어하는 것을 특징으로 하는 클라이언트 단말.
In Article 10,
When a user input event for a two-way service occurs in the above virtual area,
The above virtual area control agent,
A client terminal characterized in that it connects to a two-way virtual terminal of the server, adds two-way service data to a recording file loaded in the virtual area, deletes the file for the added two-way service data when the use of the two-way service is terminated, and then controls the playback of the one-way service data again.
서버에서 복수의 클라이언트 단말에 대해 DaaS(Device as a Service)를 제공하는 방법에 있어서,
상기 복수의 클라이언트 단말에 대한 그룹을 생성하고 그룹 내 리더 클라이언트 단말을 지정하는 단계;
하이퍼바이저에 의해 단방향 가상 단말을 구동하여 단방향 서비스 데이터를 생성하는 단계;
재생 시작 및 끝 지점의 마커를 포함하는 상기 단방향 서비스 데이터를 호스트 운영체제 위의 스트리머를 통해 상기 리더 클라이언트 단말로 스트리밍 전송하는 단계; 및
상기 리더 클라이언트 단말로부터 수신된 상기 단방향 서비스 데이터에 포함된 상기 재생 시작 및 끝 지점의 마커를 기초로 단방향 서비스를 제공 중인 상기 그룹 내 클라이언트 단말들 중에서 사용자의 입력이 발생한 클라이언트 단말에 대해, 상기 하이퍼바이저에 의해 양방향 가상 단말을 구동하여 양방향 서비스를 제공하고, 양방향 서비스 사용 종료시 해당 클라이언트 단말의 단방향 서비스가 다시 제공되도록 해당 클라이언트 단말의 상기 양방향 가상 단말에 대한 접속을 해제하는 단계를 포함하는 방법.
In a method for providing DaaS (Device as a Service) to multiple client terminals from a server,
A step of creating a group for the above multiple client terminals and designating a leader client terminal within the group;
A step of generating unidirectional service data by driving a unidirectional virtual terminal by a hypervisor;
A step of streaming the unidirectional service data including markers of playback start and end points to the leader client terminal through a streamer on the host operating system; and
A method comprising: providing a two-way service by driving a two-way virtual terminal by the hypervisor for a client terminal in the group providing a one-way service based on markers of the start and end points of the playback included in the one-way service data received from the leader client terminal; and, when the two-way service is terminated, disconnecting the client terminal from the two-way virtual terminal so that the one-way service of the client terminal is provided again.
제13항에 있어서,
상기 리더 클라이언트 단말에 의해, 상기 재생 시작 및 끝 지점의 마커에 기초하여 녹화한 상기 단방향 서비스 데이터의 녹화 파일과, 상기 재생 시작 및 끝 지점에 대한 정보 파일이 그룹 내 다른 멤버 클라이언트 단말로 전송되는 단계를 더 포함하는 방법.
In Article 13,
A method further comprising a step of transmitting, by the leader client terminal, a recording file of the one-way service data recorded based on markers of the playback start and end points and an information file about the playback start and end points to other member client terminals within the group.
제13항에 있어서,
상기 지정하는 단계는,
그룹 내 각 클라이언트 단말의 프로세서 성능, 네트워크 홉 수, 또는 지연 시간 중 적어도 하나를 기초로 리더 클라이언트 단말을 지정하는 것을 특징으로 하는 방법.
In Article 13,
The steps specified above are:
A method characterized in that a leader client terminal is designated based on at least one of processor performance, number of network hops, or delay time of each client terminal in the group.
제13항에 있어서,
그룹 내 각 클라이언트 단말로부터 주기적 연결 상태 보고를 수신하고, 리더 클라이언트 단말로부터 보고가 끊긴 경우, 나머지 클라이언트 단말 중 하나를 리더 클라이언트로 재지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
In Article 13,
A method characterized by further comprising the step of receiving periodic connection status reports from each client terminal within the group and, when reports from the leader client terminal are disconnected, redesignating one of the remaining client terminals as the leader client.
제16항에 있어서,
상기 재지정된 리더 클라이언트 단말을 통해 단방향 서비스를 재시작하는 단계를 더 포함하는 것을 특징으로 하는 방법.
In Article 16,
A method characterized in that it further comprises a step of restarting a unidirectional service through the above-mentioned re-designated leader client terminal.
삭제delete
KR1020230073108A 2023-06-07 2023-06-07 Apparatus for providing DaaS and operation method of the apparatus Active KR102857641B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020230073108A KR102857641B1 (en) 2023-06-07 2023-06-07 Apparatus for providing DaaS and operation method of the apparatus
KR1020250125995A KR20250137555A (en) 2023-06-07 2025-09-04 Apparatus for providing DaaS and operation method of the apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230073108A KR102857641B1 (en) 2023-06-07 2023-06-07 Apparatus for providing DaaS and operation method of the apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020250125995A Division KR20250137555A (en) 2023-06-07 2025-09-04 Apparatus for providing DaaS and operation method of the apparatus

Publications (2)

Publication Number Publication Date
KR20240173948A KR20240173948A (en) 2024-12-16
KR102857641B1 true KR102857641B1 (en) 2025-09-08

Family

ID=94038622

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020230073108A Active KR102857641B1 (en) 2023-06-07 2023-06-07 Apparatus for providing DaaS and operation method of the apparatus
KR1020250125995A Pending KR20250137555A (en) 2023-06-07 2025-09-04 Apparatus for providing DaaS and operation method of the apparatus

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020250125995A Pending KR20250137555A (en) 2023-06-07 2025-09-04 Apparatus for providing DaaS and operation method of the apparatus

Country Status (1)

Country Link
KR (2) KR102857641B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110138276A (en) * 2009-04-09 2011-12-26 노키아 코포레이션 System, method and apparatus for streaming media files
KR102328193B1 (en) * 2015-06-24 2021-11-18 한국전자통신연구원 Apparatus and method for virtual desktop service
JP7247377B2 (en) * 2019-06-17 2023-03-28 グーグル エルエルシー Methods, Systems, and Medium for Providing Dynamic Media Sessions

Also Published As

Publication number Publication date
KR20250137555A (en) 2025-09-18
KR20240173948A (en) 2024-12-16

Similar Documents

Publication Publication Date Title
US12445575B2 (en) Observation of parallel video collaboration sessions
US7516179B2 (en) Control unit operations in a real-time collaboration server
US6928464B2 (en) Systems and methods for unified remote control access
JP3258236B2 (en) Multimedia information transfer system
US20190379712A1 (en) Multiple web conference screen display sharing
JP2011018312A (en) System and method allowing audience to access presentation content
CN104050013B (en) virtual desktop processing method, device and virtual desktop server
JP6497184B2 (en) Terminal device, program, content sharing method, and information processing system
US10552196B2 (en) Customizing mirror virtual machine(s)
CN111131891A (en) Audio and video playing method and device, playing equipment and system
KR102761718B1 (en) Method, system, and computer program for creating group using specialized tag
CN103871287A (en) Teaching data processing system
KR102857641B1 (en) Apparatus for providing DaaS and operation method of the apparatus
CN109725788A (en) Processing method, device, processor and the terminal of user interface interaction
Milovanović Microservice architecture in E-learning
CN112769919A (en) Push flow task distribution method and device, storage medium and electronic equipment
JP2024152745A (en) TERMINAL DEVICE, PROGRAM, CONTENT SHARING METHOD, AND INFORMATION PROCESSING SYSTEM
KR101876134B1 (en) Method, system and non-transitory computer-readable recording medium for assisting real-time collaboration
CN107798926A (en) Immersive teaching system and method
KR101337041B1 (en) Control system for KIOSK
WO2023087881A1 (en) Data processing method and apparatus, device, computer readable storage medium, and computer program product
CN113885751A (en) Display method, data processing method, electronic device and computing device
JP7810725B2 (en) Sharing-based Augmented Reality Content Service System
KR20220056360A (en) System for Synchronization of Influencer's Clothing Review Contents by Streaming and Additional Service
KR102615441B1 (en) Xr(experience reality) based interactive digital history/literature system and method

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

A16 Divisional, continuation or continuation in part application filed

Free format text: ST27 STATUS EVENT CODE: A-0-1-A10-A16-DIV-PA0107 (AS PROVIDED BY THE NATIONAL OFFICE)

F11 Ip right granted following substantive examination

Free format text: ST27 STATUS EVENT CODE: A-2-4-F10-F11-EXM-PR0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PA0107 Divisional application

St.27 status event code: A-0-1-A10-A16-div-PA0107

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)