[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102166361B1 - 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법 - Google Patents

저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법 Download PDF

Info

Publication number
KR102166361B1
KR102166361B1 KR1020140091856A KR20140091856A KR102166361B1 KR 102166361 B1 KR102166361 B1 KR 102166361B1 KR 1020140091856 A KR1020140091856 A KR 1020140091856A KR 20140091856 A KR20140091856 A KR 20140091856A KR 102166361 B1 KR102166361 B1 KR 102166361B1
Authority
KR
South Korea
Prior art keywords
data
service
packet
server
time
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
KR1020140091856A
Other languages
English (en)
Other versions
KR20160010997A (ko
Inventor
최병권
노창현
심영보
조준기
하태신
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140091856A priority Critical patent/KR102166361B1/ko
Priority to US14/541,918 priority patent/US10567296B2/en
Publication of KR20160010997A publication Critical patent/KR20160010997A/ko
Application granted granted Critical
Publication of KR102166361B1 publication Critical patent/KR102166361B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

저전력 통신을 수행하기 위한 서버 및 그 동작 방법을 제공한다. 저전력 통신을 수행하기 위한 서버는 적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU(Maximum Transmission Unit)에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하고, 상기 생성된 패킷을 상기 클라이언트로 송신할 수 있다.

Description

저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법{SERVER FOR PERFORMING LOW POWER COMMUNICATION AND OPERATION METHOD THEREOF AND SCHEDULING MAP GENERATING METHOD FOR PERFORMING LOW POWER COMMUNICATION}
저전력 통신을 수행하기 위한 서버 및 그 동작 방법을 제공한다. 보다 구체적으로, 송신되는 데이터의 전송 횟수를 조절하여 저전력 통신을 수행하기 위한 서버 및 서버의 동작 방법을 제공한다.
두 단말의 주기적인 데이터 통신 방법은 일정한 주기를 가지고 데이터를 송신한다. 주기적 데이터 통신에서의 전력 소모는 송신 횟수에 의해 크게 영향을 받는다. 이에 반하여, 송신되는 데이터의 양은 패킷의 MTU(Maximum Transmission Unit)을 넘지 않는 한 전력 소모에 큰 영향을 미치지 않는다.
주기적 데이터 통신에 있어서, 서비스에 따라 전송을 위한 지연 허용 가능 시간이 다르다. 서비스의 전송 주기 중 최소 전송 주기로 일정하게 데이터를 송신하는 경우, 다른 데이터 통신 조건은 만족되지만 전력 소모가 심하게 된다.
배터리로 동작하는 단말과 같이 전력 소모가 중요시 되는 장치에 있어서, 전송 횟수 증가로 인한 전력 소모의 증가는 장치의 주기능을 위한 사용 시간의 감소를 초래한다.
일측에 따르면, 클라이언트와 통신을 수행하는 서버의 동작 방법에 있어서, 적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU(Maximum Transmission Unit)에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하는 단계 및 상기 생성된 패킷을 상기 클라이언트로 송신하는 단계를 포함하는, 서버 동작 방법을 제공한다.
일실시예에 따르면, 상기 최대 데이터 전송 개수는, 상기 MTU를 상기 적어도 하나의 서비스에 대응하는 데이터의 크기로 나눈 값의 정수 값일 수 있다.
또한, 상기 지연 허용 시간은 상기 적어도 하나의 서비스 별로 다르게 설정될 수 있다.
일실시예에 따르면, 상기 패킷으로 생성하는 단계는, 상기 적어도 하나의 서비스 중 수집된 데이터가 대응되는 제1 서비스의 지연 허용 시간을 확인하는 단계, 상기 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 상기 수집된 데이터를 저장하는 단계 및 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 이상인 경우, 상기 저장된 데이터를 패킷으로 생성하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 적어도 하나의 서비스 각각의 전송 주기에 따라 상기 수집된 데이터가 대응되는 서비스를 결정하는 단계 및 저장되는 데이터의 시점이 겹치는 경우, 서비스의 지연 허용 시간에 기초하여 상기 수집된 데이터가 대응되는 서비스를 결정하는 단계를 더 포함할 수 있다.
또한, 상기 패킷으로 생성하는 단계는, 상기 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 상기 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성하는 단계를 더 포함할 수 있다.
더불어, 상기 수집된 데이터와 상기 저장된 데이터를 패킷으로 생성하는 단계는, 상기 이전에 저장된 데이터가 존재하지 않는 경우, 상기 수집된 데이터 만을 패킷으로 생성하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 수집된 데이터를 저장하는 단계는, 성가 수집된 데이터에 상기 제1 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하는 단계를 포함할 수 있다.
또한, 상기 수집된 데이터를 저장하는 단계는, 상기 수집된 데이터를 상기 전송 임계 시간 순서대로 저장할 수 있다.
일실시예에 따르면, 상기 패킷으로 생성하는 단계는, 상기 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 미만인 경우, 상기 저장된 데이터 각각에 설정된 전송 임계 시간을 확인하는 단계 및 상기 저장된 데이터 중 적어도 하나의 데이터에 설정된 전송 임계 시간이 만료된 경우, 상기 저장된 데이터를 패킷으로 생성하는 단계를 더 포함할 수 있다.
다른 일측에 따르면, 데이터 전송을 위한 스케쥴링 맵을 이용하여 클라이언트와 통신을 수행하는 서버의 상기 스케쥴링 맵 생성 방법에 있어서, 적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계 및 상기 생성하도록 스케쥴링된 패킷을 상기 클라이언트로 송신하도록 스케쥴링 하는 스케쥴링 맵을 생성하는 단계를 포함하는 서버의 스케쥴링 맵 생성 방법을 제공한다.
일실시예에 따르면, 상기 패킷으로 생성하도록 스케쥴링하는 단계는, 상기 적어도 하나의 서비스 중 수집된 데이터가 대응되는 상기 제1 서비스의 지연 허용 시간을 확인하는 단계, 상기 제1 서비스의 지연 허용 시간이 존재하는 경우, 상기 수집된 데이터를 저장하는 단계 및 저장된 참조 데이터의 개수가 상기 최대 데이터 전송 개수 이상인 경우, 상기 저장된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계를 포함할 수 있다.
또한, 상기 패킷으로 생성하도록 스케쥴링하는 단계는, 상기 제1 서비스의 지연 허용 시간이 존재하지 않는 경우, 상기 수집된 참조 데이터와 상기 저장된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 수집된 데이터를 저장하는 단계는, 상기 수집된 데이터에 상기 제1 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하는 단계를 포함할 수 있다.
또한, 상기 패킷으로 생성하도록 스케쥴링하는 단계는, 상기 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 미만인 경우, 상기 저장된 데이터 각각에 설정된 전송 임계 시간을 확인하는 단계 및 상기 저장된 데이터 중 적어도 하나의 데이터에 설정된 전송 임계 시간이 도래한 경우, 상기 저장된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계를 더 포함할 수 있다.
또 다른 일측에 따르면, 클라이언트와 통신을 수행하는 서버에 있어서, 적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하는 패킷 생성부, 상기 생성된 패킷을 상기 클라이언트로 송신하는 송신부 및 상기 수집된 데이터를 저장하는 메모리를 포함할 수 있다.
일실시예에 따르면, 상기 패킷 생성부는, 상기 적어도 하나의 서비스 중 수집된 데이터가 대응되는 제1 서비스의 지연 허용 시간을 확인하고, 상기 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 상기 수집된 데이터를 상기 메모리에 저장하고, 상기 메모리에 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 이상인 경우, 상기 저장된 데이터를 패킷으로 생성할 수 있다.
또한, 상기 패킷 생성부는, 상기 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 상기 수집된 데이터와 상기 메모리에 저장된 데이터를 패킷으로 생성할 수 있다.
일실시예에 따르면, 상기 메모리는, 수집된 데이터에 대응하는 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하여 저장할 수 있다.
또한, 상기 패킷 생성부는, 상기 메모리에 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 미만인 경우, 상기 메모리에 저장된 데이터 각각에 설정된 전송 임계 시간을 확인하고, 상기 메모리에 저장된 데이터 중 적어도 하나의 데이터에 설정된 전송 임계 시간이 만료된 경우, 상기 메모리에 저장된 데이터를 패킷으로 생성할 수 있다.
도 1은 일실시예에 따른 서버와 클라이언트의 블록도를 도시한다.
도 2는 일실시예에 따른 스케쥴러의 블록도를 도시한다.
도 3은 일실시예에 따른 스케쥴링 맵을 도시한 그래프이다.
도 4는 일실시예에 따른 MTU와 데이터의 크기를 도시한다.
도 5는 일실시예에 따른 클라이언트로 송신하기 위해 생성된 패킷을 도시한다.
도 6은 일실시예에 따른 서버 동작 방법을 나타낸 흐름도이다.
도 7은 일실시예에 따른 클라이언트로 송신하기 위한 패킷을 생성하는 방법을 나타낸 흐름도이다.
도 8은 일실시예에 따른 스케쥴링 맵 생성 방법을 나타낸 흐름도이다.
도 9는 일실시예에 따른 클라이언트로 송신하기 위한 패킷을 생성하는 스케쥴링 방법을 나타낸 흐름도이다.
이하에서, 일부 실시예들를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
도 1은 일실시예에 따른 서버와 클라이언트의 블록도를 도시한다.
서버(110)는 클라이언트(150)와 데이터 통신을 수행할 수 있다. 서버(110)는 패킷 생성부(120), 송수신부(130) 및 메모리(140)를 포함할 수 있고, 클라이언트(150) 역시 패킷 생성부(160), 송수신부(170) 및 메모리(180)를 포함할 수 있다.
일실시예에 따르면, 서버(110)는 보행 보조 장치(Walking Assist Device), 사용자의 생체 정보를 센싱하는 웨어러블 디바이스(Wearable Device)와 같은 생체 시스템 등 일 수 있다. 서버(110)는 사용자의 생체 정보를 센싱하는 센서에 의해 수집되는 데이터를 수신하여 클라이언트(150)로 송신할 수 있다.
일실시예에 따르면, 클라이언트(150)는 스마트 폰, 태블릿 PC, 웨어러블 디바이스, 및 개인 PC 등일 수 있다. 클라이언트(150)는 서버(110)로부터 데이터를 수신하고, 수신된 데이터에 대응되는 서비스에 따라 해당 모듈로 데이터를 전송할 수 있다. 또한, 클라이언트(150)로 수신되는 데이터를 서버(110)로 송신할 수 있다.
서버(110)는 생체 정보를 센싱하는 센서에 의해 수집되는 데이터를 클라이언트(150)로 주기적으로 송신할 수 있다. 다만, 서버(110)가 배터리와 같이 한정된 전원 용량으로 구동되는 경우, 주기적 데이터 통신으로 인한 전력 소모로 주기능을 위한 사용 시간의 감소가 초래될 수 있다. 따라서, 서버(110)의 데이터 통신 횟수를 감소시켜 데이터 통신으로 인한 전력 소모를 감소시킬 필요가 있다.
패킷 생성부(120)는 적어도 하나의 서비스 각각의 지연 허용 시간 및 클라이언트(150)와 서버(110) 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성할 수 있다.
적어도 하나의 서비스는 서버(110)와 클라이언트(150) 사이에 정의될 수 있다. 예를 들어, 수집되는 데이터를 저장하기 위한 로그 서비스, 수집되는 데이터를 이용하여 사용자의 생체 정보를 분석하는 분석 서비스 및 수집되는 데이터를 사용자에게 실시간으로 제공하는 모니터링 서비스 등으로 서버(110)와 클라이언트(150) 사이에 정의될 수 있다.
상술한 서비스의 예들은 설명의 목적을 위한 것이며, 서버(110) 및 클라이언트(150)의 사용 목적 및 특성 등을 고려하여 다양하게 설정될 수 있다.
지연 허용 시간은 적어도 하나의 서비스 각각에 미리 설정될 수 있고, 각 서비스 별로 다르게 설정될 수 있다. 서버(110)는 데이터를 전송하는 경우, 데이터에 대응되는 서비스에 설정되는 지연 허용 시간 내에서 서버(110)는 클라이언트(150)로 데이터를 송신할 수 있다.
예를 들어, 제1 서비스의 지연 허용 시간이 0ms인 경우, 제1 서비스에 대응되는 데이터는 지연 없이 바로 송신되어야 한다. 제2 서비스의 지연 허용 시간이 100ms인 경우, 제2 서비스에 대응되는 데이터는 수집되는 시점에서 100ms 내의 임의의 시점에서 송신될 수 있다. 다만, 제2 서비스에 대응되는 데이터는 수집되는 시점에서 100ms의 지연 허용 시간이 만료되기 전에는 클라이언트(150)로 송신되어야 한다.
지연 허용 시간은 서비스의 특성에 따라 다르게 설정될 수 있다. 예를 들어, 수집되는 데이터를 저장하기 위한 로그 서비스는 단순히 데이터를 저장하기 위한 서비스이므로 지연 허용 시간이 길게 설정될 수 있다. 수집되는 데이터를 이용하여 사용자의 생체 정보를 분석하는 분석 서비스는 다른 장치들과의 연동이나 분석 프로세스 지연을 고려하여 지연 허용 시간이 설정될 수 있다. 수집되는 데이터를 사용자에게 실시간으로 제공하는 모니터링 서비스는 사용자에게 실시간 데이터 값을 제공하여야 하므로 지연 허용 시간이 짧게 설정되거나, 지연 허용 시간이 없을 수 있다.
MTU는 네트워크에서 세그먼트 없이 보낼 수 있는 최대 데이터 크기 값이며, 서버(110)와 클라이언트(150) 사이에 규약 될 수 있다. 데이터가 MTU 이상이라면, 여러 개의 패킷으로 분할되어 전송된다. 다시 말해서, MTU는 패킷이 한번에 보낼 수 있는 데이터 크기이다.
예를 들어, 블루투스(Bluetooth)의 MTU는 1008 byte로 규약되어 있고, 이더넷의 MTU는 1500byte로 규약되어 있으며, 모뎀을 통해 접속하는 PPPoE(Point to Point Protocol Over Ethernet) 연결은 1492 byte로 규약되어 있다. 이와 같이 MTU는 서버(110)와 클라이언트(150)간 네트워크 인터페이스에 따라 규약될 수 있다.
최대 데이터 전송 개수는 MTU을 적어도 하나의 서비스에 대응하는 데이터의 크기로 나눈 값일 수 있다. 예를 들어, 적어도 하나의 서비스에 대응하는 데이터의 크기가 200byte이고, 서버(110)와 클라리언트(150)가 블루투스를 통해 통신하고 있는 경우 MTU는 1008byte일 수 있다. 이 경우 최대 데이터 전송 개수는 MTU를 데이터 크기로 나눈 값의 정수 값인 5일 수 있다. 따라서, 서버(110)는 최대 5개의 데이터를 하나의 패킷으로 생성하여 클라이언트(150)로 전송할 수 있다.
패킷 생성부(120)는 수집되는 데이터에 대응하는 제1 서비스를 확인할 수 있다. 상술한 바와 같이 적어도 하나의 서비스는 서비스의 특성에 따라 서로 다른 지연 허용 시간을 가질 수 있다.
예를 들어, 수집되는 데이터를 저장하기 위한 로그 서비스는 수집되는 데이터를 모두 저장하기 위해 데이터가 수집되는 주기와 동일하게 전송 주기가 설정될 수 있다. 수집되는 데이터를 이용하여 사용자의 생체 정보를 분석하는 분석 서비스는 분석을 위해 데이터가 일정 수 이상 필요하기 때문에, 로그 서비스 보다 긴 전송 주기로 설정될 수 있다. 수집되는 데이터를 사용자에게 실시간으로 제공하는 모니터링 서비스는 사용자에게 수집되는 모든 데이터를 제공할 필요는 없으므로 전송 주기가 가장 길게 설정될 수 있다. 다만, 상술한 내용은 설명의 목적을 위한 일예에 불과하며, 서버(110)와 클라이언트(150) 간의 설정에 따라 다르게 정의될 수 있음은 해당 기술 분야의 통상이 기술자에게 있어 명백하다.
서버(110)는 적어도 하나의 서비스 각각의 전송 주기에 따라 수집된 데이터가 대응되는 서비스를 결정할 수 있다. 서버(110)는 임의의 특정 시점을 기준으로 주기적으로 수집되는 데이터의 전송 시간과 매칭이 되는 전송 주기를 가지는 서비스를 확인할 수 있다.
매칭이 되는 전송 주기를 가지는 서비스가 하나인 경우, 서버(110)는 수집되는 데이터를 매칭이 되는 전송 주기를 가지는 서비스에 대응하는 것으로 결정할 수 있다.
매칭이 되는 전송 주기를 가지는 서비스가 2 개 이상인 경우, 서버(110)는 매칭이 되는 전송 주기를 가지는 서비스 각각의 지연 허용 시간을 확인할 수 있다. 서버(110)는 매칭이 되는 전송 주기를 가지는 서비스 중 지연 허용 시간이 짧을수록 우선 순위를 부여할 수 있다. 이를 통해 서버(110)는 수집되는 데이터를 매칭이 되는 전송 주기를 가지는 서비스 중에서 지연 허용 시간이 가장 짧은 서비스에 대응하는 것으로 결정할 수 있다.
서버(110)는 수집되는 데이터에 대응하는 서비스에 대한 정보를 패킷 생성부(120)로 송신할 수 있다. 패킷 생성부(120)는 수신된 수집되는 데이터에 대응하는 서비스에 대한 정보에 기초하여 수집되는 데이터가 대응되는 제1 서비스를 확인할 수 있다.
패킷 생성부(120)는 제1 서비스의 지연 허용 시간을 임계치와 비교하여 수집된 데이터를 전송할지, 메모리(140)에 저장할지를 결정할 수 있다. 임계치는 미리 설정되는 값으로서, 서버(110)와 클라이언트(150) 간에 정의될 수 있다.
패킷 생성부(120)는 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 수집된 데이터를 메모리(140)에 저장할 수 있다. 메모리(140)에 저장된 데이터의 개수가 최대 데이터 전송 개수 이상이 되는 경우, 저장된 데이터를 패킷으로 생성할 수 있다.
패킷 생성부(120)는 메모리(140)에 저장된 데이터의 개수가 최대 데이터 전송 개수 이하인 경우, 저장된 데이터 각각의 지연 허용 시간을 확인할 수 있다. 저장된 데이터 각각의 지연 허용 시간 중 적어도 하나의 지연 허용 시간이 만료된 경우, 패킷 생성부(120)는 저장된 데이터의 개수가 최대 데이터 전송 개수 미만임에도 불구하고 저장된 데이터를 패킷으로 생성할 수 있다.
패킷 생성부(120)는 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성할 수 있다. 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 수집된 데이터는 지연 없이 바로 발송되어야 하므로, 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성할 수 있다. 메모리(140)에 저장된 데이터가 없는 경우, 패킷 생성부(120)는 수집된 데이터 만을 패킷으로 생성할 수 있다.
패킷 생성부(120)가 수집된 데이터를 이용하여 클라이언트(150)로 전송할 패킷을 생성하는 구체적인 방법에 대해서는 도 3 내지 도 5를 통해 후술하기로 한다.
송수신부(130)는 패킷 생성부(120)에서 생성된 패킷을 클라이언트(150)로 송신할 수 있다. 송수신부(130)는 클라이언트(150)로부터 패킷을 수신할 수 있다.
메모리(140)는 수집된 데이터를 저장할 수 있다. 메모리(140)는 수집된 데이터를 저장하는 과정에서, 수집된 데이터에 대응하는 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하여 저장할 수 있다.
메모리(140)는 수집되는 데이터를 전송 임계 시간 순서로 저장할 수 있다. 이를 통해여 패킷 생성부(120)가 수집된 데이터 각각의 전송 임계 시간을 쉽게 확인할 수 있다.
메모리(140)는 저장된 데이터의 전송 임계 시간이 동일한 경우, 데이터가 수집된 순서대로 저장할 수 있다. 이를 통하여, 패킷 생성부(120)는 데이터가 수집된 순서대로 패킷을 생성하여 클라이언트(150)로 송신할 수 있다.
상술한 바와 같이 서버(110)는 클라이언트(150)와의 통신에 있어서, 수집되는 데이터의 주기마다 데이터를 전송하지 않고, 수집되는 데이터를 저장하여 하나의 패킷으로 생성하여 전송할 수 있다. 이를 통하여 서버(110)는 클라이언트(150)로 전송하는 횟수를 감소시킬 수 있으므로 데이터 통신에 따른 전력 소모를 줄일 수 있다.
상술한 내용은 서버(110)를 중심으로 설명하였으나, 클라이언트(150) 역시 서버로 데이터를 전송하는 과정에서 동일하게 데이터를 패킷으로 생성하여 전송할 수 있다. 그러므로, 클라이언트(150)의 패킷 생성부(160)는 서버(110)의 패킷 생성부(120)와 동일하게 동작할 수 있다. 클라이언트(150)의 패킷 생성부(160) 역시 데이터를 메모리(180)에 저장하여 하나의 패킷으로 생성하여 송수신부(170)를 통해 서버(110)로 송신하거나, 각 서비스에 따른 해당 모듈로 패킷을 송신할 수 있다.
도 1에서는 별도의 스케쥴링 맵 생성 없이, 서버(110)에 포함되는 패킷 생성부(120)를 통해 데이터를 패킷으로 생성하여 클라이언트(150)로 송신하는 방법에 대해 설명하였다. 다만, 다른 일실시예에 따르면, 서버(110)는 별도의 패킷 생성부(120)를 구비하는 대신, 스케쥴러를 통해 스케쥴링 맵을 생성하여 수집되는 데이터를 패킷으로 생성할 수 있다.
서버(110)는 생성된 스케쥴링 맵을 이용하여 수집되는 데이터를 패킷으로 생성하여 클라이언트(150)로 송신할 수 있다. 도 2에서는 스케쥴링 맵을 생성하는 스케쥴러에 대해서 구체적으로 설명한다.
도 2는 일실시예에 따른 스케쥴러의 블록도를 도시한다.
스케쥴러(200)는 프로세서(210), 송신부(220), 메모리(230) 및 분석부(240)를 포함할 수 있다. 스케쥴러(200)는 미리 설정된 스케쥴링 맵 크기 이상으로 설정된 스케쥴링 맵 생성 구간 동안 수집되는 데이터를 이용하여 스케쥴링 맵을 생성할 수 있다. 스케쥴링 맵 크기는 서비스 각각의 전송 주기에 기반하여 가장 짧은 전송 주기를 가진 서비스에 따라 설정될 수 있다.
또한, 스케쥴러(200)는 미리 설정된 스케쥴링 맵 크기 이상으로 설정된 스케쥴링 맴 생성 구간 동안, 수집되는 데이터와 동일한 유형의 샘플 데이터를 이용하여 스케쥴링 맵을 생성할 수도 있다.
프로세서(210)는 적어도 하나의 서비스 각각의 지연 허용 시간 및 클라이언트와 서버 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다.
프로세서(210)는 수집되는 데이터에 대응하는 제1 서비스를 확인할 수 있다. 도 1에서 설명한 바와 같이 적어도 하나의 서비스는 서비스의 특성에 따라 서로 다른 지연 허용 시간을 가질 수 있다. 또한, 적어도 하나의 서비스는 서비스의 특성에 따라 서로 다른 전송 주기를 가질 수 있다. 다시 말해서, 각 서비스 별로 서비스에 대응하는 데이터를 전송하는 주기가 다를 수 있다.
분석부(240)는 적어도 하나의 서비스 각각에 대한 전송 주기 및 지연 허용 시간이 포함된 서비스 정보를 수신할 수 있다. 분석부(240)는 적어도 하나의 서비스 각각의 전송 주기에 따라 수집된 데이터가 대응되는 서비스를 결정할 수 있다. 분석부(240)는 임의의 특정 시점을 기준으로 주기적으로 수집되는 데이터의 전송 시간과 매칭되는 전송 주기를 가지는 서비스를 확인할 수 있다.
매칭이 되는 전송 주기를 가지는 서비스가 하나인 경우, 분석부(240)는 수집되는 데이터를 매칭이 되는 전송 주기를 가지는 서비스에 대응하는 것으로 결정할 수 있다.
매칭이 되는 전송 주기를 가지는 서비스가 2 개 이상인 경우, 분석부(240)는 매칭이 되는 전송 주기를 가지는 서비스 각각의 지연 허용 시간을 확인할 수 있다. 서버(240)는 매칭이 되는 전송 주기를 가지는 서비스 중 지연 허용 시간이 짧을수록 우선 순위를 부여할 수 있다. 이를 통해 서버(240)는 수집되는 데이터를 매칭이 되는 전송 주기를 가지는 서비스 중에서 지연 허용 시간이 가장 짧은 서비스에 대응하는 것으로 결정할 수 있다.
분석부(240)는 수집되는 데이터에 대응하는 서비스에 대한 정보를 프로세서(210)로 송신할 수 있다. 프로세서(210)는 분석부(240)를 통해 수신되는 수집되는 데이터에 대응하는 서비스 정보에 기초하여 수집되는 데이터에 대응하는 제1 서비스를 확인할 수 있다.
프로세서(210)는 제1 서비스의 지연 허용 시간을 임계치와 비교하여 수집된 데이터를 전송할지, 메모리(230)에 저장할 지를 결정할 수 있다. 임계치는 스케쥴링 맵 생성에 앞서 미리 설정되는 값으로서, 서버(110)와 클라이언트(150) 간에 정의될 수 있다.
프로세서(210)는 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 수집된 데이터를 메모리(230)에 저장할 수 있다. 메모리(230)에 저장된 데이터의 개수가 최대 데이터 전송 개수 이상이 되는 경우, 저장된 데이터를 패킷으로 생성하도록 스케쥴링 할 수 있다.
프로세서(210)는 메모리(230)에 저장된 데이터의 개수가 최대 데이터 전송 개수 이하인 경우, 저장된 데이터 각각의 지연 허용 시간을 확인할 수 있다. 저장된 데이터 각각의 지연 허용 시간 중 적어도 하나의 지연 허용 시간이 만료된 경우, 프로세서(210)는 저장된 데이터의 개수가 최대 데이터 전송 개수 미만임에도 불구하고 저장된 데이터를 패킷으로 생성하도록 스케쥴링 할 수 있다.
프로세서(210)는 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성할 수 있다. 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 수집된 데이터는 지연 없이 바로 발송되어야 한다. 따라서, 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성하도록 스케쥴링 할 수 있다. 메모리(230)에 저장된 데이터가 없는 경우, 프로세서(210)는 수집된 데이터 만을 패킷으로 생성하도록 스케쥴링 할 수 있다.
패킷으로 생성하도록 스케쥴링 한다는 것은, 스케쥴링 맵의 시작 시점으로부터 상술한 패킷으로 생성하는 조건 들이 만족되는 시점에서 수집되는 데이터를 패킷으로 생성하도록 하는 것을 의미할 수 있다.
프로세서(210)는 생성하도록 스케쥴링된 패킷을 클라이언트(150)로 송신하도록 스케쥴링하는 스케쥴링 맵을 생성할 수 있다. 생성된 스케쥴링 맵은 송신부(220)를 통해 스케쥴링 맵을 이용하여 실제 수집된 데이터를 패킷으로 생성하여 송수신하는 모듈로 전송될 수 있다.
서버(110)가 스케쥴링 맵을 이용하여 데이터를 송수신하는 경우, 서버(110)는 데이터 전송의 시작 점 또는 임의의 특정 시점과 스케쥴링 맵의 시작 시점을 일치시킬 수 있다. 그 후 서버(110)는 수집되는 데이터를 상술한 패킷으로 생성하도록 스케쥴링 되는 시점에서 패킷으로 생성하여 클라이언트(150)로 송신할 수 있다.
메모리(230)는 수집되는 데이터를 전송 임계 시간 순서로 저장할 수 있다. 이를 통하여 프로세서(210)가 수집된 데이터 각각의 전송 임계 시간을 쉽게 확인할 수 있다.
메모리(230)는 저장된 데이터의 전송 임계 시간이 동일한 경우, 데이터가 수집된 순서대로 저장할 수 있다. 이를 통하여, 프로세서(210)는 데이터가 수집된 순서대로 패킷을 생성하도록 스케쥴링할 수 있다.
도 2에서는 서버(110)가 스케쥴러(200)를 통해 별도의 스케쥴링 맵을 생성하고, 생성된 스케쥴링 맵에 기초하여 서버(110)가 실제 수집되는 데이터를 패킷으로 생성하여 클라이언트(150)로 송신하는 방법에 대해 설명하였다. 클라이언트(150) 역시 도 2에서 설명한 바와 같이 스케쥴링 맵을 생성하여 데이터 송수신을 동일하게 수행할 수 있다. 도 3에서는 구체적인 예시를 통해 스케쥴링 맵을 생성하는 방법에 대해 후술한다.
도 3은 일실시예에 따른 스케쥴링 맵을 도시한 그래프이다.
도 3에서는, 일실시예에 따른 수집된 데이터를 패킷으로 생성하도록 스케쥴링하여 생성된 스케쥴링 맵을 그래프로 도시한다. 이하에서는 구체적인 예시를 기준으로 스케쥴링 맵이 생성되는 방법을 설명한다. 도 3에서 설명하는 스케쥴링 맵 생성 방법은 도 1에서 설명한 패킷 생성부(120)가 패킷을 생성하는 방식과 동일하다.
도 3에서는 서버(110)와 클라이언트(150) 간에 블루투스를 이용한 통신이 이루어 지는 경우로 설명한다. 서버(110)와 클라이언트(150)가 블루투스를 이용하여 통신하는 경우 MTU는 1008byte로 규약될 수 있다. 또한, 서버(110) 또는 클라이언트(150)에서 수집되는 데이터의 크기는 200byte로 동일한 것으로 가정한다. 따라서, 서버(110)와 클라이언트(150)간의 최대 데이터 전송 개수는 5개가 될 수 있다.
서비스는 다음과 같은 3 가지의 서비스로 구분되는 경우로 설명한다. 서비스 번호 0은 수집되는 데이터를 사용자에게 실시간으로 제공하는 모니터링 서비스일 수 있다. 서비스 번호 1은 수집되는 데이터를 이용하여 사용자의 생체 정보를 분석하는 분석 서비스일 수 있다. 서비스 번호 2는 수집되는 데이터를 저장하기 위한 로그 서비스일 수 있다. 3 가지의 서비스에 대한 전송 주기 및 지연 허용 시간은 표 1과 같다.
서비스 번호 서비스 이름 전송 주파수(Hz) 지연 허용 시간(ms) 지연 허용 시간(Hz)
0 모니터링 서비스 2 0 0
1 분석 서비스 5 100 4
2 로그 서비스 20 3000 60
스케쥴링 맵의 크기는 초당 전달해야 하는 전체 데이터를 의미할 수 있다. 스케쥴링 맵의 크기는 전송 주파수가 가장 높은 서비스를 기준으로 결정될 수 있다. 예를 들어, 로그 서비스의 전송 주파수가 20Hz로 가장 높으므로, 스케쥴링 맵의 크기는 20Hz로 설정될 수 있다. 다시 말해서, 초당 20 개의 데이터를 전송해야 함을 의미할 수 있다. 또한, 스케쥴링 맵의 크기가 초당 전달해야 하는 전체 데이터를 의미하므로, 각 서비스의 전송 주기를 전송 주파수로 변환하여 이용할 수 있다.
도 3을 참조하면, x 축은 시간을 주파수 단위로 나타내고, y축은 서비스 번호 및 수집되는 데이터를 나타낸다. 스케쥴링 맵을 생성 구간은 스케쥴링 맵 크기로 설정되는 20Hz의 2배로 설정될 수 있다. 따라서, x 축의 1 초를 20으로 나눈 값이 되어 0.05초를 나타낼 수 있다.
y축의 서비스 번호는 수집되는 데이터의 시점에 따라 결정될 수 있다. 예를 들어, 수집되는 데이터를 저장하기 위한 로그 서비스의 전송 주파수가 20Hz이므로, 센서 등을 통해 수집되는 데이터 역시 20Hz 단위로 수집될 수 있다.
임의의 특정 시점인 t+0 시점을 기준으로 수집되는 데이터에 대응하는 서비스가 결정될 수 있다. t+0의 시점은 최초 20개의 데이터가 수집된 후에 다음의 20개의 데이터가 수집되는 첫 번째 시점으로 볼 수 있다. t+0 시점에서는 모니터링 서비스, 분석 서비스 및 로그 서비스 각각의 전송 주파수가 겹칠 수 있다. 마찬가지로 t+10 시점에서 수집되는 d+10 데이터 역시 모니터링 서비스로 결정될 수 있으므로, 서비스 번호는 0이 될 수 있다.
2 개 이상의 서비스의 전송 주파수가 겹치는 경우, 각 서비스의 지연 허용 시간이 비교된다. 지연 허용 시간이 짧을수록 우선 순위가 높은 것으로 판단되므로, 수집되는 데이터가 지연 허용 시간이 가장 짧은 서비스에 대응되는 것으로 결정할 수 있다. 따라서, t+0 시점에 수집되는 d+0 데이터는 지연 허용 시간이 0ms인 모니터링 서비스로 결정될 수 있다. 그러므로 서비스 번호는 0이 될 수 있다.
t+1 내지 t+3 시점에서 수집되는 d+1 내지 d+3 데이터는 로그 서비스의 전송 주파수에 대해서만 매칭될 수 있다. 따라서, d+1 내지 d+3 데이터는 로그 서비스에 대응되는 것으로 결정될 수 있으므로, 서비스 번호는 2가 될 수 있다.
동일하게 t+5 내지 t+7, t+9, t+11, t+13 내지 t+15 및 t+17 내지 t+19 시점에서 수집되는 d+5 내지 d+7, d+9, d+11, d+13 내지 d+15 및 d+17 내지 d+19 데이터는 로그 서비스의 전송 주파수에 대해서만 매칭될 수 있다. 따라서, d+5 내지 d+7, d+9, d+11, d+13 내지 d+15 및 d+17 내지 d+19 데이터는 로그 서비스에 대응되는 것으로 결정될 수 있으므로, 서비스 번호는 2가 될 수 있다.
t+4 시점에서는 분석 서비스 및 로그 서비스의 전송 주파수가 겹칠 수 있다. 다만, 분석 서비스의 지연 허용 시간이 로그 서비스의 지연 허용 시간 보다 짧으므로, 분석 서비스의 우선 순위가 로그 서비스의 우선 순위보다 높다. 따라서, t+4 시점에서 수집되는 d+4 데이터는 분석 서비스로 결정될 수 있으므로, 서비스 번호는 1이 될 수 있다.
마찬가지로, t+8, t+12 및 t+16 시점에서는 분석 서비스 및 로그 서비스의 전송 주파수가 겹치지만, 분석 서비스의 우선 순위가 로그 서비스의 우선 순위보다 높으므로 d+8, d+12 및 d+16 데이터는 분석 서비스로 결정될 수 있다. 따라서, d+8, d+12 및 d+16 데이터의 서비스 번호는 1이 될 수 있다.
상술한 내용을 기초로하여 수집되는 데이터가 패킷으로 생성되는 방법을 설명한다. t+0 시점에서 수집되는 d+0 데이터는 모니터링 서비스에 대응된다. 따라서, 프로세서(110)는 d+0 데이터의 지연 허용 시간이 0ms임을 확인할 수 있으므로, d+0 데이터와 이전에 저장된 데이터인 d-1 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다.
d+1 내지 d+3 데이터에 로그 서비스에 대응되므로 지연 허용 시간이 3초로 설정되어 있다. 따라서, 프로세서(210)는 d+1 내지 d+3 데이터를 순서대로 메모리(230)에 저장할 수 있다. 메모리(230)는 d+1 내지 d+3 데이터에 지연 허용 시간에 따른 전송 임계 시간을 설정하여 저장할 수 있다. 다만, d+1 내지 d+3 데이터는 스케쥴링 맵의 크기보다 지연 허용 시간이 더 길기 때문에 별도로 전송 임계 시간을 설정하지 않을 수 있다.
d+4 데이터는 분석 서비스에 대응되므로 지연 허용 시간이 5ms, 다시 말해서 4Hz로 설정되어 있다. 따라서, 프로세서(210)는 지연 허용 시간에 따른 전송 임계 시간을 설정하여 메모리(230)에 저장할 수 있다.
d+5 데이터 역시 로그 서비스에 대응되므로 프로세서(210)는 메모리(230)에 d+5 데이터를 저장할 수 있다. 다만, d+5 데이터가 메모리(230)에 저장됨으로 인해서 메모리(230)에 저장된 데이터의 개수가 5개가 된다. 이 경우, 저장된 데이터의 개수가 최대 전송 개수 이상이 되므로, 프로세서(210)는 t+5 시점에서 저장된 데이터를 패킷으로 설정하도록 스케쥴링 할 수 있다. 따라서, d+1 내지 d+5 데이터는 하나의 패킷으로 생성되도록 스케쥴링 될 수 있다. d+1 내지 d+5 데이터가 하나의 패킷으로 생성되도록 스케쥴링 된 후, d+1 내지 d+5 데이터는 하나의 패킷으로 클라이언트(150)로 송신됨으로써 t+5 시점에서 메모리(230)에 저장된 데이터의 개수는 0이다.
d+6, d+7 및 d+9 데이터는 로그 서비스에 대응되므로, 프로세서(210)는 d+6, d+7 및 d+9 데이터를 순서대로 메모리(230)에 저장할 수 있다. 또한, d+8 데이터는 분석 서비스에 대응되므로, 프로세서(210)는 d+7 데이터 다음에 메모리(230)에 지연 허용 시간에 따른 전송 임계 시간을 설정하여 저장할 수 있다.
d+10 데이터는 모니터링 서비스에 대응되므로, 프로세서(210)는 d+10 데이터와 메모리(230)에 저장된 d+6 내지 d+9 데이터를 하나의 패킷으로 생성하도록 스케쥴링할 수 있다. d+6 내지 d+10 데이터가 하나의 패킷으로 생성되도록 스케쥴링 된 후, d+6 내지 d+10 데이터는 하나의 패킷으로 클라이언트(150)로 송신됨으로써 t+5 시점에서 메모리(230)에 저장된 데이터의 개수는 0이다.
d+11, d+13 및 d+14 데이터는 로그 서비스에 대응되므로, 프로세서(210)는 d+11, d+13 및 d+14 데이터를 순서대로 메모리(230)에 저장할 수 있다. d+12 데이터는 분석 서비스에 대응되므로, 프로세서는 d+11 데이터 다음에 d+12 데이터를 저장하고, 전송 임계 시간을 설정하여 저장할 수 있다.
d+12 데이터의 전송 임계 시간은 t+14일 수 있다. d+12 데이터는 분석 서비스에 대응되므로 지연 허용 시간은 100ms, 다시 말해서 4Hz일 수 있다. 따라서, d+12 데이터가 수집된 시점인 t+12 데이터를 기준으로 지연 허용 시간을 더한 시간인 t+14 시점이 전송 임계 시간이 될 수 있다.
따라서, t+14 시점에서 메모리(230)에 저장된 데이터의 개수는 4개이고, 저장된 데이터의 개수가 최대 데이터 전송 개수 미만이라도, 프로세서(210)는 저장된 데이터인 d+11 내지 d+14의 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다. 데이터가 하나의 패킷으로 생성되도록 스케쥴링 된 후, d+11 내지 d+14 데이터는 하나의 패킷으로 클라이언트(150)로 송신됨으로써 t+14 시점에서 메모리(230)에 저장된 데이터의 개수는 0이다.
d+15, d+17 및 d+18 데이터는 로그 서비스에 대응되므로, 프로세서(210)는 d+15, d+17 및 d+18 데이터를 순서대로 메모리(230)에 저장할 수 있다. 또한, d+16 데이터는 분석 서비스에 대응되므로, 프로세서(210)는 d+15 데이터 다음에 메모리(230)에 지연 허용 시간에 따른 전송 임계 시간을 설정하여 저장할 수 있다.
d+16 데이터의 전송 임계 시간은 t+18일 수 있다. d+16 데이터는 분석 서비스에 대응되므로 지연 허용 시간은 100ms, 다시 말해서 4Hz일 수 있다. 따라서, d+16 데이터가 수집된 시점인 t+16 데이터를 기준으로 지연 허용 시간을 더한 시간인 t+18 시점이 전송 임계 시간이 될 수 있다.
따라서, t+18 시점에서 메모리(230)에 저장된 데이터의 개수는 4개이고, 저장된 데이터의 개수가 최대 데이터 전송 개수 미만이라도, 프로세서(210)는 저장된 데이터인 d+15 내지 d+18의 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다.
d+19 데이터는 로그 서비스에 대응되므로 프로세서(210)는 d+19 데이터를 메모리(230)에 저장할 수 있다. 다만, d+19 데이터 이후에 수집되는 데이터는 스케쥴링 맵 크기를 기준으로 다음 주기의 데이터일 수 있다. 따라서, 스케쥴링 맵 크기에 기반하여 d+0 내지 d+19 데이터만을 이용하여 스케쥴링 하는 경우, d+19 데이터는 t+19 시점에서 저장된 데이터의 개수가 하나이고, 지연 허용 시간이 도래하지 않았음에도 불구하고 패킷으로 생성되도록 스케쥴링 될 수 있다. 이 경우, 데이터의 전송 횟수가 6번이 되게 된다.
다만, 앞서 설명한 바와 같이 t+0 시점에서 d-1 데이터와 d+0 데이터를 패킷으로 생성하도록 설정하는 경우 d-1 데이터 내지 d+18 데이터의 20개의 데이터를 이용하여 스케쥴링할 수 있다. 이 경우에는 데이터의 전송 횟수가 5번이 된다.
이와 같이 패킷 전송 횟수를 최소화 하기 위해 스케쥴링 맵 크기에 따른 경계선(점선으로 도시됨)을 시프팅할 수 있다. 이를 통해 패킷 전송 횟수가 최소화가 되도록 조절할 수 있다.
최종적으로, 도 3에 도시된 스케쥴링 맵 그래프에서는 t+0, t+5, t+10, t+14 및 t+18 시점에서 각각 수집된 데이터와 저장된 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다.
이와 같이, 수집되는 데이터를 주기적으로 전송하는 경우 데이터의 전송 횟수는 20번이 비하여, 수집되는 데이터를 패킷으로 생성하여 전송하는 경우 데이터의 전송 횟수는 5번이 된다. 따라서, 일실시예에 따른 수집되는 데이터를 패킷으로 생성하여 전송하는 경우 전송 횟수는 75% 감소할 수 있다.
상술한 바와 같이 데이터 전송 횟수의 감소로 인하여, 서버(110) 및 클라이언트(150)에서 데이터 전송으로 인해 소비되는 전력이 감소될 수 있고, 이로 인하여 서버(110) 및 클라이언트(150)의 주기능에 대한 사용 시간이 증가될 수 있다.
도 4는 일실시예에 따른 MTU와 데이터의 크기를 도시한다.
도 4에서는 서버(110)와 클라이언트(150)간에 블루투스를 이용한 통신에 있어서 규약되는 MTU와 수집되는 데이터의 크기와의 관계를 도시한다. 상술한 바와 같이 서버(110)와 클라이언트(150) 간에 블루투스를 이용한 통신에서는 MTU가 1028byte로 규약된다.
서버(110)에서 수집되는 데이터의 크기가 200byte인 경우, 최대 데이터 전송 개수는 MTU를 데이터의 크기로 나눈 값의 정수 값인 5가 될 수 있다. 따라서, 서버(110)와 클라이언트(150) 간에는 최대 5개의 데이터를 하나의 패킷으로 생성하여 송신할 수 있다.
도 5는 일실시예에 따른 클라이언트로 송신하기 위해 생성된 패킷을 도시한다.
도 5에서는 도 3에서 스케쥴링된 패킷들(510, 520, 530, 540, 55)을 도시한다. 패킷(510)은 t+0 시점에서 생성되도록 스케쥴링된 패킷이다. 패킷(520)은 t+5 시점에서 생성되도록 스케쥴링된 패킷이다. 패킷(530)은 t+10 시점에서 생성되도록 스케쥴링된 패킷이다. 패킷(540)은 t+14 시점에서 생성되도록 스케쥴링된 패킷이다. 패킷(550)은 t+18 시점에서 생성되도록 스케쥴링된 패킷이다.
패킷(510)은 t+0 시점에 수집되는 d+0 데이터(511)를 포함한다. d+0 데이터(511)는 모니터링 서비스에 대응되고, 모니터링 서비스는 지연 허용 시간이 0ms 이기 때문에, 패킷(510)에 포함되는 데이터의 개수가 2개임에도 불구하고 패킷(510)으로 생성되도록 스케쥴링 된다.
패킷(520)에 포함되는 데이터의 개수는 5개로 최대 데이터 전송 개수와 동일하므로, 5개의 데이터가 패킷(520)으로 생성되도록 스케쥴링 된다. d+4 데이터(521)는 분석 서비스에 대응되는 데이터로서, 100ms 의 지연 허용 시간을 가진다. 다만, 패킷(520)에 포함되는 데이터의 개수가 5개이므로, d+4 데이터(521)의 전송 임계 시간이 만료되지 않았음에도, 5개의 데이터가 패킷(520)으로 생성되도록 스케쥴링 된다.
패킷(530)에 포함되는 데이터의 개수는 5개로 최대 데이터 전송 개수와 동일하므로, 5개의 데이터가 패킷(530)으로 생성되도록 스케쥴링 된다. d+8 데이터(531)는 분석 서비스에 대응되고, d+10 데이터(532)는 모니터링 서비스에 대응된다. d+8 데이터(531)의 전송 임계 시간은 t+10 이고, d+10 데이터(532)는 지연 허용 시간이 0ms이므로 t+10 시점에서 전송 되어야 한다. 따라서, 패킷(530)은 최대 데이터 전송 개수와 동일하고, d+8 데이터(531)의 전송 임계 시간이 도래하였으며, d+10 데이터(532) 역시 바로 전송되어야 하므로, 5개의 데이터가 패킷(530)으로 생성되도록 스케쥴링 된다.
패킷(540)에 포함되는 데이터의 개수는 4개로 최대 데이터 전송 개수 미만이다. 다만, d+12 데이터(541)가 분석 서비스에 대응되고, 분석 서비스의 지연 허용 시간에 따라 d+12 데이터(541)의 전송 임계 시간은 t+14이다. 따라서, d+14 데이터(542)가 수집되는 t+14 시점에서 4 개의 데이터는 패킷(540)으로 생성되도록 스케쥴링 된다.
패킷(550)에 포함되는 데이터의 개수는 4 개로 최대 데이터 전송 개수 미만이다. 다만, d+16 데이터(551)가 분석 서비스에 대응되고, 분석 서비스의 지연 허용 시간에 따라 d+16 데이터(551)의 전송 임계 시간은 t+18이다. 따라서, 데이터(552)가 수집되는 t+18 시점에서 4 개의 데이터는 패킷(550)으로 생성되도록 스케쥴링 된다.
도 3 내지 도 5에서는 구체적인 서비스에 대한 정보를 설정하고, 이에 따라 스케쥴링 맵이 생성되는 방법을 설명하였다. 다만, 이는 설명의 목적을 위한 것으로 이에 제한 되는 것은 아니다. 주기적으로 데이터를 송수신하는 장치에 있어서 구체적인 서비스에 대한 정보 및 수집되는 데이터의 주기가 다르더라도, 상술한 내용과 동일한 원리로 송신되는 데이터를 하나의 패킷으로 생성하여 전송 횟수를 감소시킬 수 있음은 해당 기술 분야의 통상의 기술자에게 있어 명백하다.
도 6은 일실시예에 따른 서버 동작 방법을 나타낸 흐름도이다.
단계(610)에서, 패킷 생성부(120)는 적어도 하나의 서비스 각각의 지연 허용 시간 및 클라이언트(150)와 서버(110) 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성할 수 있다.
지연 허용 시간은 적어도 하나의 서비스 각각에 미리 설정될 수 있고, 각 서비스 별로 다르게 설정될 수 있다. 서버(110)는 데이터를 전송하는 경우, 데이터에 대응되는 서비스에 설정되는 지연 허용 시간 내에서 서버(110)는 클라이언트(150)로 데이터를 송신할 수 있다.
MTU는 네트워크에서 세그먼트 없이 보낼 수 있는 최대 데이터 크기 값이며, 서버(110)와 클라이언트(150) 사이에 규약 될 수 있다. 데이터가 MTU 이상이라면, 여러 개의 패킷으로 분할되어 전송된다. 다시 말해서, MTU는 패킷이 한번에 보낼 수 있는 데이터 크기이다.
패킷 생성부(120)는 데이터의 통신 횟수를 감소시켜 소비 전력을 감소시키기 위하여 수집되는 데이터의 주기마다 데이터를 전송하지 않고, 수집되는 데이터를 저장하여 하나의 패킷으로 생성할 수 있다.
단계(620)에서, 송수신부(130)는 패킷 생성부(120)에서 생성된 패킷을 클라이언트(150)로 송신할 수 있다. 상술한 바와 같이 수집되는 데이터의 주기마다 데이터를 전송하지 않고, 수집되는 데이터를 저장하여 하나의 패킷으로 생성하고, 생성된 패킷을 클라이언트(150)로 송신할 수 있다. 이를 통해 데이터의 전송 횟수를 감소시킬 수 있다.
도 7은 일실시예에 따른 클라이언트로 송신하기 위한 패킷을 생성하는 방법을 나타낸 흐름도이다.
단계(710)에서, 패킷 생성부(120)는 수집되는 데이터가 대응되는 제1 서비스를 확인할 수 있다. 패킷 생성부(120)는 수신된 수집되는 데이터에 대응하는 서비스에 대한 정보에 기초하여 수집되는 데이터가 대응되는 제1 서비스를 확인할 수 있다.
단계(720)에서, 패킷 생성부(120)는 제1 서비스의 지연 허용 시간을 임계치와 비교할 수 있다. 임계치는 미리 설정되는 값으로서, 임계치 이하인 경우 지연 없이 수집된 데이터를 송신해야 하고, 임계치 초과하는 경우, 전송 임계 시간이 만료할 때까지 수집된 데이터를 송신하지 않을 수 있다.
단계(730)에서, 패킷 생성부(120)는 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 수집된 데이터를 메모리(140)에 저장할 수 있다. 상술한 바와 같이 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 제1 서비스의 지연 허용 시간에 따른 전송 임계 시간이 만료될 때까지 메모리(140)에 수집된 데이터를 저장할 수 있다.
단계(740)에서 패킷 생성부(120)는 메모리(140)에 저장된 데이터의 개수와 최대 데이터 전송 개수를 비교할 수 있다. 최대 데이터 전송 개수는 서버(110)와 클라이언트(150) 간에 규약된 MTU에 따라 결정되는 값으로서, 최대 데이터 전송 개수를 초과하여 전송하는 경우 데이터 전송을 위한 소비 전력이 증가할 수 있다.
단계(750)에서, 저장된 데이터의 개수가 최대 데이터 전송 개수 이상이 되는 경우, 패킷 생성부(120)는 클라이언트(150)로 저장된 데이터들을 전송하기 위해 패킷으로 생성할 수 있다.
단계(760)에서, 저장된 데이터의 개수가 최대 데이터 전송 개수 미만인 경우, 패킷 생성부(120)는 저장된 데이터 각각에 설정된 전송 임계 시간이 만료되었는지 확인할 수 있다. 상술한 바와 같이 전송 임계 시간은 각 서비스의 지연 허용 시간에 따라 설정되는 시간으로서, 전송 임계 시간 내에 수집된 데이터가 전송 되어야 한다.
저장된 데이터 각각의 지연 허용 시간 중 적어도 하나의 지연 허용 시간이 만료된 경우, 패킷 생성부(120)는 저장된 데이터의 개수가 최대 데이터 전송 개수 미만임에도 불구하고 저장된 데이터를 패킷으로 생성할 수 있다.
단계(770)에서, 패킷 생성부(120)는 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 메모리(140)에 저장된 데이터의 존재 여부를 확인할 수 있다. 상술한 바와 같이, 제1 서비스의 지연 허용 시간이 임계치 이하인 경우 수집된 데이터는 바로 전송되어야 하므로, 패킷 생성부(120)는 메모리(140)에 저장된 데이터의 존재 여부를 확인하여 패킷으로 생성될 데이터를 결정할 수 있다.
단계(780)에서, 메모리(140)에 저장된 데이터가 존재하는 경우, 패킷 생성부(120)는 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성할 수 있다. 단계(790)에서, 메모리(140)에 저장된 데이터가 없는 경우, 패킷 생성부(120)는 수집된 데이터 만을 패킷으로 생성할 수 있다.
도 8은 일실시예에 따른 스케쥴링 맵 생성 방법을 나타낸 흐름도이다.
스케쥴러(200)는 미리 설정된 스케쥴링 맵 크기 이상으로 설정된 스케쥴링 맴 생성 구간 동안, 수집되는 데이터와 동일한 유형의 샘플 데이터를 이용하여 스케쥴링 맵을 생성할 수도 있다.
단계(810)에서, 프로세서(210)는 적어도 하나의 서비스 각각의 지연 허용 시간 및 클라이언트와 서버 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다.
패킷으로 생성하도록 스케쥴링 한다는 것은, 스케쥴링 맵의 시작 시점으로부터 상술한 패킷으로 생성하는 조건 들이 만족되는 시점에서 수집되는 데이터를 패킷으로 생성하도록 하는 것을 의미할 수 있다.
단계(820)에서, 프로세서(210)는 생성하도록 스케쥴링된 패킷을 클라이언트(150)로 송신하도록 스케쥴링하는 스케쥴링 맵을 생성할 수 있다. 생성된 스케쥴링 맵은 송신부(220)를 통해 스케쥴링 맵을 이용하여 실제 수집된 데이터를 패킷으로 생성하여 송수신하는 모듈로 전송될 수 있다.
도 9는 일실시예에 따른 클라이언트로 송신하기 위한 패킷을 생성하는 스케쥴링 방법을 나타낸 흐름도이다.
단계(910)에서, 프로세서(210)는 수집되는 데이터에 대응하는 제1 서비스를 확인할 수 있다. 프로세서(210)는 분석부(240)를 통해 수신되는 수집되는 데이터에 대응하는 서비스 정보에 기초하여 수집되는 데이터에 대응하는 제1 서비스를 확인할 수 있다.
단계(920)에서, 프로세서(210)는 제1 서비스의 지연 허용 시간을 임계치와 비교할 수 있다. 임계치는 미리 설정되는 값으로서, 임계치 이하인 경우 지연 없이 수집된 데이터를 송신해야 하고, 임계치 초과하는 경우, 전송 임계 시간이 만료할 때까지 수집된 데이터를 송신하지 않을 수 있다.
단계(930)에서, 프로세서(210)는 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 수집된 데이터를 메모리(230)에 저장할 수 있다. 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 수집된 데이터를 바로 전송하지 않을 수 있다. 따라서, 제1 서비스의 지연 허용 시간에 따른 전송 임계 시간이 만료될 때까지, 메모리(230)에 수집된 데이터를 저장할 수 있다.
단계(940)에서, 프로세서(210)는 메모리(230)에 저장된 데이터의 개수와 최대 데이터 전송 개수를 비교할 수 있다. 최대 데이터 전송 개수를 초과하는 경우, 하나의 패킷으로 송신할 수 없고 초과하는 데이터를 추가적으로 전송해야 하므로 데이터 전송을 위한 소비 전력이 증가할 수 있다.
단계(950)에서, 저장된 데이터의 개수가 최대 데이터 전송 개수 이상이 되는 경우, 프로세서(210)는 클라이언트(150)로 저장된 데이터들을 전송하기 위해 패킷으로 생성하도록 스케쥴링할 수 있다.
단계(960)에서, 저장된 데이터의 개수가 최대 데이터 전송 개수 미만인 경우, 프로세서(210)는 저장된 데이터 각각에 설정된 전송 임계 시간이 만료되었는지 확인할 수 있다. 전송 임계 시간이 만료된 데이터의 경우, 바로 전송해야 하기 때문이다.
저장된 데이터 각각의 지연 허용 시간 중 적어도 하나의 지연 허용 시간이 만료된 경우, 프로세서(210)는 저장된 데이터의 개수가 최대 데이터 전송 개수 미만임에도 불구하고 저장된 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다.
단계(970)에서, 프로세서(210)는 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 메모리(230)에 저장된 데이터의 존재 여부를 확인할 수 있다. 프로세서(210)는 메모리(230)에 저장된 데이터의 존재 여부를 확인하여 패킷으로 생성되도록 스케쥴링될 데이터를 결정할 수 있다.
단계(980)에서, 메모리(230)에 저장된 데이터가 존재하는 경우, 프로세서(210)는 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성하도록 스케쥴링할 수 있다. 단계(790)에서, 메모리(140)에 저장된 데이터가 없는 경우, 프로세서(210)는 수집된 데이터 만을 패킷으로 생성하도록 스케쥴링할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 클라이언트와 통신을 수행하는 서버의 동작 방법에 있어서,
    적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU(Maximum Transmission Unit)에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하는 단계; 및
    상기 생성된 패킷을 상기 클라이언트로 송신하는 단계
    를 포함하고,
    상기 최대 데이터 전송 개수는, 상기 MTU를 상기 적어도 하나의 서비스에 대응하는 데이터의 크기로 나눈 값의 정수 값인, 서버 동작 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 지연 허용 시간은 상기 적어도 하나의 서비스 별로 다르게 설정되는, 서버 동작 방법.
  4. 제1항에 있어서,
    상기 패킷으로 생성하는 단계는,
    상기 적어도 하나의 서비스 중 수집된 데이터가 대응되는 제1 서비스의 지연 허용 시간을 확인하는 단계;
    상기 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 상기 수집된 데이터를 저장하는 단계; 및
    저장된 데이터의 개수가 상기 최대 데이터 전송 개수 이상인 경우, 상기 저장된 데이터를 패킷으로 생성하는 단계
    를 포함하는, 서버 동작 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 서비스 각각의 전송 주기에 따라 상기 수집된 데이터가 대응되는 서비스를 결정하는 단계; 및
    저장되는 데이터의 시점이 겹치는 경우, 서비스의 지연 허용 시간에 기초하여 상기 수집된 데이터가 대응되는 서비스를 결정하는 단계
    를 더 포함하는, 서버 동작 방법.
  6. 제4항에 있어서,
    상기 패킷으로 생성하는 단계는,
    상기 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 상기 수집된 데이터와 이전에 저장된 데이터를 패킷으로 생성하는 단계
    를 더 포함하는, 서버 동작 방법.
  7. 제6항에 있어서,
    상기 수집된 데이터와 상기 저장된 데이터를 패킷으로 생성하는 단계는,
    상기 이전에 저장된 데이터가 존재하지 않는 경우, 상기 수집된 데이터 만을 패킷으로 생성하는 단계
    를 포함하는, 서버 동작 방법.
  8. 제4항에 있어서,
    상기 수집된 데이터를 저장하는 단계는,
    성가 수집된 데이터에 상기 제1 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하는 단계
    를 포함하는, 서버 동작 방법.
  9. 제8항에 있어서,
    상기 수집된 데이터를 저장하는 단계는,
    상기 수집된 데이터를 상기 전송 임계 시간 순서대로 저장하는, 서버 동작 방법.
  10. 제8항에 있어서,
    상기 패킷으로 생성하는 단계는,
    상기 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 미만인 경우, 상기 저장된 데이터 각각에 설정된 전송 임계 시간을 확인하는 단계; 및
    상기 저장된 데이터 중 적어도 하나의 데이터에 설정된 전송 임계 시간이 만료된 경우, 상기 저장된 데이터를 패킷으로 생성하는 단계
    를 더 포함하는, 서버 동작 방법.
  11. 데이터 전송을 위한 스케쥴링 맵을 이용하여 클라이언트와 통신을 수행하는 서버의 스케쥴링 맵 생성 방법에 있어서,
    적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU(Maximum Transmission Unit)에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계; 및
    상기 생성하도록 스케쥴링된 패킷을 상기 클라이언트로 송신하도록 스케쥴링 하는 스케쥴링 맵을 생성하는 단계
    를 포함하고,
    상기 최대 데이터 전송 개수는, 상기 MTU를 상기 적어도 하나의 서비스에 대응하는 데이터의 크기로 나눈 값의 정수 값인, 서버의 스케쥴링 맵 생성 방법.
  12. 제11항에 있어서,
    상기 패킷으로 생성하도록 스케쥴링하는 단계는,
    상기 적어도 하나의 서비스 중 수집된 데이터가 대응되는 제1 서비스의 지연 허용 시간을 확인하는 단계;
    상기 제1 서비스의 지연 허용 시간이 존재하는 경우, 상기 수집된 데이터를 저장하는 단계; 및
    저장된 참조 데이터의 개수가 상기 최대 데이터 전송 개수 이상인 경우, 상기 저장된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계
    를 포함하는, 서버의 스케쥴링 맵 생성 방법.
  13. 제12항에 있어서,
    상기 패킷으로 생성하도록 스케쥴링하는 단계는,
    상기 제1 서비스의 지연 허용 시간이 존재하지 않는 경우, 상기 수집된 참조 데이터와 상기 저장된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계
    를 더 포함하는, 서버의 스케쥴링 맵 생성 방법.
  14. 제12항에 있어서,
    상기 수집된 데이터를 저장하는 단계는,
    상기 수집된 데이터에 상기 제1 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하는 단계
    를 포함하는, 서버의 스케쥴링 맵 생성 방법.
  15. 제14항에 있어서,
    상기 패킷으로 생성하도록 스케쥴링하는 단계는,
    상기 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 미만인 경우, 상기 저장된 데이터 각각에 설정된 전송 임계 시간을 확인하는 단계; 및
    상기 저장된 데이터 중 적어도 하나의 데이터에 설정된 전송 임계 시간이 도래한 경우, 상기 저장된 데이터를 패킷으로 생성하도록 스케쥴링하는 단계
    를 더 포함하는, 서버의 스케쥴링 맵 생성 방법.
  16. 클라이언트와 통신을 수행하는 서버에 있어서,
    적어도 하나의 서비스 각각의 지연 허용 시간 및 상기 클라이언트와 서버 사이에 규약된 MTU에 따른 최대 데이터 전송 개수에 기초하여, 수집된 데이터를 패킷으로 생성하는 패킷 생성부;
    상기 생성된 패킷을 상기 클라이언트로 송신하는 송신부; 및
    상기 수집된 데이터를 저장하는 메모리
    를 포함하고,
    상기 최대 데이터 전송 개수는, 상기 MTU를 상기 적어도 하나의 서비스에 대응하는 데이터의 크기로 나눈 값의 정수 값인, 서버.
  17. 제16항에 있어서,
    상기 패킷 생성부는,
    상기 적어도 하나의 서비스 중 수집된 데이터가 대응되는 제1 서비스의 지연 허용 시간을 확인하고, 상기 제1 서비스의 지연 허용 시간이 임계치를 초과하는 경우, 상기 수집된 데이터를 상기 메모리에 저장하고, 상기 메모리에 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 이상인 경우, 상기 저장된 데이터를 패킷으로 생성하는, 서버.
  18. 제17항에 있어서,
    상기 패킷 생성부는,
    상기 제1 서비스의 지연 허용 시간이 임계치 이하인 경우, 상기 수집된 데이터와 상기 메모리에 저장된 데이터를 패킷으로 생성하는, 서버.
  19. 제16항에 있어서,
    상기 메모리는, 수집된 데이터에 대응하는 서비스의 지연 허용 시간에 따른 전송 임계 시간을 설정하여 저장하는, 서버.
  20. 제19항에 있어서,
    상기 패킷 생성부는,
    상기 메모리에 저장된 데이터의 개수가 상기 최대 데이터 전송 개수 미만인 경우, 상기 메모리에 저장된 데이터 각각에 설정된 전송 임계 시간을 확인하고, 상기 메모리에 저장된 데이터 중 적어도 하나의 데이터에 설정된 전송 임계 시간이 만료된 경우, 상기 메모리에 저장된 데이터를 패킷으로 생성하는, 서버.
KR1020140091856A 2014-07-21 2014-07-21 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법 Active KR102166361B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140091856A KR102166361B1 (ko) 2014-07-21 2014-07-21 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법
US14/541,918 US10567296B2 (en) 2014-07-21 2014-11-14 Server for performing low power communication and operation method thereof, and scheduling map generation method for performing low power communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140091856A KR102166361B1 (ko) 2014-07-21 2014-07-21 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법

Publications (2)

Publication Number Publication Date
KR20160010997A KR20160010997A (ko) 2016-01-29
KR102166361B1 true KR102166361B1 (ko) 2020-10-15

Family

ID=55075611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140091856A Active KR102166361B1 (ko) 2014-07-21 2014-07-21 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법

Country Status (2)

Country Link
US (1) US10567296B2 (ko)
KR (1) KR102166361B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107995036B (zh) * 2017-11-30 2021-04-20 杭州电魂网络科技股份有限公司 数据传输方法、装置、服务器及可读存储介质
CN114070785A (zh) * 2018-03-29 2022-02-18 华为技术有限公司 一种报文发送的方法、网络节点和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079486A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
US20130282871A1 (en) * 2010-10-20 2013-10-24 Industry-Academy Cooperation Foundation,Yonsei University Streaming service transmitting/receiving device and method
US20140006822A1 (en) * 2012-06-29 2014-01-02 Broadcom Corporation Oversubscribing to a Packet Processing Device to Adjust Power Consumption

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100288158B1 (ko) 1999-01-20 2001-04-16 이종훈 표준 엘에이엔을 이용하는 필드버스 통신 시스템 및 통신 제어방법
KR20060020262A (ko) 2004-08-31 2006-03-06 (주) 콘텔라 이동통신 시스템에서 트래픽 데이터 인터패이스 카드최소화 방법
EP1724983B1 (en) 2005-05-17 2007-10-10 Alcatel Lucent Method of providing a real-time communication connection
KR100872415B1 (ko) 2006-03-03 2008-12-05 삼성전자주식회사 중계기를 사용하는 무선 접속 통신시스템에서 패킷 전송장치 및 방법
US20080062868A1 (en) * 2006-09-07 2008-03-13 Tundra Semiconductor Method and Apparatus for Managing Queues
KR20080079630A (ko) 2007-02-27 2008-09-01 한국전자통신연구원 서로 다른 컨트롤 채널의 비트 전송 방법
US9313800B2 (en) 2009-06-23 2016-04-12 Nokia Technologies Oy Method and apparatus for optimizing energy consumption for wireless connectivity
KR20140042294A (ko) 2012-09-28 2014-04-07 한국전자통신연구원 다중 사용자 물리계층 군집 프레임 전송 기법
WO2014096504A1 (en) * 2012-12-19 2014-06-26 Nokia Corporation Power saving in wlan stations using data accumulation at an access point
US9160665B2 (en) * 2013-04-25 2015-10-13 Telefonaktiebolaget L M Ericsson (Publ) Method and system of transmission management in a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079486A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
US20130282871A1 (en) * 2010-10-20 2013-10-24 Industry-Academy Cooperation Foundation,Yonsei University Streaming service transmitting/receiving device and method
US20140006822A1 (en) * 2012-06-29 2014-01-02 Broadcom Corporation Oversubscribing to a Packet Processing Device to Adjust Power Consumption

Also Published As

Publication number Publication date
US20160021223A1 (en) 2016-01-21
US10567296B2 (en) 2020-02-18
KR20160010997A (ko) 2016-01-29

Similar Documents

Publication Publication Date Title
US20220083386A1 (en) Method and system for neural network execution distribution
CN106786897B (zh) 充电方法、移动终端及充电设备
JP7383578B2 (ja) タイプ2harqコードブック提供方法及び基地局
WO2014176048A1 (en) Method and device for updating client
CN108200180B (zh) 一种用于限制请求频率的方法、装置及计算机设备
CN104837214B (zh) 电子装置和将电子装置连接到网络的方法
CN111083180B (zh) 物联网系统、物联网设备联动方法及装置
US20210105217A1 (en) System and method for a user equipment to process overlapping physical downlink shared channels
US20170078913A1 (en) Electronic device and method for controlling transmission control protocol thereof
US11997706B2 (en) System and method for physical downlink control channel monitoring
KR102166361B1 (ko) 저전력 통신을 수행하기 위한 서버 및 그 동작 방법 및 저전력 통신을 수행하기 위한 스케쥴링 맵 생성 방법
US9843527B2 (en) Method for processing data and an electronic device thereof
KR102133012B1 (ko) 미디어 스트리밍 방법 및 그 전자 장치
US10764836B2 (en) Broadcast message transmission
CN103533545A (zh) 一种获取有效通讯帐号的方法、装置及设备
TW201635760A (zh) 居家控制閘道器及居家控制方法
CN109991967A (zh) 一种机器人运动的控制方法、系统及终端设备
KR102201528B1 (ko) 정보 나이 기반 무선 전력 전송 IoT 네트워크의 스케줄링 방법 및 시스템
CN113242244A (zh) 数据传输方法、装置和系统
US20170286542A1 (en) Intelligent Signal Matching of Disparate Input Signals in Complex Computing Networks
US20140115148A1 (en) Decommission of a Server in Wireless Environment
WO2018042313A2 (en) Techniques for implementing universal commands in a welding or cutting system
US10028216B2 (en) Data transceiving method, modem, and terminal device
CN108334424B (zh) 基于lpwan技术的网络通讯管理平台过滤冗余数据的方法
CN107276853B (zh) 流量处理方法及电子设备、计算机系统

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20140721

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20190717

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20140721

Comment text: Patent Application

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

Comment text: Notification of reason for refusal

Patent event date: 20200525

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20200708

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20201008

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20201012

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20230926

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20240927

Start annual number: 5

End annual number: 5