KR20190051585A - 서버 및 이를 이용한 네트워크 시스템 - Google Patents

서버 및 이를 이용한 네트워크 시스템 Download PDF

Info

Publication number
KR20190051585A
KR20190051585A KR1020170147416A KR20170147416A KR20190051585A KR 20190051585 A KR20190051585 A KR 20190051585A KR 1020170147416 A KR1020170147416 A KR 1020170147416A KR 20170147416 A KR20170147416 A KR 20170147416A KR 20190051585 A KR20190051585 A KR 20190051585A
Authority
KR
South Korea
Prior art keywords
client
server
target data
data
target
Prior art date
Application number
KR1020170147416A
Other languages
English (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 KR1020170147416A priority Critical patent/KR20190051585A/ko
Publication of KR20190051585A publication Critical patent/KR20190051585A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • H04L67/327
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 서버 및 이를 이용한 네트워크 시스템에 관한 것으로, 본 발명의 일 양상에 따른 서버는 복수의 클라이언트와 연결되어 상기 복수의 클라이언트들 간의 전송 순서를 설정하는 서버에 있어서, 상기 복수의 클라이언트와 연결되는 통신부; 대상 데이터를 미리 저장하는 저장부; 및 상기 복수의 클라이언트 중 상기 대상 데이터를 획득할 적어도 하나의 대상 클라이언트로 설정하고, 상기 대상 클라이언트 간의 상기 대상 데이터의 전달 순서를 설정하여 상기 대상 클라이언트 중 적어도 일부에게 후순서 클라이언트에 연결하는데 필요한 접속 정보를 전송하고, 상기 대상 클라이언트가 상기 대상 데이터를 순차적으로 획득할 수 있도록 상기 대상 클라이언트 중 최우선 순서로 설정된 상기 대상 클라이언트에게 상기 대상 데이터를 전송하도록 제어하는 제어부;를 포함할 수 있다.

Description

서버 및 이를 이용한 네트워크 시스템{SEVER AND NETWORK SYSTEM USING THE SAME}
본 발명은 서버 및 이를 이용한 네트워크 시스템에 관한 것으로, 보다 상세하게는 대상 데이터를 직렬적으로 전달하는 서버 및 이를 이용한 네트워크 시스템에 관한 것이다.
네트워크는 일상 생활 및 업무 등에서 데이터의 공유, 전송, 수신 등 다양한 용도로 사용되고 있다. 네트워크에 있어서 중요시 되는 요소는 데이터의 전송 및 수신 속도와 데이터 전송의 정확성이다.
일반적인 네트워크 시스템은 서버가 다수의 클라이언트와 연결되어 서버가 각 클라이언트들에게 직접 데이터를 전송해 주는 시스템이다.
종래의 네트워크 시스템은 주로 서버가 클라이언트에게 전송하고자 하는 데이터를 여러 개의 클라이언트에게 동시에 전송하는 클라이언트-서버(C/S, Client/Server) 방식이 사용되어 왔다.
이러한 클라이언트-서버 방식은 동시에 여러 클라이언트에게 데이터를 전송하기 때문에 네트워크의 전송 속도가 분산되어 데이터를 전송을 완료하는데 장시간이 소요된다. 또한, 모든 클라이언트에게 데이터를 전송을 완료하는데 장시간이 소요됨에 클라이언트가 제2 동작을 수행하는데 오랜 시간이 걸린다는 단점이 있다.
본 발명의 일 과제는 대상 데이터를 직렬적으로 전달하도록 전송 순서를 설정하는 서버 및 이를 이용한 네트워크 시스템을 제공하는 것이다.
본 발명의 다른 과제는 클라이언트의 이상 발생에 따라 대상 데이터의 전송 순서를 재설정할 수 있는 서버 및 이를 이용한 네트워크 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따르면, 복수의 클라이언트와 연결되어 상기 복수의 클라이언트들 간의 전송 순서를 설정하는 서버에 있어서, 상기 복수의 클라이언트와 연결되는 통신부; 대상 데이터를 미리 저장하는 저장부; 및 상기 복수의 클라이언트 중 상기 대상 데이터를 획득할 적어도 하나의 대상 클라이언트로 설정하고, 상기 대상 클라이언트 간의 상기 대상 데이터의 전달 순서를 설정하여 상기 대상 클라이언트 중 적어도 일부에게 후순서 클라이언트에 연결하는데 필요한 접속 정보를 전송하고, 상기 대상 클라이언트가 상기 대상 데이터를 순차적으로 획득할 수 있도록 상기 대상 클라이언트 중 최우선 순서로 설정된 상기 대상 클라이언트에게 상기 대상 데이터를 전송하도록 제어하는 제어부;를 포함하는 서버가 제공될 수 있다.
본 발명의 다른 양상에 따르면, 서버와 복수의 클라이언트가 연결되어 대상 데이터를 순차적으로 전송하는 시스템으로, 복수의 클라이언트; 및 상기 복수의 클라이언트 중 상기 대상 데이터를 획득하기로 미리 정해진 상기 클라이언트 간의 상기 대상 데이터 전송 순서를 설정하고 상기 대상 데이터 전송 순서에 기초하여 선순서의 클라이언트가 상기 대상 데이터를 전달할 후순서의 클라이언트에 대한 접속 정보를 데이터를 상기 클라이언트로 전송하고, 상기 복수의 클라이언트로부터 전송 상태에 대한 관제 정보를 수신하는 서버;를 포함하되, 상기 복수의 클라이언트 중 상기 서버가 상기 대상 데이터를 획득하도록 설정한 대상 클라이언트는 상기 대상 클라이언트 전체가 상기 대상 데이터를 획득하도록, 상기 서버가 설정한 전송 순서에 따라 선순서의 클라이언트가 후순서의 클라이언트에게 상기 대상 데이터를 전달하는 것을 특징으로 하는 네트워크 시스템이 제공될 수 있다.
본 발명의 또 다른 양상에 따르면, 획득한 대상 데이터를 후순서의 전자 기기로 전송하는 클라이언트로, 수신한 상기 대상 데이터를 임시 저장하는 데이터 수신 버퍼와 상기 대상 데이터를 전송하기 위하여 상기 대상 데이터를 임시 저장하는 데이터 전송 버퍼가 제공되는 통신부; 및 복수의 전자 기기간의 상기 대상 데이터의 전송 순서를 설정하는 서버로부터 후순서의 전자 기기와의 연결에 필요한 접속 정보를 획득하여 상기 접속 정보에 기초하여 상기 데이터 전송 버퍼에 임시 저장된 상기 대상 데이터를 상기 후순서의 전자기기로 전송하도록 제어하는 제어부;를 포함하는 클라이언트가 제공될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 의하면, 대상 데이터를 직렬적으로 전달하도록 전송 순서를 설정해 최대 전송 속도를 활용할 수 있다.
또 본 발명에 의하면, 클라이언트의 이상 발생에 따라 대상 데이터의 전송 순서를 재설정할 수 있는 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 네트워크 시스템의 환경도이다.
도 2는 본 발명의 일 실시예에 따른 서버의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 클라이언트의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 대상 데이터 전송 및 관제 정보의 전송 흐름을 나타내는 예시도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 전송 및 관제 정보의 다른 전송 흐름을 나타내는 예시도이다.
도 6은 본 발명의 일 실시예에 따른 클라이언트의 대상 데이터 전달의 예시도이다.
도 7은 본 발명의 일 실시예에 따른 네트워크 시스템의 동작 순서도이다.
도 8은 본 발명의 일 실시예에 따른 네트워크 시스템의 장애 발생 시 동작의 예시도이다.
도 9는 본 발명의 일 실시예에 따른 네트워크 시스템의 복구 동작의 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 발명의 일 양상에 따르면, 복수의 클라이언트와 연결되어 상기 복수의 클라이언트들 간의 전송 순서를 설정하는 서버에 있어서, 상기 복수의 클라이언트와 연결되는 통신부; 대상 데이터를 미리 저장하는 저장부; 및 상기 복수의 클라이언트 중 상기 대상 데이터를 획득할 적어도 하나의 대상 클라이언트로 설정하고, 상기 대상 클라이언트 간의 상기 대상 데이터의 전달 순서를 설정하여 상기 대상 클라이언트 중 적어도 일부에게 후순서 클라이언트에 연결하는데 필요한 접속 정보를 전송하고, 상기 대상 클라이언트가 상기 대상 데이터를 순차적으로 획득할 수 있도록 상기 대상 클라이언트 중 최우선 순서로 설정된 상기 대상 클라이언트에게 상기 대상 데이터를 전송하도록 제어하는 제어부;를 포함하는 서버가 제공될 수 있다.
또 상기 서버는 상기 대상 클라이언트 중 적어도 하나의 상기 클라이언트에 이상이 발생하여 후순서의 상기 대상 클라이언트에게 상기 대상 데이터의 전송이 불가능 한 경우, 이상이 발생한 상기 클라이언트를 제외하고 상기 대상 데이터를 전송하도록 상기 대상 데이터의 전송 순서를 재설정할 수 있다.
또 상기 서버는 이상이 발생한 상기 클라이언트가 복구된 경우, 복구된 상기 대상 클라이언트를 추가하여 상기 대상 데이터의 전송 순서를 재설정할 수 있다.
또 상기 서버는 복구된 상기 클라이언트가 가장 후 순위에 위치하도록 상기 대상 데이터의 전송 순서를 재설정할 수 있다.
또 상기 서버는 복구된 상기 클라이언트가 이상이 발생하기 전과 동일한 순서에 위치하도록 상기 대상 데이터의 전송 순서를 재설정할 수 있다.
또 상기 서버는 상기 대상 클라이언트의 상기 대상 데이터의 수신 정도를 고려하여 상기 대상 데이터의 전송 순서를 재설정할 수 있다.
또 상기 서버는 복구된 상기 클라이언트가 상기 대상 데이터를 수신한 정도보다 많은 상기 대상 데이터를 수신한 상기 클라이언트 중 가장 인접한 상기 대상 데이터를 수신한 정도를 갖는 상기 클라이언트의 후순서에 위치하도록 상기 대상 데이터의 전송 순서를 재설정할 수 있다.
또 상기 접속 정보는 IP주소, SSH key, DNS 및 MAC Address 중 적어도 하나를 포함할 수 있다.
본 발명의 다른 양상에 따르면, 서버와 복수의 클라이언트가 연결되어 대상 데이터를 순차적으로 전송하는 시스템으로, 복수의 클라이언트; 및 상기 복수의 클라이언트 중 상기 대상 데이터를 획득하기로 미리 정해진 상기 클라이언트 간의 상기 대상 데이터 전송 순서를 설정하고 상기 대상 데이터 전송 순서에 기초하여 선순서의 클라이언트가 상기 대상 데이터를 전달할 후순위의 클라이언트에 대한 접속 정보를 데이터를 상기 클라이언트로 전송하고, 상기 복수의 클라이언트로부터 전송 상태에 대한 관제 정보를 수신하는 서버;를 포함하되, 상기 복수의 클라이언트 중 상기 서버가 상기 대상 데이터를 획득하도록 설정한 대상 클라이언트는 상기 대상 클라이언트 전체가 상기 대상 데이터를 획득하도록, 상기 서버가 설정한 전송 순서에 따라 선순서의 클라이언트가 후순서의 클라이언트에게 상기 대상 데이터를 전달하는 것을 특징으로 하는 네트워크 시스템이 제공될 수 있다.
또 상기 관제 정보는 상기 클라이언트의 통신 상태, 저장 용량, 수신 상태 및 전송 상태 중 적어도 하나를 포함할 수 있다.
또 상기 클라이언트는 상기 서버에게 미리 정해진 주기로 상기 관제 정보를 상기 서버로 전송할 수 있다.
본 발명의 또 다른 양상에 따르면, 획득한 대상 데이터를 후순서의 전자 기기로 전송하는 클라이언트로, 수신한 상기 대상 데이터를 임시 저장하는 데이터 수신 버퍼와 상기 대상 데이터를 전송하기 위하여 상기 대상 데이터를 임시 저장하는 데이터 전송 버퍼가 제공되는 통신부; 및 복수의 전자 기기간의 상기 대상 데이터의 전송 순서를 설정하는 서버로부터 후순서의 전자 기기와의 연결에 필요한 접속 정보를 획득하여 상기 접속 정보에 기초하여 상기 데이터 전송 버퍼에 임시 저장된 상기 대상 데이터를 상기 후순서의 전자기기로 전송하도록 제어하는 제어부;를 포함하는 클라이언트가 제공될 수 있다.
본 명세서에서 설명되는 서버 및 클라이언트는 서로간의 역할에 따라 구분되는 것으로 임의의 전자기기가 부여된 역할에 따라 서버의 역할을 하거나 클라이언트의 역할을 수행할 수 있다. 여기서 전자기기는 서버 장치, 컴퓨터, 노트북, 테블릿 및 스마트폰 등과 같이 데이터를 전송하고 저장할 수 있는 전자기기를 모두 포함하는 개념일 수 있다.
도 1은 본 발명의 일 실시예에 따른 네트워크 시스템(10000)의 환경도이다.
도 1을 참조하면, 네트워크 시스템(10000)은 서버(1000) 및 복수의 클라이언트(2000)를 포함할 수 있다.
서버(1000)는 복수의 클라이언트(2000)와 연결될 수 있다.
서버(1000)는 복수의 클라이언트(2000) 중 적어도 하나의 클라이언트(2000)로 대상 데이터를 전송할 수 있다. 여기서, 대상 데이터는 예를 들어 미디어 파일 데이터, 어플리케이션 파일 데이터, 소프트웨어 데이터 및 업데이트 데이터 등과 같이 서버(1000)가 복수의 클라이언트(2000)에게 전송하고자 하는 데이터일 수 있다.
서버(1000)는 복수의 클라이언트(2000)간에 데이터를 전송할 순서를 설정할 수 있다.
서버(1000)는 클라이언트(2000)가 대상 데이터를 수신할 서버(1000) 또는 클라이언트(2000)의 접속 정보 및 대상 데이터를 전달할 클라이언트(2000)의 접속 정보 중 적어도 하나를 클라이언트(2000)로 전송할 수 있다. 여기서, 접속 정보는 예를 들어 IP주소, SSH key, DNS, MAC Address 등과 같이 통신 연결을 위한 정보일 수 있다.
서버(1000)는 복수의 클라이언트(2000)는 최우선 순서로 설정된 클라이언트(2000)로 대상 데이터를 전송할 수 있다.
서버(1000)는 클라이언트(2000)로부터 관제 정보를 수신할 수 있다. 여기서, 관제 정보는 서버(1000)가 클라이언트를 관리하기 위해 필요한 정보로 예를 들어 통신 상태, 저장 용량, 수신 상태 및 전송 상태 중 적어도 하나를 포함할 수 있다. 통신 상태는 예를 들어 다른 클라이언트(2000) 또는 서버(1000)와의 통신 연결이 정상인지 여부일 수 있으며, 저장 용량은 예를 들어 클라이언트(2000)가 데이터를 저장할 수 있는 공간에 대한 정보일 수 있다. 수신 상태는 예를 들어 클라이언트(2000)가 대상 데이터를 수신한 정도, 대상 데이터를 수신한 양, 대상 데이터의 오류 여부 등에 대한 정보일 수 있다. 또한 전송 상태는 예를 들어 클라이언트(2000)가 대상 데이터를 전송한 정도, 대상 데이터를 전송한 양, 대상 데이터 전송의 오류 여부 등에 대한 정보일 수 있다.
서버(1000)는 클라이언트(2000)로부터 관제 정보를 수신하여 클라이언트(2000)를 관리할 수 있으며, 클라이언트(2000)로부터 수신한 관제 정보를 저장하여 관제 정보의 이력을 관리할 수 있다.
서버(1000)는 관제 정보에 기초하여 클라이언트(2000)의 이상 여부를 판단할 수 있다. 서버(1000)는 클라이언트(2000)의 이상 발생 시 복수의 클라이언트(2000)간의 데이터 전송 순서를 조정할 수 있다. 또한 서버(1000)는 클라이언트(2000)의 이상 발생이 해결되어 복구 시 복수의 클라이언트(2000)간의 데이터 전송 순서를 조정할 수 있다.
클라이언트(2000)는 서로 연결될 수 있다.
복수의 클라이언트(2000)는 순차적으로 데이터를 전달할 수 있다.
복수의 클라이언트(2000)는 서버(1000)가 설정한 순서에 따라 데이터를 전달할 수 있다.
클라이언트(2000)는 서버(1000)로부터 접속 정보를 수신할 수 있다.
클라이언트(2000)는 접속 정보에 기초하여 후순서의 클라이언트(2000)로 데이터를 전달할 수 있다.
클라이언트(2000)는 서버(1000)로 관제 정보를 전송할 수 있다.
클라이언트(2000)는 서버(1000)로 데이터의 전송 상태에 대한 관제 정보를 전송할 수 있다.
도 2는 본 발명의 일 실시예에 따른 서버(1000)의 블록도이다.
도 2를 참조하면, 서버(1000)는 서버 데이터 통신부(1100), 서버 관제 통신부(1200), 서버 저장부(1300) 및 서버 제어부(1400)를 포함할 수 있다.
서버 데이터 통신부(1100)는 클라이언트(2000)와 연결될 수 있다. 예를 들어 서버 데이터 통신부(1100)는 클라이언트(2000)의 클라이언트 데이터 통신부(2100)와 연결될 수 있다.
서버 데이터 통신부(1100)는 복수의 클라이언트(2000) 중 적어도 하나의 클라이언트(2000)와 연결될 수 있다.
또한, 서버 데이터 통신부(1100)는 적어도 하나의 클라이언트(2000)에 데이터를 전송할 수 있다.
서버 관제 통신부(1200)는 클라이언트(2000)와 연결될 수 있다. 예를 들어 서버 관제 통신부(1200)는 클라이언트(2000)의 클라이언트 관제 통신부(1200)와 연결될 수 있다.
서버 관제 통신부(1200)는 클라이언트(2000)에게 관제 정보를 요청할 수 있다.
서버 관제 통신부(1200)는 클라이언트(2000)로부터 관제 정보를 획득할 수 있다.
이상에서는 서버 데이터 통신부(1100)와 서버 관제 통신부(1200)를 별도의 구성으로 설명하였으나, 이에 한정되지 않고 서버 데이터 통신부(1100)와 서버 관제 통신부(1200)는 하나의 구성으로 제공될 수 있다. 예를 들어, 서버(1000)는 서버 관제 통신부(1200)를 별도로 구비하지 않고, 서버 데이터 통신부(1100)가 서버 관제 통신부(1200)의 기능까지 수행하도록 제공될 수 있다.
서버 저장부(1300)는 데이터를 저장할 수 있다. 예를 들어, 서버 저장부(1300)는 클라이언트(2000)에게 전송할 대상 데이터를 미리 저장할 수 있다.
다른 예를 들어 서버 저장부(1300)는 클라이언트(2000)로부터 획득한 관제 정보를 저장할 수 있다. 또 다른 예를 들어 서버 저장부(1300)는 클라이언트(2000)에 대한 접속 정보를 획득할 수 있다. 또 다른 예를 들어 서버 저장부(1300)는 서버(1000)의 동작에 필요한 프로그램을 미리 저장할 수 있다.
서버 제어부(1400)는 서버(1000)의 동작을 총괄할 수 있다.
예를 들어 서버 제어부(1400)는 복수의 클라이언트(2000) 중 대상 데이터를 획득할 클라이언트(2000)를 클라이언트(2000)를 설정할 수 있다. 다른 예를 들어 서버 제어부(1400)는 클라이언트(2000)간에 대상 데이터를 전달할 순서를 설정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 클라이언트(2000)의 블록도이다.
도 3을 참조하면, 클라이언트(2000)는 클라이언트 데이터 통신부(2100), 클라이언트 관제 통신부(2200), 클라이언트 저장부(2300) 및 클라이언트 제어부(2400)를 포함할 수 있다.
클라이언트 데이터 통신부(2100)는 다른 전자기기와 연결될 수 있다. 예를 들어 클라이언트 데이터 통신부 데이터 통신부(2100)는 다른 클라이언트(2000)와 연결될 수 있다. 다른 예를 들어 클라이언트 데이터 통신부(2100)는 서버(1000)와 연결될 수 있다.
클라이언트 데이터 통신부(2100)는 다른 전자 기기로부터 데이터를 수신할 수 있다. 예를 들어 클라이언트 데이터 통신부(2100)는 다른 클라이언트(2000)로부터 데이터를 수신할 수 있다. 다른 예를 들어 클라이언트 데이터 통신부(2100)는 서버(1000)로부터 데이터를 수신할 수 있다.
클라이언트 데이터 통신부(2100)는 다른 전자기기로 데이터를 전송할 수 있다. 예를 들어 클라이언트 데이터 통신부(2100)는 다른 클라이언트(2000)로 데이터를 전송할 수 있다.
클라이언트 데이터 통신부(2100)는 데이터 통신 모듈(2120), 데이터 전송 버퍼(2140) 및 데이터 수신 버퍼(2160)을 포함할 수 있다.
데이터 통신 모듈(2120)은 통신을 위한 모듈일 수 있다. 예를 들어 데이터 통신 모듈(2120)은 LAN 카드, 블루투스(Bluetooth) 모듈, 지그비(Zigbee) 모듈 등일 수 있다.
데이터 전송 버퍼(2140)는 전송할 데이터를 임시로 저장할 수 있다. 예를 들어 데이터 전송 버퍼(2140)는 데이터를 저장하기 위한 메모리, IC, 자기장 디스크 및 랩 등으로 제공될 수 있다.
데이터 수신 버퍼(2160)는 수신할 데이터를 임시로 저장할 수 있다. 예를 들어 데이터 전송 버퍼(2140)는 데이터를 저장하기 위한 메모리, IC칩, 자기장 디스크 및 랩 등으로 제공될 수 있다.
클라이언트 관제 통신부(2200)는 서버(1000)와 연결될 수 있다. 관제 통신부(2200)는 서버(1000)로 데이터를 전송할 수 있다. 예를 들어 클라이언트 관제 통신부(2200)는 관제 정보를 서버(1000)로 전송할 수 있다.
이상에서는 클라이언트 데이터 통신부(2100)와 클라이언트 관제 통신부(2200)를 별도의 구성으로 설명하였으나, 이에 한정되지 않고 클라이언트 데이터 통신부(2100)와 클라이언트 관제 통신부(2200)는 하나의 구성으로 제공될 수 있다. 예를 들어, 클라이언트(2000)는 클라이언트 관제 통신부(2200)를 별도로 구비하지 않고, 클라이언트 데이터 통신부(2100)가 클라이언트 관제 통신부(2200)의 기능까지 수행하도록 제공될 수 있다.
클라이언트 저장부(1300)는 데이터를 저장할 수 있다. 예를 들어 클라이언트 저장부(1300)는 다른 전자 기기로부터 획득한 대상 데이터를 저장할 수 있다. 다른 예를 들어 클라이언트 저장부(1300)는 클라이언트(2000)의 동작에 필요한 프로그램을 미리 저장할 수 있다.
클라이언트 제어부(1400)는 클라이언트(2000)의 동작을 총괄할 수 있다. 예를 들어 클라이언트 제어부(1400)는 클라이언트(2000)가 후순서의 다른 클라이언트(2000)에게 대상 데이터를 전달하도록 제어할 수 있다.
도 4는 본 발명의 일 실시예에 따른 대상 데이터 전송 및 관제 정보의 전송 흐름을 나타내는 예시도이다.
도 4에 도시된 바와 같이 복수의 클라이언트(2000)는 순차적으로 대상 데이터를 전달할 수 있다.
예를 들어 서버(1000)가 제1 클라이언트(2000a), 제2 클라이언트(2000b), 제3 클라이언트(2000c) 및 제4 클라이언트(2000d)의 순서로 대상 데이터가 전송되도록 설정한 경우, 서버(1000)는 최우선 순서인 제1 클라이언트(2000a)로 대상 데이터를 전달할 수 있다. 제1 클라이언트(2000a)는 후순서인 제2 클라이언트(2000b)에게 대상 데이터를 전송할 수 있다. 제2 클라이언트(2000b)는 후순서인 제3 클라이언트(2000c)에게 대상 데이터를 전송할 수 있다. 제3 클라이언트(2000c)는 후순서인 제4 클라이언트(2000d)에게 대상 데이터를 전송할 수 있다.
서버(1000)는 대상 데이터를 획득하는 클라이언트(2000)들에게 관제 정보를 요청할 수 있다.
클라이언트(2000)는 서버(1000)로 관제 정보를 전송할 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 전송 및 관제 정보의 다른 전송 흐름을 나타내는 예시도이다.
도 5에 도시된 바와 같이 서버(1000)는 연결된 복수의 클라이언트(2000) 중 일부의 클라이언트(2000)가 대상 데이터를 획득하도록 설정할 수 있다. 또한 서버(1000)는 연결된 복수의 클라이언트(2000) 중 일부의 클라이언트(2000)에 대해서는 전송 순서를 설정할 수 있다. 예를 들어 서버(1000)는 연결된 제1 클라이언트(2000a), 제2 클라이언트(2000b), 제3 클라이언트(2000c) 및 제4 클라이언트(2000d) 중 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c)만 대상 데이터를 획득하도록 설정할 수 있다. 또한, 서버(1000)는 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c)의 전송 순서만 설정할 수 있다.
서버(1000)는 대상 데이터를 획득하는 클라이언트(2000)들에게 관제 정보를 요청할 수 있다. 예를 들어 서버(1000)는 대상 데이터를 획득하도록 설정된 클라이언트(2000)에게만 관제 정보를 요청할 수 있다.
도 6은 본 발명의 일 실시예에 따른 클라이언트(2000)의 대상 데이터 전달의 예시도이다.
클라이언트(2000)는 대상 데이터를 수신하고 후순서 클라이언트(2000)에게 대상 데이터를 전송할 수 있다.
예를 들어, 도 6(a)에 도시된 바와 같이 클라이언트(2000)는 시작 시점(t0)부터 대상 데이터를 수신하여 제1 시점(t1)에 대상 데이터의 수신을 완료하고, 제1 시점(t1)부터 대상 데이터를 후순서 클라이언트(2000)에게 전송할 수 있다.
클라이언트(2000)는 대상 데이터의 일부를 수신하고 수신한 일부의 데이터부터 후순서 클라이언트(2000)에게 전송할 수 있다.
예를 들어, 도 6(b)에 도시된 바와 같이 클라이언트(2000)가 대상 데이터를 분할된 패킷으로 수신하는 경우 클라이언트(2000)는 분할된 패킷 중 적어도 하나의 패킷에 대한 수신이 완료되면 수신이 완료된 패킷을 후순서 클라이언트(2000)로 전송할 수 있다. 보다 구체적인 예를 들어, 대상 데이터가 제1 패킷, 제2 패킷 및 제3 패킷으로 분할되어 수신되는 경우, 클라이언트(2000)는 제1 패킷의 전송이 완료되면 제1 패킷을 후순서 클라이언트(2000)에게 전송할 수 있다.
도 6(c) 및 도 6(d)는 통신 상태에 따라 업로드 속도 및 다운로드 속도가 불균형한 상황에서의 대상 데이터의 전달을 나타내는 예시도이다.
예를 들어 도 6(c)와 같이 업로드 속도가 다운로드 속도보다 빨라제1 패킷의 전송이 완료된 상태에서 제2 패킷의 수신이 완료되지 않은 경우 클라이언트(2000)는 수신이 완료된 제1 패킷을 우선 후순서 클라이언트(2000)로 전송하고, 제1 패킷의 전송이 완료된 시점에 제2 패킷의 수신이 완료되지 않은 경우 제2 패킷의 수신이 완료되면 제2 패킷을 전송할 수 있다.
다른 예를 들어 도 6(d)와 같이 다운로드 속도가 업로드 속도보다 빨라 제1 패킷의 전송이 완료되기 이전에 제2 패킷의 수신이 완료된 경우, 클라이언트(2000)는 제1 패킷의 전송을 완료한 후 제2 패킷을 전송할 수 있다.
클라이언트(2000)는 대상 데이터를 전송하는 전자 기기에게 대상 데이터의 전송을 일시 중지할 것을 요청할 수 있다. 예를 들어 도 6(d)와 같이 패킷을 전송하는 속보다 수신하는 속도가 빠른 경우, 데이터 전송 버퍼(2140) 및 데이터 수신 버퍼(2160) 중 적어도 하나의 버퍼에 패킷을 저장할 용량이 부족한 경우가 발생할 수 있다. 이 경우 클라이언트(2000)는 대상 데이터를 전송하는 전자 기기에게 대상 데이터의 전송을 일시 중지할 것을 요청할 수 있다.
도 7은 본 발명의 일 실시예에 따른 네트워크 시스템(10000)의 동작 순서도이다.
이하에서는 설명의 편의를 위하여 도 7에 도시된 클라이언트(2000)들에 있어서, 제1 클라이언트(2000a)는 서버(1000)가 최우선 순서로 설정된 클라이언트(2000)로 가정하고 제2 클라이언트(2000a)는 선순서 클라이언트(2000)로부터 대상 데이터를 수신하여 후순서 클라이언트(2000)에게 전달하는 클라이언트(2000)로 가정하고, 제3 클라이언트(2000c)는 가장 마지막 순서의 클라이언트(2000)로 가정하여 설명하도록 한다. 따라서, 본 발명을 실시함에 있어서 선택에 따라 제2 클라이언트(2000a)와 같이 다른 클라이언트(2000)로부터 대상 데이터를 수신하여 후순서의 클라이언트(2000)로 전달하는 보다 많은 클라이언트(2000)가 추가될 수 있으며, 제2 클라이언트(2000b)가 생략되고 제1 클라이언트(2000a) 및 제2 클라이언트(2000b)만으로 클라이언트(2000)가 제공될 수 있다.
도 7을 참조하면 네트워크 시스템(10000)의 동작은 전송 경로를 설정하는 단계(S100), 대상 데이터를 제1 클라이언트(2000a)로 전송하는 단계(S110), 제1 클라이언트(2000a)가 제2 클라이언트(2000b)로 대상 데이터를 전달하는 단계(S120), 제1 클라이언트(2000a)가 대상 데이터를 저장하는 단계(S130), 제1 클라이언트(2000a)가 관제 정보를 전송하는 단계(S140), 제2 클라이언트(2000b)가 제3 클라이언트(2000c)로 대상 데이터를 전달하는 단계(S150), 제2 클라이언트(2000b)가 대상 데이터를 저장하는 단계(S160), 제2 클라이언트(2000b)가 관제 정보를 전송하는 단계(S170), 제3 클라이언트(2000c)가 대상 데이터를 저장하는 단계(S180) 및 제3 클라이언트(2000c)가 관제 정보를 전송하는 단계(S190)를 포함할 수 있다.
서버(1000)는 전송 경로를 설정할 수 있다(S100).
서버(1000)는 연결되어 있는 클라이언트(2000)들의 접속 정보를 미리 획득할 수 있다. 예를 들어 서버(1000)에 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c)가 연결된 경우 서버(1000)는 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c)에 대한 접속 정보를 미리 획득할 수 있다.
서버(1000)는 연결되어 있는 클라이언트(2000)들 중 대상 데이터를 획득할 대상 클라이언트(2000)를 설정할 수 있다. 예를 들어 서버(1000)는 연결되어 있는 클라이언트(2000) 중 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c)를 대상 데이터를 획득할 대상 클라이언트(2000)로 설정할 수 있다.
서버(1000)는 대상 데이터를 획득할 대상 클라이언트(2000)간의 대상 데이터 전송 순서를 설정할 수 있다. 예를 들어 서버(1000)는 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c) 순서로 대상 데이터를 전달하도록 대상 데이터 전송 순서를 설정할 수 있다.
서버(1000)는 설정된 대상 데이터 전송 순서에 기초하여 대상 데이터를 획득할 대상 클라이언트(2000)에게 접속 정보를 전송할 수 있다. 예를 들어 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제3 클라이언트(2000c) 순서로 대상 데이터를 전달하도록 대상 데이터 전송 순서가 설정된 경우, 제1 클라이언트(2000a)에는 제2 클라이언트(2000b)에 대한 접속 정보를 전송하고, 제2 클라이언트(2000b)에게는 제3 클라이언트(2000b)에 대한 접속 정보를 전송할 수 있다.
서버(1000)는 대상 데이터를 제1 클라이언트(2000a)로 전송할 수 있다(S110).
서버(1000)는 최우선 순서로 설정된 제1 클라이언트(2000a)로 대상 데이터를 전송할 수 있다.
제1 클라이언트(2000a)는 제2 클라이언트(2000b)로 대상 데이터를 전달할 수 있다(S120).
제1 클라이언트(2000a)는 서버(1000)로부터 획득한 접속 정보에 기초하여 서버(1000)로부터 수신한 대상 데이터를 제2 클라이언트(2000b)로 전송할 수 있다. 예를 들어, 제1 클라이언트(2000a)는 서버(1000)로부터 획득한 대상 데이터를 데이터 수신 버퍼(2160)에 임시 저장할 수 있으며, 데이터 수신 버퍼(2160)에 임시 저장된 대상 데이터를 데이터 전송 버퍼(2140)로 전달할 수 있다. 또한 제1 클라이언트(2000a)는 데이터 전송 버퍼(2140)에 임시 저장된 대상 데이터를 제2 클라이언트(2000b)로 전송할 수 있다.
제1 클라이언트(2000a)는 대상 데이터를 저장할 수 있다(S130).
제1 클라이언트(2000a)는 대상 데이터를 클라이언트 저장부(2300)에 저장할 수 있다. 예를 들어, 제1 클라이언트(2000a)는 데이터 수신 버퍼(2160)에 저장된 대상 데이터를 클라이언트 저장부(2300)에 저장할 수 있다. 제1 클라이언트(2000a)는 서버(1000)로부터 대상 데이터가 분할되어 전송되어 데이터 수신 버퍼(2160)에 저장되면, 데이터 수신 버퍼(2160)에 저장된 대상 데이터의 일부를 클라이언트 저장부(2300)에 저장하고, 저장된 대상 데이터의 일부를 통합하여 대상 데이터를 획득할 수 있다.
제1 클라이언트(2000a)는 관제 정보를 전송할 수 있다(S140).
예를 들어 제1 클라이언트(2000a)는 대상 데이터의 수신이 완료되면 서버(1000)로 관제 정보를 전송할 수 있다. 다른 예를 들어 제1 클라이언트(2000a)는 대상 데이터의 전송이 완료되면 서버(1000)로 관제 정보를 전송할 수 있다. 또 다른 예를 들어 제1 클라이언트(2000a)는 미리 정해진 주기에 따라 서버(1000)로 관제 정보를 전송할 수 있다. 보다 구체적인 예를 들어 제1 클라이언트(2000a)는 1분 주기로 서버(1000)에 관제 정보를 전송할 수 있다. 여기서 미리 정해진 주기는 서버(1000)의해 설정될 수 있으며, 제1 클라이언트(2000a)의 동작에 필요한 프로그램에 미리 설정될 수 있다.
또한, 제1 클라이언트(2000a)는 서버(1000)의 관제 정보 전송 요청에 대응하여 관제 정보를 서버(1000)에 전송할 수 있다.
제2 클라이언트(2000b)는 제3 클라이언트(2000c)로 대상 데이터를 전달할 수 있다(S150).
제2 클라이언트(2000b)는 서버(1000)로부터 획득한 접속 정보에 기초하여 서버(1000)로부터 수신한 대상 데이터를 제3 클라이언트(2000c)로 전송할 수 있다. 예를 들어, 제2 클라이언트(2000b)는 서버(1000)로부터 획득한 대상 데이터를 데이터 수신 버퍼(2160)에 임시 저장할 수 있으며, 데이터 수신 버퍼(2160)에 임시 저장된 대상 데이터를 데이터 전송 버퍼(2140)로 전달할 수 있다. 또한 제2 클라이언트(2000b)는 데이터 전송 버퍼(2140)에 임시 저장된 대상 데이터를 제3 클라이언트(2000b)로 전송할 수 있다.
제2 클라이언트(2000b)는 대상 데이터를 저장할 수 있다(S160).
제2 클라이언트(2000b)는 대상 데이터를 클라이언트 저장부(2300)에 저장할 수 있다. 예를 들어, 제2 클라이언트(2000b)는 데이터 수신 버퍼(2160)에 저장된 대상 데이터를 클라이언트 저장부(2300)에 저장할 수 있다. 제2 클라이언트(2000b)는 서버(1000)로부터 대상 데이터가 분할되어 전송되어 데이터 수신 버퍼(2160)에 저장되면, 데이터 수신 버퍼(2160)에 저장된 대상 데이터의 일부를 클라이언트 저장부(2300)에 저장하고, 저장된 대상 데이터의 일부를 통합하여 대상 데이터를 획득할 수 있다.
제2 클라이언트(2000b)는 관제 정보를 전송할 수 있다(S170).
예를 들어 제2 클라이언트(2000b)는 대상 데이터의 수신이 완료되면 서버(1000)로 관제 정보를 전송할 수 있다. 다른 예를 들어 제2 클라이언트(2000b)는 대상 데이터의 전송이 완료되면 서버(1000)로 관제 정보를 전송할 수 있다. 또 다른 예를 들어 제2 클라이언트(2000b)는 미리 정해진 주기에 따라 서버(1000)로 관제 정보를 전송할 수 있다. 보다 구체적인 예를 들어 제2 클라이언트(2000b)는 1분 주기로 서버(1000)에 관제 정보를 전송할 수 있다. 여기서 미리 정해진 주기는 서버(1000)의해 설정될 수 있으며, 제2 클라이언트(2000b)의 동작에 필요한 프로그램에 미리 설정될 수 있다.
또한, 제2 클라이언트(2000b)는 서버(1000)의 관제 정보 전송 요청에 대응하여 관제 정보를 서버(1000)에 전송할 수 있다.
제3 클라이언트(2000c)는 대상 데이터를 저장할 수 있다(S180).
제3 클라이언트(2000c)는 대상 데이터를 클라이언트 저장부(2300)에 저장할 수 있다. 예를 들어, 제2 클라이언트(2000c)는 데이터 수신 버퍼(2160)에 저장된 대상 데이터를 클라이언트 저장부(2300)에 저장할 수 있다. 제3 클라이언트(2000c)는 서버(1000)로부터 대상 데이터가 분할되어 전송되어 데이터 수신 버퍼(2160)에 저장되면, 데이터 수신 버퍼(2160)에 저장된 대상 데이터의 일부를 클라이언트 저장부(2300)에 저장하고, 저장된 대상 데이터의 일부를 통합하여 대상 데이터를 획득할 수 있다.
제3 클라이언트(2000c)는 관제 정보를 전송할 수 있다(S190).
예를 들어 제3 클라이언트(2000c)는 대상 데이터의 수신이 완료되면 서버(1000)로 관제 정보를 전송할 수 있다. 다른 예를 들어 제3 클라이언트(2000c)는 대상 데이터의 전송이 완료되면 서버(1000)로 관제 정보를 전송할 수 있다. 또 다른 예를 들어 제3 클라이언트(2000c)는 미리 정해진 주기에 따라 서버(1000)로 관제 정보를 전송할 수 있다. 보다 구체적인 예를 들어 제3 클라이언트(2000c)는 1분 주기로 서버(1000)에 관제 정보를 전송할 수 있다. 여기서 미리 정해진 주기는 서버(1000)의해 설정될 수 있으며, 제2 클라이언트(2000b)의 동작에 필요한 프로그램에 미리 설정될 수 있다.
또한, 제3 클라이언트(2000c)는 서버(1000)의 관제 정보 전송 요청에 대응하여 관제 정보를 서버(1000)에 전송할 수 있다.
이하에서는 도 8 및 9를 참조하여 본 발명의 일 실시예에 따른 네트워크 시스템(10000)의 장애 발생 시 및 복구 시 동작에 대해서 설명하도록 한다.
이하에서 본 발명의 일 실시예에 따른 네트워크 시스템(10000)의 장애 발생 시 및 복구 시 동작을 설명함에 있어서, 데이터 전송 순서 재설정 이후의 동작은 앞서 설명한 네트워크 시스템(10000)의 동작과 동일한 바, 중복되는 동작에 대해서는 생략하여 설명하도록 한다.
도 8은 본 발명의 일 실시예에 따른 네트워크 시스템(10000)의 장애발생 시 동작의 예시도이다.
네트워크 시스템(10000)에서 순차적으로 대상 데이터를 전송하는 중 일부 클라이언트(2000)에 에러가 발생 할 수 있다. 여기서 에러의 발생은 예를 들어, 네트워크 장애, 전송된 파일의 장애 등일 수 있다. 예를 들어 네트워크 시스템(10000)이 도 8(a)에 도시된 바와 같이 서버(1000)에서 제1 클라이언트(2000a), 제2 클라이언트(2000b), 제3 클라이언트(2000c) 및 제4 클라이언트(2000d)순으로 대상 데이터를 전송한다고 가정하였을 때, 제3 클라이언트(2000c)에 에러가 발생하게 될 수 있다. 제3 클라이언트(2000c)에 에러가 발생하게 되면, 제3 클라이언트(2000c) 이후 순서인 제4 클라이언트(2000d)부터는 대상 데이터를 획득할 수 없게 된다. 따라서, 서버(1000)가 대상 데이터의 전송 경로를 재설정할 필요가 있다.
서버(1000)는 대상 데이터의 전송 경로를 재설정할 수 있다. 예를 들어 서버(1000)는 적어도 하나의 클라이언트(2000)에 에러가 발생하여 대상 데이터의 순차적 전달이 불가능한 경우, 대상 데이터의 전송 경로를 재설정할 수 있다.
서버(1000)는 에러가 발생한 클라이언트(2000)를 제외한 나머지 클라이언트(2000)에 대한 대상 데이터의 전송 경로를 설정할 수 있다.
예를 들어, 서버(1000)는 도 8(b)에 도시된 바와 같이, 제2 클라이언트(2000b)가 제4 클라이언트(2000d)에게 대상 데이터를 전송하도록 대상 데이터의 전송 경로를 수정하여 대상 데이터의 전송 경로를 재설정 할 수 있다. 서버(1000)는 제2 클라이언트(2000b)로 제4 클라이언트(2000d)에 대한 접속 정보를 전송할 수 있다. 제2 클라이언트(2000b)는 제4 클라이언트(2000d)에 대한 접속 정보에 기초하여 대상 데이터를 에러가 발생한 제3 클라이언트(2000c)가 아닌 제4 클라이언트(2000d)로 전송할 수 있다.
전송 경로가 수정된 제2 클라이언트(2000b)는 제4 클라이언트(2000d)가 대상 데이터를 수신한 정도를 고려하여 제4 클라이언트(2000d)로 대상 데이터를 전송할 수 있다. 예를 들어, 도 8(C)와 같이 제1 클라이언트(2000a)가 100을 전송 받고, 제2 클라이언트(2000b)가 90을 전송 받고, 제3 클라이언트(2000c)가 80을 전송 받고, 제4 클라이언트(2000d)가 70을 전송 받은 상태에서 제3 클라이언트(2000c)에 에러가 발생하여 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제4 클라이언트(2000d)로 대상 데이터의 전송 경로가 재설정된 경우, 도 8(d)에 도시된 바와 같이 제2 클라이언트(2000b)는 제4 클라이언트(2000d)가 전송 받은 70을 고려하여 대상 데이터를 이어 받을 수 있도록 대상 데이터를 전송할 수 있다.
다른 예를 들어, 서버(1000)는 대상 데이터의 전송 경로 전체를 초기화하고, 에러가 발생한 제3 클라이언트(2000c)를 제외한 제1 클라이언트(2000a), 제2 클라이언트(2000b) 및 제4 클라이언트(2000d)에 대한 대상 데이터의 전송 경로를 설정할 수 있다. 즉, 서버(1000)는 대상 데이터를 획득할 대상 클라이언트(2000)에서 제3 클라이언트(2000c)를 제외하여 전송 경로를 설정하고, 설정된 전송 경로에 따라 클라이언트(2000)에 접속 정보를 전송할 수 있다.
도 9는 본 발명의 일 실시예에 따른 네트워크 시스템(10000)의 복구 동작의 예시도이다. 여기서 복구 동작은 에러가 발생 했던 클라이언트(2000)가 정상 동작할 수 있게 되어 다시 대상 데이터를 획득하기 위한 동작일 수 있다.
이하에서는 설명의 편의를 위하여 도 9를 참조하여 도 8의 장애 발생이 해결되어 복구되는 것으로 가정하여 설명하도록 한다.
서버(1000)는 에러가 발생했던 클라이언트(2000)가 정상으로 복구되었는지 여부를 판단할 수 있다. 예를 들어 서버(1000)는 에러가 발생했던 클라이언트(2000)로부터 수신한 관제 정보에 기초하여 에러가 발생했던 클라이언트(2000)가 정상으로 복구되었는지 여부를 판단할 수 있다.
서버(1000)는 에러에서 복구된 클라이언트(2000)를 추가하여 대상 데이터 전송 경로를 재설정할 수 있다. 예를 들어, 서버(1000)는 도 9(a)에 도시된 바와 같이 에러에서 복구된 제3 클라이언트(2000c)를 가장 후순서로 추가하여 대상 데이터 전송 경로를 재설정할 수 있다.
다른 예를 들어 서버(1000)는 도 9(b)에 도시된 바와 같이 에러에서 복구된 클라이언트(2000)를 원래 위치했던 순서에 위치하도록 대상 데이터의 전송 순서를 재설정할 수 있다.
다른 예를 들어 서버(1000)는 에러에서 복구된 클라이언트(2000)를 추가하여 대상 데이터 전송 경로를 재설정하되, 대상 데이터의 전송 정도를 고려하여 대상 데이터 전송 경로를 재설정할 수 있다.
보다 구체적인 예를 들어 도 9(c)에 도시된 바와 같이 제1 클라이언트(2000a)가 및 제2 클라이언트(2000b)가 100을 전송 받고, 제4 클라이언트(2000d)가 90을 전송 받고, 에러에서 복구된 제3 클라이언트(2000c)가 80을 전송 받은 상태라면, 서버(1000)는 전송 받은 정도가 가장 적은 제3 클라이언트(2000c)가 제4 클라이언트(2000d) 뒤의 순서에 위치하도록 대상 데이터 전송 순서를 재설정할 수 있다.
다른 예를 들어, 도 9(d)에 도시된 바와 같이 제1 클라이언트(2000a)가 100을 전송 받고, 제2 클라이언트(2000b)가 90을 전송 받고, 제4 클라이언트(2000d)가 70을 전송 받고, 에러에서 복구된 제3 클라이언트(2000c)가 80을 전송 받은 상태라면, 서버(1000)는 각 클라이언트(2000)의 전송 상태를 고려하여 제3 클라이언트(2000c)가 제2 클라이언트(2000b) 및 제4 클라이언트(2000d) 사이의 순서에 위치하도록 대상 데이터 전송 순서를 재설정할 수 있다.
이상에서 설명된 본 발명의 서버 및 이를 이용한 네트워크 시스템은 서버(1000)와 복수의 클라이언트(2000)가 직렬적으로 연결되어 순차적으로 대상 데이터를 전송함으로써, 서버(1000) 또는 하나의 클라이언트(2000)가 다른 하나의 클라이언트(2000)에게 대상 데이터를 전송하기 때문에 네트워크의 전송 속도를 최대한 활용할 수 있다는 효과가 발생할 수 있다.
또한, 대상 데이터가 순차적으로 전달 되기 때문에 앞선 순서의 클라이언트는 대상 데이터의 수신을 먼저 완료하여 제2 동작을 보다 빨리 수행할 수 있는 효과가 발생할 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
10000: 네트워크 시스템 1000 서버
1100: 서버 데이터 통신부 1200: 서버 관제 통신부
1300: 서버 저장부 1400: 서버 제어부
2000: 클라이언트 2100: 클라이언트 데이터 통신부
2120: 데이터 통신 모듈 2140: 데이터 전송 버퍼
2160: 데이터 수신 버퍼 2160: 데이터 수신 버퍼
2200: 클라이언트 관제 통신부 2300: 클라이언트 저장부
2400: 클라이언트 제어부

Claims (12)

  1. 복수의 클라이언트와 연결되어 상기 복수의 클라이언트들 간의 전송 순서를 설정하는 서버에 있어서,
    상기 복수의 클라이언트와 연결되는 통신부;
    대상 데이터를 미리 저장하는 저장부; 및
    상기 복수의 클라이언트 중 상기 대상 데이터를 획득할 적어도 하나의 대상 클라이언트로 설정하고, 상기 대상 클라이언트 간의 상기 대상 데이터의 전달 순서를 설정하여 상기 대상 클라이언트 중 적어도 일부에게 후순서 클라이언트에 연결하는데 필요한 접속 정보를 전송하고, 상기 대상 클라이언트가 상기 대상 데이터를 순차적으로 획득할 수 있도록 상기 대상 클라이언트 중 최우선 순서로 설정된 상기 대상 클라이언트에게 상기 대상 데이터를 전송하도록 제어하는 제어부;를 포함하는 서버.
  2. 제1 항에 있어서,
    상기 서버는 상기 대상 클라이언트 중 적어도 하나의 상기 클라이언트에 이상이 발생하여 후순서의 상기 대상 클라이언트에게 상기 대상 데이터의 전송이 불가능 한 경우, 이상이 발생한 상기 클라이언트를 제외하고 상기 대상 데이터를 전송하도록 상기 대상 데이터의 전송 순서를 재설정하는 서버.
  3. 제2 항에 있어서,
    상기 서버는 이상이 발생한 상기 클라이언트가 복구된 경우, 복구된 상기 대상 클라이언트를 추가하여 상기 대상 데이터의 전송 순서를 재설정하는 서버.
  4. 제3 항에 있어서,
    상기 서버는 복구된 상기 클라이언트가 가장 후순서에 위치하도록 상기 대상 데이터의 전송 순서를 재설정하는 서버.
  5. 제3 항에 있어서,
    상기 서버는 복구된 상기 클라이언트가 이상이 발생하기 전과 동일한 순서에 위치하도록 상기 대상 데이터의 전송 순서를 재설정하는 서버.
  6. 제3 항에 있어서,
    상기 서버는 상기 대상 클라이언트의 상기 대상 데이터의 수신 정도를 고려하여 상기 대상 데이터의 전송 순서를 재설정하는 서버.
  7. 제6 항에 있어서,
    상기 서버는 복구된 상기 클라이언트가 상기 대상 데이터를 수신한 정도보다 많은 상기 대상 데이터를 수신한 상기 클라이언트 중 가장 인접한 상기 대상 데이터를 수신한 정도를 갖는 상기 클라이언트의 후순서에 위치하도록 상기 대상 데이터의 전송 순서를 재설정하는 서버.
  8. 제1 항에 있어서,
    상기 접속 정보는 IP주소, SSH key, DNS 및 MAC Address 중 적어도 하나를 포함하는 서버.
  9. 서버와 복수의 클라이언트가 연결되어 대상 데이터를 순차적으로 전송하는 시스템으로,
    복수의 클라이언트; 및
    상기 복수의 클라이언트 중 상기 대상 데이터를 획득하기로 미리 정해진 상기 클라이언트 간의 상기 대상 데이터 전송 순서를 설정하고 상기 대상 데이터 전송 순서에 기초하여 선순서의 클라이언트가 상기 대상 데이터를 전달할 후순위의 클라이언트에 대한 접속 정보를 데이터를 상기 클라이언트로 전송하고, 상기 복수의 클라이언트로부터 전송 상태에 대한 관제 정보를 수신하는 서버;를 포함하되,
    상기 복수의 클라이언트 중 상기 서버가 상기 대상 데이터를 획득하도록 설정한 대상 클라이언트는 상기 대상 클라이언트 전체가 상기 대상 데이터를 획득하도록, 상기 서버가 설정한 전송 순서에 따라 선순서의 클라이언트가 후순서의 클라이언트에게 상기 대상 데이터를 전달하는 것을 특징으로 하는 네트워크 시스템.
  10. 제9 항에 있어서,
    상기 관제 정보는 상기 클라이언트의 통신 상태, 저장 용량, 수신 상태 및 전송 상태 중 적어도 하나를 포함하는 네트워크 시스템.
  11. 제10 항에 있어서,
    상기 클라이언트는 상기 서버에게 미리 정해진 주기로 상기 관제 정보를 상기 서버로 전송하는 네트워크 시스템.
  12. 획득한 대상 데이터를 후순서의 전자 기기로 전송하는 클라이언트로,
    수신한 상기 대상 데이터를 임시 저장하는 데이터 수신 버퍼와 상기 대상 데이터를 전송하기 위하여 상기 대상 데이터를 임시 저장하는 데이터 전송 버퍼가 제공되는 통신부; 및
    복수의 전자 기기간의 상기 대상 데이터의 전송 순서를 설정하는 서버로부터 후순서의 전자 기기와의 연결에 필요한 접속 정보를 획득하여 상기 접속 정보에 기초하여 상기 데이터 전송 버퍼에 임시 저장된 상기 대상 데이터를 상기 후순서의 전자기기로 전송하도록 제어하는 제어부;를 포함하는 클라이언트.
KR1020170147416A 2017-11-07 2017-11-07 서버 및 이를 이용한 네트워크 시스템 KR20190051585A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170147416A KR20190051585A (ko) 2017-11-07 2017-11-07 서버 및 이를 이용한 네트워크 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170147416A KR20190051585A (ko) 2017-11-07 2017-11-07 서버 및 이를 이용한 네트워크 시스템

Publications (1)

Publication Number Publication Date
KR20190051585A true KR20190051585A (ko) 2019-05-15

Family

ID=66579824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170147416A KR20190051585A (ko) 2017-11-07 2017-11-07 서버 및 이를 이용한 네트워크 시스템

Country Status (1)

Country Link
KR (1) KR20190051585A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102145579B1 (ko) * 2019-12-30 2020-08-18 남호영 서버와 클라이언트간 데이터 전송 시스템
KR102359681B1 (ko) * 2020-11-13 2022-02-08 위철혁 멀티 클라이언트용 사이버 원격관리 장치
KR102359687B1 (ko) * 2020-11-13 2022-02-08 위철혁 멀티 클라이언트용 사이버 원격관리 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102145579B1 (ko) * 2019-12-30 2020-08-18 남호영 서버와 클라이언트간 데이터 전송 시스템
KR102359681B1 (ko) * 2020-11-13 2022-02-08 위철혁 멀티 클라이언트용 사이버 원격관리 장치
KR102359687B1 (ko) * 2020-11-13 2022-02-08 위철혁 멀티 클라이언트용 사이버 원격관리 장치

Similar Documents

Publication Publication Date Title
CN111723024B (zh) 数据处理方法、装置、系统、客户端服务器及存储服务器
KR20190051585A (ko) 서버 및 이를 이용한 네트워크 시스템
CN108897658B (zh) 主数据库监控方法、装置、计算机设备和存储介质
JP2016096549A (ja) プロセス制御システムに冗長性を提供するための方法および装置
US20130139178A1 (en) Cluster management system and method
EP3930267A1 (en) Link aggregation port switching method, network device and computer storage medium
CN109560835B (zh) 电力通信多通道监测方法、装置、计算机设备和存储介质
US20160277265A1 (en) Distributed stability and quality monitoring, testing, and trending of data communications networks
US9965406B2 (en) Setting method, communication device, and master device
CN111030877A (zh) 主备设备切换方法和装置
US8948020B2 (en) Detecting and isolating dropped or out-of-order packets in communication networks
CN104836679B (zh) 通信异常处理方法及网元设备
CN113645048A (zh) 网卡切换方法、装置以及现场可编程逻辑门阵列fpga
CN113489149A (zh) 基于实时状态感知的电网监控系统业务主节点选取方法
EP3738042B1 (en) Cloudified n-way routing protection at hyper scale
KR101902075B1 (ko) 서버 및 이를 이용한 네트워크 시스템
CN108599984B (zh) 共享端口状态的方法、接入设备及支持双归属保护的系统
US11973687B2 (en) Multilayer decentralized server network
US10491421B2 (en) Ring protection network module
US20150200813A1 (en) Server connection apparatus and server connection method
US12008250B2 (en) Systems and methods for achieving near zero impact during node failure in a cluster system
CN115086173B (zh) 网络升级过程中的可靠性保障方法和装置
CN116915837B (zh) 基于软件定义网络的通信方法及通信系统
WO2021218645A1 (zh) 节点控制的方法、系统以及装置
US20240205139A1 (en) Communication system and communication control method