KR20110039029A - 모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스 - Google Patents

모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스 Download PDF

Info

Publication number
KR20110039029A
KR20110039029A KR1020090096290A KR20090096290A KR20110039029A KR 20110039029 A KR20110039029 A KR 20110039029A KR 1020090096290 A KR1020090096290 A KR 1020090096290A KR 20090096290 A KR20090096290 A KR 20090096290A KR 20110039029 A KR20110039029 A KR 20110039029A
Authority
KR
South Korea
Prior art keywords
client
node
connection
server
long polling
Prior art date
Application number
KR1020090096290A
Other languages
English (en)
Other versions
KR101066328B1 (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 KR1020090096290A priority Critical patent/KR101066328B1/ko
Publication of KR20110039029A publication Critical patent/KR20110039029A/ko
Application granted granted Critical
Publication of KR101066328B1 publication Critical patent/KR101066328B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • H04W28/09Management thereof
    • H04W28/0925Management thereof using policies
    • H04W28/0942Management thereof using policies based on measured or predicted load of entities- or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0215Traffic management, e.g. flow control or congestion control based on user or device properties, e.g. MTC-capable devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/04Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 모바일 환경에서 부하 분산 처리 방법에 관한 것으로서, 본 발명의 부하 분산 처리 방법은 클라이언트에서 서버측에 롱폴링(Long-polling) 연결을 시도하는 단계, 상기 서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인하여, 임계치를 초과하면 하위 레벨의 자식노드 중에서 최적의 노드를 선택하는 단계, 상기 서버는 선택된 노드 정보를 상기 클라이언트에 전달하는 단계 및 상기 클라이언트는 상기 선택된 노드에 롱폴링 연결을 시도하는 단계를 포함한다. 본 발명에 의하면 피어 투 피어망 구성의 모바일 환경에서 푸시 서비스 제공시에 서버의 부하를 다수의 모바일 디바이스에 분산시켜서 구현하기 때문에, 서버의 부하 부담을 덜어주고, 작은 용량의 서버를 이용하여 다수의 모바일 디바이스에 실시간 데이터 동기화를 효율적으로 수행할 수 있는 효과가 있다.
분산, 서버, 클라이언트, 푸시, 모바일, 디바이스, 스마트 폰, 노드.

Description

모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스 {Method for balancing load in mobile environment and mobile device implementing the same}
본 발명은 모바일 환경에서 서버측 부하의 분산처리 방법에 관한 것으로서, 더욱 상세하게는 데이터 푸시를 제공하는 모바일 환경에서 푸시 서버의 롱폴링 연결 유지 부하를 분산시켜 데이터 푸시가 원활하게 수행되도록 하는 방법에 관한 것이다.
오늘날 정보 통신 기술의 비약적인 발전으로 인해 이동통신 시스템에서 제공하는 서비스는 음성 서비스뿐만 아니라 대용량의 데이터를 전송하는 멀티캐스팅 멀티미디어 통신으로 발전해가고 있다. 이는 대량의 데이터 전송이 이동통신 시스템에서 가능해짐에 따라서 이동단말기를 사용하여 각종 정보를 언제 어디서나 제공받을 수 있게 되었다.
이처럼 스마트 폰을 비롯한 모바일 디바이스의 진화에 따라 서버의 데이터를 모바일 디바이스에서 동기화하는 서비스가 활발히 제공되고 있다. 예를 들어, 메일 서비스, 일정 서비스, 연락처 서비스 등의 실시간 데이터 동기화가 있을 수 있다.
이렇게 서버측에서 다수의 모바일 디바이스화 동기화하여 데이터를 전송하는 것을 데이터 푸시(Push) 서비스라고 하는데, 모바일 환경의 특성상 동적 IP 및 사설 IP를 갖는 모바일 디바이스들에게 데이터 푸시 서비스를 제공하기 위해서 주로 롱폴링(Long-polling) 방식이 사용된다.
롱폴링 방식이라 함은 모바일 디바이스에서 서버측으로 연결을 요청하고, 그 연결을 이용하여 서버측에서 디바이스측으로 푸시를 해주는 방식이다. 보통 롱폴링 방식의 연결유지시간은 방화벽이 허용하는 최대 시간이 된다.
그러나, 종래에는 서버측에서 다수의 모바일 디바이스측으로 데이터를 푸시하기 때문에, 모바일 디바이스의 수가 서버의 부하 한계를 초과하게 되는 경우가 발생할 수 있다. 따라서, 롱폴링 연결 방식을 이용한 모바일 데이터 푸시 환경에서 서버의 부하를 효과적으로 분산시킬 수 있는 방안이 필요하다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 모바일 데이터 푸시 환경에서 서버측의 부하를 효과적으로 분산시킬 수 있는 방법 및 이를 구현하는 모바일 디바이스를 제공하는데 그 목적이 있다.
이와 같은 목적을 달성하기 위한 본 발명의 부하 분산 처리 방법은 클라이언트에서 서버측에 롱폴링(Long-polling) 연결을 시도하는 단계, 상기 서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인하여, 임계치를 초과하면 하위 레벨의 자식노드 중에서 최적의 노드를 선택하는 단계, 상기 서버는 선택된 노드 정보를 상기 클라이언트에 전달하는 단계 및 상기 클라이언트는 상기 선택된 노드에 롱폴링 연결을 시도하는 단계를 포함한다.
상기 서버가 자식노드 중에서 최적의 노드를 선택하는 단계는, 자식 노드가 공인 IP를 갖는 노드인지 확인하는 단계, 자식 노드가 공인 IP를 갖는 노드이면 후보 풀에 등록하고, 자식 노드가 공인 IP를 갖는 노드가 아니면 상기 클라이언트의 노드와 같은 사설망 소속 노드인지 확인하는 단계, 상기 클라이언트의 노드와 같은 사설망 소속 노드이면 후보 풀에 등록하고, 그렇지 않으면 후보 풀에서 탈락시키는 단계 및 상기 후보 풀에 등록된 자식 노드 중에서 선정기준에 따라 최적의 노드를 선택하는 단계를 포함할 수 있다.
상기 선정기준은 상기 후보 풀에 등록된 자식 노드 중에서 임계치 대비 현재 연결되어 있는 자식 노드의 수가 작은 자식 노드일수록 우선하는 것일 수 있고, 또는 배터리 잔량이 많은 자식 노드일수록 우선하는 것일 수 있고, 또는 대역폭이 큰 자식 노드일수록 우선하는 것일 수 있고, 또는 연결실패 이력이 적은 자식 노드일수록 우선하는 것일 수 있다.
상기 서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인하여, 임계치를 초과하지 않으면 상기 클라이언트의 디바이스 정보를 저장하는 단계 및 상기 서버는 상기 클라이언트의 롱폴링 연결 요청을 수락하고, 상기 클라이언트와 데이터를 동기화하는 단계를 더 포함할 수 있다.
상기 서버가 상기 클라이언트와 데이터 동기화하는 단계 후에, 상기 서버가 상기 클라이언트와 연결을 계속 유지할 수 있는지 여부를 확인하는 단계, 상기 서버가 상기 클라이언트와의 연결을 계속 유지할 수 없게 되면, 연결을 끊는 단계, 상기 서버가 연결실패 정보를 상기 클라이언트에 전송하는 단계, 상기 클라이언트는 루트 노드에 롱폴링 연결을 시도하는 단계 및 상기 클라이언트는 조부모 노드에 연결실패 사실을 알리는 단계를 더 포함할 수 있다.
상기 디바이스 정보는 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 것일 수 있다.
본 발명의 일 실시예에 따른 모바일 디바이스는 서버에 롱폴링 요청을 하고, 롱폴링이 연결되도록 유도하는 연결 요청자, 송수신되는 데이터를 저장하기 위한 데이터 스토리지, 상기 연결 요청자의 제어에 따라 서버에 롱폴링 연결을 하고 변 경된 데이터를 서버로부터 수신하여 상기 데이터 스토리지를 업데이트하는 롱폴링 클라이언트, 클라이언트로부터 롱폴링 연결 요청을 받아서 롱폴링이 연결되도록 하거나 선택된 자식노드로 상기 클라이언트의 연결 요청을 리다이렉션하는 연결 관리자, 상기 데이터 스토리지의 변경된 데이터를 롱폴링 연결된 클라이언트에 전송하는 롱폴링 서버, 자식 노드들의 상태 데이터를 저장하기 위한 자식노드 상태 데이터 베이스, 자식노드들의 정보를 수신하여 상기 자식노드 상태 데이터 베이스에 저장하고 상기 자식노드들의 정보를 관리하는 자식노드 관리 엔진 및 선택 알고리즘에 따라 롱폴링 연결을 리다이렉션할 자식노드를 선택하는 자식노드 선택 엔진을 포함한다. 본 발명의 일 실시예에서 모바일 디바이스는 데이터 소스로부터 변경된 데이터를 받아 상기 데이터 스토리지를 업데이트하기 위한 데이터 전달 모듈을 더 포함할 수 있다.
상기 연결 요청자는 서버에 롱폴링 요청을 하고, 서버에서 선택된 노드에 디바이스 정보를 업로드하고, 상기 롱폴링 클라이언트가 상기 서버에서 선택된 노드에 롱폴링 연결되도록 유도할 수 있다.
상기 디바이스 정보는 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 것일 수 있다.
상기 연결 관리자는 상기 클라이언트로부터 롱폴링 연결 요청을 받으면, 롱폴링 연결 임계치 초과 여부를 확인하고, 임계치를 초과하지 않으면 상기 클라이언트 정보를 받도록 상기 자식노드 관리 엔진을 제어하고, 상기 롱폴링 서버에게 상기 클라이언트의 롱폴링 요청을 허락하도록 유도할 수 있다.
상기 연결 관리자는 상기 클라이언트로부터의 롱폴링 연결 요청이 롱폴링 연결 임계치를 초과하면, 상기 자식 노드 선택 엔진으로부터 자식 노드 중 하나를 선택하도록 하고, 상기 자식노드 선택 엔진에서 선택된 자식 노드로 상기 클라이언트의 연결 요청을 리다이렉션할 수 있다.
상기 자식노드 상태 데이터 베이스는 자식 노드들의 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 정보를 저장하고 있는 것일 수 있다.
본 발명에 의하면 모바일 환경에서 롱폴링 푸시 서비스 제공시에 서버의 부하를 다수의 모바일 디바이스에 분산시켜서 구현하기 때문에, 서버의 부하 부담을 덜어주고, 작은 용량의 서버를 이용하여 다수의 모바일 디바이스에 실시간 데이터 동기화를 효율적으로 수행할 수 있는 효과가 있다.
이하, 첨부된 도면을 참조해서 본 발명의 실시예를 상세히 설명하면 다음과 같다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일 실시예에 따른 피어 투 피어(peer to peer) 망 트리구조를 보여주는 도면이다.
도 1을 참조하면, 트리구조의 피어 투 피어망에서 루트 노드에 해당하는 푸시 서버(n1)가 최상위 레벨에 위치하고, 그 다음 하위 레벨에 5개의 노드(n21~n25)가 위치하고, 그 다음 하위 레벨에 12개의 노드(n301~n312)가 위치하는 구조이다.
본 발명에서는 루트 노드를 제외한 각 노드가 푸시 서버 및 클라이언트(Server and client, S/C) 역할을 할 수 있다. 즉, 본 발명에서 각 노드는 그 자식노드에 대해서는 서버역할을 하고, 그 부모노드에 대해서는 클라이언트역할을 수행할 수 있다.
도 1에서, 푸시 서버(n1)의 변경된 데이터를 실시간으로 업데이트하기 위한 푸시 서비스, 즉 실시간 동기화 서비스를 원하는 노드들은 루트 노드인 푸시 서버( n1)에 롱폴링 연결요청을 한다. 이러한 연결 요청에 대하여 푸시 서버(n1)는 루트 노드가 가질 수 있는 자식 노드 임계치 이내에서 롱폴링 연결요청을 한 자식노드들에게 데이터를 동기화 한다. 그러나, 푸시 서버(n1)는 루트 노드가 가질 수 있는 자식 노드 임계치를 초과하여 노드로부터 롱폴링 연결요청이 들어오면, 루트 노드보다 한 단계 하위 레벨의 노드들(n21~n25) 중에서 하나의 노드를 선택하여 푸시 서버 역할을 하도록 한다. 예를 들어, n22 노드가 푸시서버(n1)로부터 서버역할을 하는 노드로 선택된다면, n22 노드는 푸시서버로서 롱폴링 연결을 요청한 노드에 데이터를 동기화할 수 있다. 즉, n22 노드는 푸시 서버(n1)에 대해서는 클라이언트 역할이지만, 롱폴링 연결을 요청한 노드(가령, n301 노드)에 대해서는 서버 역할을 수행하게 된다.
만약, n22 노드도 임계치를 초과하게 되면, 같은 방식으로 그 하위 레벨의 노드들(n301~n312) 중 하나를 선택하여 롱폴링 연결 요청을 리다이렉션하게 된다.
이처럼, 본 발명에서는 푸시 서비스를 하기 위해 롱폴링 연결을 하여 데이터 동기화를 하는 경우, 푸시 서버(n1)에서 처리해야 하는 부하를 다른 노드를 이용하여 분산 처리할 수 있으므로, 푸시 서버(n1)의 부하를 분산시키고 보다 원할하게 푸시서비스를 제공할 수 있다.
이제 본 발명에서 서버인 동시에 클라이언트 역할을 하는 각 노드의 실체인 모바일 디바이스에 대하여 도면을 참조하여 상세히 설명하면 다음과 같다.
도 2는 본 발명의 일 실시예에 따른 모바일 디바이스의 내부구조를 보여주는 블록도이다.
도 2를 참조하면, 모바일 디바이스(100)는 연결 요청자(110), 롱폴링 클라이언트(120), 데이터 스토리지(130), 데이터 전달 모듈(140), 롱폴링 서버(150), 연결 관리자(160), 자식노드 관리 엔진(170), 자식노드 선택 엔진(180), 자식노드 상태 데이터 베이스(190)를 포함한다.
연결 요청자(110)는 서버에 롱폴링 요청을 하고, 롱폴링이 연결되도록 유도하는 역할을 한다. 본 발명의 일 실시예에서 연결 요청자(110)는 서버에 롱폴링 요청을 하고, 서버에서 선택된 노드에 디바이스 정보를 업로드하고, 서버에서 선택된 노드에 롱폴링 클라이언트(120)가 롱폴링 연결되도록 유도할 수 있다. 본 발명에서 디바이스 정보는 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함할 수 있다.
롱폴링 클라이언트(120)는 연결 요청자(110)의 제어에 따라 서버에 롱폴링 연결을 하고 변경된 데이터를 서버로부터 수신하여 데이터 스토리지(130)를 업데이트한다.
데이터 스토리지(130)는 송수신되는 데이터를 저장하는 역할을 한다. 본 발명에서 롱폴링 클라이언트(120) 또는 데이터 전달 모듈(140)에 의해 서버 또는 데이터소스로부터 수신한 변경된 데이터를 데이터 스토리지(130) 내에 업데이트한다.
데이터 전달 모듈(140)은 데이터 소스로부터 변경된 데이터를 받아 데이터 스토리지(130)를 업데이트하는 역할을 한다. 본 발명의 일 실시예에서 데이터 전달 모듈(140)은 모바일 디바이스(100)가 루트노드인 경우에만 구비되며, 다른 경우에는 생략될 수 있다.
롱폴링 서버(150)는 데이터 스토리지(130)의 변경된 데이터를 롱폴링 연결된 클라이언트에 전송하는 역할을 한다.
연결 관리자(160)는 클라이언트로부터 롱폴링 연결 요청을 받아서 롱폴링이 연결되도록 하거나 선택된 자식노드로 클라이언트의 연결 요청을 리다이렉션하는 역할을 한다. 본 발명에서 연결 관리자(160)는 클라이언트로부터 롱폴링 연결 요청을 받으면, 롱폴링 연결 임계치 초과 여부를 확인하고, 임계치를 초과하지 않으면 클라이언트 정보를 받도록 자식노드 관리 엔진(170)을 제어하고, 롱폴링 서버(150) 에게 클라이언트의 롱폴링 요청을 허락하도록 유도할 수 있다. 그리고, 연결 관리자(160)는 클라이언트로부터의 롱폴링 연결 요청이 롱폴링 연결 임계치를 초과하면, 자식 노드 선택 엔진(180)으로부터 자식 노드 중 하나를 선택하도록 하고, 자식노드 선택 엔진(180)에서 선택된 자식 노드로 클라이언트의 연결 요청을 리다이렉션할 수 있다.
자식노드 관리 엔진(170)은 자식노드들의 정보를 수신하여 자식노드 상태 데이터 베이스에 저장하고 자식노드들의 정보를 관리하는 역할을 한다.
자식노드 선택 엔진(180)은 선택 알고리즘에 따라 롱폴링 연결을 리다이렉션할 자식노드를 선택하는 역할을 한다.
자식노드 상태 DB(190)는 자식 노드들의 상태 데이터를 저장하는 역할을 한다. 본 발명의 일 실시예에서 자식노드 상태 DB(190)는 자식 노드들의 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 정보를 저장할 수 있다.
본 발명에서 모바일 디바이스(100)는 서버의 기능과 클라이언트의 기능을 동시에 수행한다. 먼저 모바일 디바이스(100)가 서버 역할을 수행할 때의 동작 순서를 설명하면 다음과 같다.
새로운 클라이언트로부터 롱폴링 연결 요청이 들어오면 연결관리자(160)는 임계치 허용여부를 검사한다. 임계치 이내일 경우, 자식노드 관리엔진(170)은 클라이언트 정보를 수신하여 자식노드 상태 DB(190)에 저장하고, 롱폴링 서버(150)는 데이터 스토리지(130)의 변경된 데이터를 롱폴링 연결을 통해 클라이언트에 전송한 다. 반면, 임계치를 초과할 경우, 자식노드 선택 엔진(180)에서 선택된 노드로 롱폴링 연결 요청을 리다이렉션 한다.
다음, 모바일 디바이스(100)가 클라이언트 역할을 수행할 때의 동작 순서를 설명하면 다음과 같다.
연결 요청자(110)는 루트 노드의 푸시 서버에 롱폴링 연결 요청을 한다. 그리고, 롱폴링 연결 요청이 루트 노드의 푸시 서버의 허용치 이내일 경우 모바일 디바이스(100)의 정보를 루트 노드에 업로드하고, 롱폴링 클라이언트(120)가 루트 노드의 푸시 서버와 롱폴링 연결을 유지하면서 푸시 서버로부터 변경된 데이터를 전송받는다. 롱폴링 연결이 푸시 서버의 임계치를 초과할 경우, 리다이렉션을 거쳐 연결 허용 노드를 대상으로 롱폴링 연결 요청을 다시 시도한다.
도 3은 본 발명의 일 실시예에 따른 모바일 환경에서 부하 분산 처리 방법을 보여주는 흐름도이다.
도 3을 참조하면, 클라이언트에서 서버측에 롱폴링(Long-polling) 연결을 시도한다(S301).
서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인한다(S303). 서버는 클라이언트와의 연결용량이 임계치를 초과하면 하위 레벨의 자식노드 중에서 최적의 노드를 선택한다(S305). 그리고, 선택된 노드 정보를 클라이언트에 전달한다. 클라이언트측에서는 선택된 노드에 롱폴링 연결을 시도한다(S307).
S303 단계에서 서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인 하여, 임계치를 초과하지 않으면 클라이언트의 디바이스 정보를 저장한다(S309). 본 발명에서 디바이스 정보는 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함할 수 있다.
서버는 클라이언트의 롱폴링 연결 요청을 수락하고, 클라이언트와 데이터를 동기화한다(S311). 그리고, 서버가 클라이언트와의 연결을 계속 유지할 수 있는지 여부를 확인한다(S313). 서버가 클라이언트와의 연결을 계속 유지할 수 없게 되면, 클라이언트는 서버와의 연결 실패를 인지한다(S315). 클라이언트는 루트 노드에 롱폴링 연결을 시도한다(S317). 그리고, 클라이언트는 조부모 노드에 연결실패 사실을 알린다(S319).
S305 단계에서 서버가 자식노드 중에서 최적의 노드를 선택하는 과정에 대하여 도면을 참조하여 상세히 설명하면 다음과 같다.
도 4는 본 발명의 일 실시예에 따른 자식노드 선택 방법을 보여주는 흐름도이다.
도 4를 참조하면, 서버는 자식 노드가 공인 IP를 갖는 노드인지 확인한다(S401). 자식 노드가 공인 IP를 갖는 노드이면 후보 풀에 등록한다(S405). 그러나, 자식 노드가 공인 IP를 갖는 노드가 아니면 클라이언트의 노드와 같은 사설망 소속 노드인지 확인한다(S403).
만약, 클라이언트의 노드와 같은 사설 IP를 갖는 노드이면 후보 풀에 등록하고(S405), 그렇지 않으면 후보 풀에서 탈락시킨다(S409).
다음, 후보 풀에 등록된 자식 노드 중에서 선정기준에 따라 최적의 노드를 선택한다(S407).
S407 단계에서 선정기준에 대하여 설명하면 다음과 같다. 본 발명에서 최적의 노드를 선정하기 위한 선정기준은 후보 풀에 등록된 자식 노드 중에서 임계치 대비 현재 연결되어 있는 자식 노드의 수가 작은 자식 노드일수록 우선하도록 설정될 수 있다.
또는, 선정기준은 후보 풀에 등록된 자식 노드 중에서 배터리 잔량이 많은 자식 노드일수록 우선하도록 설정될 수 있다.
또는, 선정기준은 후보 풀에 등록된 자식 노드 중에서 대역폭이 큰 자식 노드일수록 우선하도록 설정될 수 있다.
또는, 선정기준은 후보 풀에 등록된 자식 노드 중에서 연결실패 이력이 적은 자식 노드일수록 우선하도록 설정될 수 있다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
도 1은 본 발명의 일 실시예에 따른 피어 투 피어(peer to peer) 망 트리구조를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 모바일 디바이스의 내부구조를 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 모바일 환경에서 부하 분산 처리 방법을 보여주는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 자식노드 선택 방법을 보여주는 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명*
100 모바일 디바이스 110 연결 요청자
120 롱폴링 클라이언트 130 데이터 스토리지
140 데이터 전달 모듈 150 롱폴링 서버
160 연결 관리자 170 자식노드 관리 엔진
180 자식노드 선택 엔진 190 자식노드 상태 DB

Claims (16)

  1. 클라이언트에서 서버측에 롱폴링(Long-polling) 연결을 시도하는 단계;
    상기 서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인하여, 임계치를 초과하면 하위 레벨의 자식노드 중에서 최적의 노드를 선택하는 단계;
    상기 서버는 선택된 노드 정보를 상기 클라이언트에 전달하는 단계; 및
    상기 클라이언트는 상기 선택된 노드에 롱폴링 연결을 시도하는 단계를 포함하는 모바일 환경에서 부하 분산 처리 방법.
  2. 제1항에 있어서,
    상기 서버가 자식노드 중에서 최적의 노드를 선택하는 단계는,
    자식 노드가 공인 IP를 갖는 노드인지 확인하는 단계;
    자식 노드가 공인 IP를 갖는 노드이면 후보 풀에 등록하고, 자식 노드가 공인 IP를 갖는 노드가 아니면 상기 클라이언트의 노드와 같은 사설망 소속 노드인지 확인하는 단계;
    상기 클라이언트의 노드와 같은 사설망 소속 노드이면 후보 풀에 등록하고, 그렇지 않으면 후보 풀에서 탈락시키는 단계; 및
    상기 후보 풀에 등록된 자식 노드 중에서 선정기준에 따라 최적의 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 모바일 환경에서 부하 분산 처리 방 법.
  3. 제2항에 있어서,
    상기 선정기준은 상기 후보 풀에 등록된 자식 노드 중에서 임계치 대비 현재 연결되어 있는 자식 노드의 수가 작은 자식 노드일수록 우선하는 것임을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  4. 제2항에 있어서,
    상기 선정기준은 상기 후보 풀에 등록된 자식 노드 중에서 배터리 잔량이 많은 자식 노드일수록 우선하는 것임을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  5. 제2항에 있어서,
    상기 선정기준은 상기 후보 풀에 등록된 자식 노드 중에서 대역폭이 큰 자식 노드일수록 우선하는 것임을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  6. 제2항에 있어서,
    상기 선정기준은 상기 후보 풀에 등록된 자식 노드 중에서 연결실패 이력이 적은 자식 노드일수록 우선하는 것임을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  7. 제1항에 있어서,
    상기 서버는 클라이언트와의 연결용량이 임계치를 초과하는지 확인하여, 임계치를 초과하지 않으면 상기 클라이언트의 디바이스 정보를 저장하는 단계; 및
    상기 서버는 상기 클라이언트의 롱폴링 연결 요청을 수락하고, 상기 클라이언트와 데이터를 동기화하는 단계를 더 포함하는 것을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  8. 제7항에 있어서,
    상기 서버가 상기 클라이언트와 데이터 동기화하는 단계 후에,
    상기 서버가 상기 클라이언트와 연결을 계속 유지할 수 있는지 여부를 확인하는 단계;
    상기 서버가 상기 클라이언트와의 연결을 계속 유지할 수 없게 되면, 클라이언트가 연결을 끊는 단계;
    상기 클라이언트는 루트 노드에 롱폴링 연결을 시도하는 단계; 및
    상기 클라이언트는 조부모 노드에 연결실패 사실을 알리는 단계를 더 포함하는 것을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  9. 제7항에 있어서,
    상기 디바이스 정보는 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 것임을 특징으로 하는 모바일 환경에서 부하 분산 처리 방법.
  10. 서버에 롱폴링 요청을 하고, 롱폴링이 연결되도록 유도하는 연결 요청자;
    송수신되는 데이터를 저장하기 위한 데이터 스토리지;
    상기 연결 요청자의 제어에 따라 서버에 롱폴링 연결을 하고 변경된 데이터를 서버로부터 수신하여 상기 데이터 스토리지를 업데이트하는 롱폴링 클라이언트;
    클라이언트로부터 롱폴링 연결 요청을 받아서 롱폴링이 연결되도록 하거나 선택된 자식노드로 상기 클라이언트의 연결 요청을 리다이렉션하는 연결 관리자;
    상기 데이터 스토리지의 변경된 데이터를 롱폴링 연결된 클라이언트에 전송하는 롱폴링 서버;
    자식 노드들의 상태 데이터를 저장하기 위한 자식노드 상태 데이터 베이스;
    자식노드들의 정보를 수신하여 상기 자식노드 상태 데이터 베이스에 저장하고 상기 자식노드들의 정보를 관리하는 자식노드 관리 엔진; 및
    선택 알고리즘에 따라 롱폴링 연결을 리다이렉션할 자식노드를 선택하는 자식노드 선택 엔진을 포함하는 모바일 디바이스.
  11. 제10항에 있어서,
    데이터 소스로부터 변경된 데이터를 받아 상기 데이터 스토리지를 업데이트하기 위한 데이터 전달 모듈을 더 포함하는 것을 특징으로 하는 모바일 디바이스.
  12. 제10항에 있어서,
    상기 연결 요청자는 서버에 롱폴링 요청을 하고, 서버에서 선택된 노드에 디바이스 정보를 업로드하고, 상기 롱폴링 클라이언트가 상기 서버에서 선택된 노드에 롱폴링 연결되도록 유도하는 것을 특징으로 하는 모바일 디바이스.
  13. 제12항에 있어서,
    상기 디바이스 정보는 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 것임을 특징으로 하는 모바일 디바이스.
  14. 제10항에 있어서,
    상기 연결 관리자는 상기 클라이언트로부터 롱폴링 연결 요청을 받으면, 롱폴링 연결 임계치 초과 여부를 확인하고, 임계치를 초과하지 않으면 상기 클라이언트 정보를 받도록 상기 자식노드 관리 엔진을 제어하고, 상기 롱폴링 서버에게 상기 클라이언트의 롱폴링 요청을 허락하도록 유도하는 것을 특징으로 하는 모바일 디바이스.
  15. 제14항에 있어서,
    상기 연결 관리자는 상기 클라이언트로부터의 롱폴링 연결 요청이 롱폴링 연결 임계치를 초과하면, 상기 자식 노드 선택 엔진으로부터 자식 노드 중 하나를 선택하도록 하고, 상기 자식노드 선택 엔진에서 선택된 자식 노드로 상기 클라이언트의 연결 요청을 리다이렉션하는 것을 특징으로 하는 모바일 디바이스.
  16. 제10항에 있어서,
    상기 자식노드 상태 데이터 베이스는 자식 노드들의 IP 주소, 공인 IP 여부, 연결용량, 임계치, 배터리 사용량, 연결실패 이력을 포함하는 정보를 저장하고 있 는 것임을 특징으로 하는 모바일 디바이스.
KR1020090096290A 2009-10-09 2009-10-09 모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스 KR101066328B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090096290A KR101066328B1 (ko) 2009-10-09 2009-10-09 모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090096290A KR101066328B1 (ko) 2009-10-09 2009-10-09 모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스

Publications (2)

Publication Number Publication Date
KR20110039029A true KR20110039029A (ko) 2011-04-15
KR101066328B1 KR101066328B1 (ko) 2011-09-20

Family

ID=44045894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090096290A KR101066328B1 (ko) 2009-10-09 2009-10-09 모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스

Country Status (1)

Country Link
KR (1) KR101066328B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014163254A1 (ko) * 2013-04-05 2014-10-09 삼성에스디에스 주식회사 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법
KR20170010471A (ko) 2015-07-20 2017-02-01 주식회사 엘지유플러스 VoLTE 트래픽 분산처리 장치 및 그 분산처리 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101251630B1 (ko) * 2011-04-01 2013-04-08 에스케이텔레콤 주식회사 푸쉬 서비스 제공 시스템 및 방법
KR101595948B1 (ko) * 2014-12-11 2016-02-29 충북대학교 산학협력단 부하 임계치 조정을 통한 p2p 네트워크의 부하 분산 처리 방법 및 이를 구현하는 디바이스

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7686253B2 (en) * 2006-08-10 2010-03-30 The Boeing Company Systems and methods for tracing aircraft vortices
US9398453B2 (en) 2007-08-17 2016-07-19 Qualcomm Incorporated Ad hoc service provider's ability to provide service for a wireless network
KR20090088754A (ko) * 2008-02-15 2009-08-20 포스데이타 주식회사 무선 통신 시스템에서의 제어국 운용 방법 및 그 방법이적용되는 무선 통신 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014163254A1 (ko) * 2013-04-05 2014-10-09 삼성에스디에스 주식회사 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법
KR20170010471A (ko) 2015-07-20 2017-02-01 주식회사 엘지유플러스 VoLTE 트래픽 분산처리 장치 및 그 분산처리 방법

Also Published As

Publication number Publication date
KR101066328B1 (ko) 2011-09-20

Similar Documents

Publication Publication Date Title
US9692849B2 (en) Method and node entity for enhancing content delivery network
US9621620B2 (en) Apparatus and method for providing content with a distributed architecture, and system for providing content with the said apparatus
CN106941507B (zh) 请求消息的调度方法及装置
US9465819B2 (en) Distributed database
CN101938502B (zh) 一种服务器集群系统及负载均衡方法
CN102523256A (zh) 内容的管理方法的方法、装置和系统
RU2008103500A (ru) Структура и методология однорангового группового управления
KR20120113976A (ko) 푸시 알림 서비스를 위한 서버 클러스터 및 방법
CN107835437B (zh) 基于多缓存服务器的调度方法和装置
US20110307564A1 (en) Data node apparatus, peer information acquisition method and system
CN103475566A (zh) 一种实时消息交换平台及分布式集群组建方法
CN112839067B (zh) 一种数据同步方法及装置
KR20100060304A (ko) 네트워크 구조를 고려한 분산형 컨텐트 전달 시스템 및 그 방법
KR101066328B1 (ko) 모바일 환경에서 부하 분산 처리 방법 및 이를 구현하는 모바일 디바이스
CN116303608A (zh) 一种应用服务的数据处理方法和装置
JP2013130960A (ja) 情報処理装置、データ制御方法およびデータ制御プログラム
CN102257792A (zh) 用于包括策略数据库的内容传递的方法
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
US20210037090A1 (en) Systems and Methods for Server Failover and Load Balancing
CN103685344A (zh) 一种用于多p2p缓存节点的协同方法和系统
KR20130074227A (ko) 분산 데이터 관리 시스템 및 그 방법
KR101820462B1 (ko) P2p 네트워크에서 데이터 교환 방법
CN113612735B (zh) 安全存储系统
CN109347991A (zh) 文件分发方法、装置、设备及介质
JP6123189B2 (ja) 双方向対話システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 9