WO2013176431A1 - 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 - Google Patents

단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 Download PDF

Info

Publication number
WO2013176431A1
WO2013176431A1 PCT/KR2013/004210 KR2013004210W WO2013176431A1 WO 2013176431 A1 WO2013176431 A1 WO 2013176431A1 KR 2013004210 W KR2013004210 W KR 2013004210W WO 2013176431 A1 WO2013176431 A1 WO 2013176431A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
connection
terminal
servers
hash value
Prior art date
Application number
PCT/KR2013/004210
Other languages
English (en)
French (fr)
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 삼성에스디에스 주식회사
Publication of WO2013176431A1 publication Critical patent/WO2013176431A1/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer

Abstract

단말을 서버에 할당하기 위한 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 서버 할당 및 메시징 시스템은, 하나의 서버군을 형성하는 복수 개의 연결 서버; 및 상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 디렉토리 서버를 포함하며, 상기 디렉토리 서버는, 단말로부터 서버 할당 요청을 수신하고, 상기 단말의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당한다.

Description

단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
본 발명은 단말을 복수 개의 연결 서버 중 하나의 서버에 효과적으로 할당하고, 상기 단말에 효율적으로 메시지를 전달하기 위한 기술과 관련된다.
스마트폰 등의 모바일 단말의 사용이 증가하면서, 모바일 단말에 서비스를 제공하기 위한 서버 측 구조 또한 점차 대형화, 복잡화되고 있다. 일반적으로 특정 네트워크 내 엔티티(entity)가 원하는 단말에 메시지를 송신하기 위해서는 먼저 단말과 현재 접속을 유지하고 있는 연결 서버(connection server)를 알아내야 한다. 이를 위하여 상기 엔티티는 접속 정보를 저장하고 있는 데이터베이스에 해당 단말과 접속된 연결 서버의 정보를 질의하며, 상기 질의의 결과를 이용하여 목적지 단말과 접속된 연결 서버로 메시지를 전송한다.
그러나 이와 같은 종래기술에 따를 경우, 단말들로 송신하기 위한 메시지가 증가할수록 데이터베이스로의 액세스 또한 함께 증가하게 되며 이 과정에서 심각한 병목 현상이 발생되는 문제가 있었다.
본 발명의 실시예들은 접속 정보 데이터베이스로의 질의를 최소화함으로써 처리 속도를 향상시킬 수 있는 단말로의 서버 할당 및 단말로의 효율적인 메시징 시스템 및 방법을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 서버 할당 및 메시징 시스템은, 하나의 서버군을 형성하는 복수 개의 연결 서버; 및 상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 디렉토리 서버를 포함하며, 상기 디렉토리 서버는, 단말로부터 서버 할당 요청을 수신하고, 상기 단말의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당한다.
한편, 본 발명의 일 실시예에 따른 디렉토리 서버는, 하나의 서버군을 형성하는 복수 개의 연결 서버에 대하여, 상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 논리 서버군 생성 모듈; 단말로부터 서버 할당 요청을 수신하는 수신 모듈; 상기 서버 할당 요청에 포함된 상기 단말의 식별 정보로부터 해시값을 생성하고, 생성된 상기 단말의 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당하는 서버 할당 모듈; 및 상기 서버 할당 모듈에서 할당된 연결 서버의 정보를 상기 단말로 송신하는 송신 모듈을 포함한다.
한편, 본 발명의 일 실시예에 따른 서버 할당 및 메시징 방법은, 디렉토리 서버에서, 하나의 서버군을 형성하는 복수 개의 연결 서버에 대하여, 상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 단계; 상기 디렉토리 서버에서, 단말로부터 서버 할당 요청을 수신하는 단계; 및 상기 디렉토리 서버에서, 상기 단말의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당하는 단계를 포함한다.
본 발명의 실시예들에 따를 경우, 특정 단말과 접속된 연결 서버의 정보를 알기 위하여 데이터베이스에 액세스하는 횟수를 획기적으로 절감할 수 있으므로 데이터베이스 액세스로 인한 병목 현상을 없앨 수 있으며, 이에 따라 시스템 전체의 처리 성능을 향상시킬 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 서버 할당 및 메시징 시스템(100)을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따라 생성된 논리 서버군을 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 복수 개의 연결 서버(104)에 속한 서버 중 일부가 접속 가능 상태에서 접속 불가 상태로 전환된 예를 설명하기 위한 도면이다.
도 4은 본 발명의 일 실시예에 따라 복수 개의 연결 서버(104)에 속한 서버 중 일부가 접속 불가 상태에서 접속 가능 상태로 전환된 예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 디렉토리 서버(106)의 상세 구성을 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 디렉토리 서버(106)에서의 서버 할당 및 메시징 방법(600)을 설명하기 위한 순서도이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 일 실시예에 따른 서버 할당 및 메시징 시스템(100)을 설명하기 위한 도면이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 서버 할당 및 메시징 시스템(100)은 단말(102), 복수 개의 연결 서버(104), 디렉토리 서버(106), 감시 서버(108), 접속 정보 데이터베이스(110) 및 메시지 송신 서버(112)를 포함하며, 상기 각 구성요소들은 유/무선 네트워크(114)를 통하여 서로 연결되어 데이터를 송수신한다.
단말(102)은 복수 개의 연결 서버(104) 중 하나와 접속을 유지하면서 접속중인 연결 서버로부터 메시지를 수신하기 위한 네트워크 내 구성요소이다. 본 발명의 실시예에서 단말(102)은 이동통신 단말, 스마트폰, 태블릿 PC 등의 모바일 디바이스, 데스크탑 또는 노트북 컴퓨터 등의 개인용 또는 휴대용 사용자 기기들을 포함한다. 한편, 본 발명의 실시에에서 단말(102)은 반드시 클라이언트측 디바이스만을 의미하는 것은 아니며, 애플리케이션 서버 또는 다른 형태의 서버 또한 연결 서버(104)로부터 메시지를 전송받을 경우 본 발명에서의 단말(102)이 될 수 있다.
복수 개의 연결 서버(104)는 단말(102)과 접속되어 단말(102)로 전달될 메시지를 중계하기 위한 서버이다. 본 발명에서는 다수의 단말(102)로 원활한 서비스를 제공하기 위하여 동일한 기능을 수행하는 다수 개의 연결 서버들을 병렬로 배치하여 하나의 서버군을 형성하며, 단말(102)은 소정의 서버 할당 규칙에 따라 상기 서버군에 속한 복수 개의 연결 서버(104) 중 하나에 접속을 수행하게 된다.
디렉토리 서버(106)는 단말(102)로부터 서버 할당 요청을 수신하고, 상기 서버 할당 요청에 따라 복수 개의 연결 서버(104) 중 하나를 단말(102)에 할당한다. 즉, 단말(102)은 서버를 할당 받기 위하여 먼저 디렉토리 서버(106)로 자신이 어떠한 서버에 접속하여야 하는지를 질의하게 된다.
도시된 본 발명의 실시예에서는 복수 개의 연결 서버(104)와 별도로 디렉토리 서버(106)가 존재하는 것으로 도시하였으나, 이는 단지 기능적인 분류에 불과하다. 즉, 디렉토리 서버(106)는 물리적으로 복수 개의 연결 서버(104)와 별도의 컴퓨터 장치로 구현될 수도 있고, 또는 복수 개의 연결 서버(104) 각각이 디렉토리 서버(106)의 역할을 겸할 수 있으며, 두 경우 모두 본 발명의 권리범위 내에 포함됨을 유의한다. 이 경우 디렉토리 서버(106)는 복수 개의 연결 서버(104) 내의 일 구성요소로서 존재하며, 단말(102)은 복수 개의 연결 서버(104) 중 임의로 선택된 하나의 연결 서버에 상기 서버 할당 요청을 송신하여 서버를 할당받을 수 있다.
디렉토리 서버(106)는 복수 개의 연결 서버(104) 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 해시값에 따라 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성한다.
도 2는 본 발명의 일 실시예에 따라 생성된 논리 서버군을 예시한 도면이다. 도면에서는 복수 개의 연결 서버(104)가 서버 A, B, C 및 D의 4개의 서버로 구성되는 예를 도시한 것이나, 복수 개의 연결 서버(104) 내에 포함되는 연결 서버의 개수에는 제한이 없으며, 필요한 개수만큼 연결 서버를 구비할 수 있다.
디렉토리 서버(106)에서 논리 서버군을 생성하는 과정은 다음과 같다.
먼저, 디렉토리 서버(106)는 복수 개의 연결 서버(104) 각각의 식별 정보를 이용하여 각 연결 서버 별로 N개(N은 1 이상의 정수)의 해시값을 생성한다. 이때, 상기 복수 개의 연결 서버(104) 각각의 식별 정보는 예를 들어 각 연결 서버의 IP 또는 맥 어드레스 등이 될 수 있다. 또한, 각 연결 서버 별로 생성되는 N개의 해시값들은 각각 서로 다른 값을 가지도록 구성된다.
예를 들어, 만약 각 연결 서버의 IP를 이용하여 해시값을 생성할 경우에는 다음과 같은 수학식을 이용하여 해시값을 생성할 수 있다.
[수학식 1]
해시값 = 해시함수(서버의 IP주소 + I, I = 1, ...,N)
즉, 각 연결 서버의 IP주소에 1 부터 N 까지의 정수를 차례로 더한 값을 각각 해시함수를 이용하여 해싱(hashing)함으로써 N개의 해시값을 생성할 수 있다. 그러나, 상술한 해시값 생성 방법은 단지 하나의 예일 뿐, 이밖에 위 조건들을 만족하는 어떠한 방법으로도 해시값을 생성할 수 있음은 자명하다.
상기와 같은 방법을 통하여 각 연결 서버 별로 N개씩의 해시값이 생성되면, 디렉토리 서버(106)는 생성된 해시값에 따라 복수 개의 연결 서버(104)를 고리 형태로 배열한다. 예를 들어, 디렉토리 서버(106)는 복수 개의 연결 서버(104)들이 계산된 해시값에 따른 오름차순 또는 내림차순으로 고리 내에 배열되도록 논리 서버군을 생성할 수 있다. 이때, 복수 개의 연결 서버(104) 각각은 생성된 해시값의 개수(N) 만큼 상기 고리 내에 중복되어 배열된다.
만약, 연결 서버 A, B, C 및 D에 대하여 4개씩(N=4)의 해시값을 계산한 결과가 다음과 같다고 가정하자.
서버 A: 0, 54, 20, 72
서버 B: 37, 65, 7, 86
서버 C: 94, 51, 13, 25
서버 D: 16, 46, 61, 82
상기 해시값을 이용하여 4개의 연결 서버를 고리 내에 해시값에 따른 오름차순으로 배열하면 도 2와 같다(도면에서 괄호 안의 숫자는 계산된 해시값을 의미). 도시된 바와 같이, 각 연결 서버 별로 4개씩의 해시값을 계산하였으므로, 논리 서버군 내에서도 동일한 서버가 해시값에 따라 4번씩 중복되어 나타난다.
이와 같이 논리 서버군이 생성된 이후, 디렉토리 서버(106)는 단말(102)로부터 서버 할당 요청을 수신하고, 단말(102)의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 논리 서버군에 포함된 복수 개의 연결 서버 중 하나를 단말(102)에 할당한다.
예를 들어, 디렉토리 서버(106)는 단말(102)로부터 수신된 서버 할당 요청에 포함된 단말(102)의 IP주소 또는 맥 어드레스를 기 설정된 해시함수를 이용하여 해싱함으로써 해시값(클라이언트측 해시값)을 계산할 수 있다.
또한, 상기 서버 할당 규칙은, 예를 들어 단말(102)로부터 생성된 해시값보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 연결 서버를 단말(102)에 할당하도록 구성되거나, 또는 단말(102)로부터 생성된 해시값보다 작은 해시값을 가지는 연결 서버 중 가장 큰 해시값을 가지는 연결 서버를 단말(102)에 할당하도록 구성될 수 있다. 그러나 상술한 서버 할당 규칙은 단지 예시에 불과한 것으로서, 클라이언트의 식별 정보에 따라 연결 서버를 할당하기 위한 어떠한 종류의 규칙 또한 적용 가능하다.
만약 상기 단말의 IP 주소로부터 생성된 해시값이 다음과 같다고 가정하자.
해시함수(클라이언트 IP 주소) = 22
만약 상기 서버 할당 규칙이 단말(102)로부터 생성된 해시값보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 서버를 단말(102)에 할당하도록 구성될 경우, 도 2에서 22보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 연결 서버는 25의 해시값을 가지는 서버 C이므로, 디렉토리 서버(106)는 단말(102)에 서버 C를 할당하고, 이에 따른 서버 할당 메시지를 단말(102)에 송신한다. 그러면 이를 수신한 단말(102)은 서버 C에 접속을 수행한다.
다음으로, 감시 서버(108)는 주키퍼(zookeeper)라고도 하며, 복수 개의 연결 서버(104)들의 동작 상태를 감시하고, 복수 개의 연결 서버(104) 중 적어도 하나의 서버의 동작 상태가 변화할 경우 이를 서버군에 속한 다른 연결 서버들 및 디렉토리 서버(106)에 통지한다. 예를 들어, 감시 서버(108)는 복수 개의 연결 서버(104) 중 어느 하나의 서버의 동작이 중지되어 단말(102)의 접속이 불가능한 경우, 동작이 중지된 서버가 다시 동작할 경우(즉, 접속 가능 상태로 변경될 경우) 또는 새로운 연결 서버가 추가된 경우, 이에 대한 정보를 복수 개의 연결 서버(104) 및 디렉토리 서버(106)에 통지한다. 이에 따라 디렉토리 서버(106)는 현재 어떤 서버가 살아있는지 또는 죽었는지의 정보를 실시간으로 수신할 수 있으며, 이를 이용하여 현재 동작 중인(살아 있는) 서버만을 상기 논리 서버군을 생성하게 된다. 또한 디렉토리 서버(106)는 감시 서버(108)로부터 복수 개의 연결 서버(104) 중 적어도 하나의 서버의 동작 상태 변경을 수신할 경우(즉, 특정 서버가 죽거나 살아난 경우 또는 새로운 서버가 추가된 경우) 기 생성된 논리 서버군에 상기 변경을 반영하여 논리 서버군을 재생성한다.
이와 같이, 본 발명의 실시예에서 복수 개의 연결 서버(104)에 속한 모든 서버들이 항상 접속 가능 상태를 유지하는 것은 아니므로, 디렉토리 서버(106)에서 단말(102)에 연결 서버를 할당하더라도 단말(102)이 할당된 서버에 접속을 시도할 시점에서 해당 서버의 접속이 불가능할 수 있다. 이에 따라 디렉토리 서버(106)는 단말(102)에 연결 서버를 하나만 할당하는 것이 아니라 추가적으로 하나의 연결 서버를 예비적으로 더 할당하도록 구성될 수 있다. 이 경우, 원래의 서버 할당 규칙에 따라 할당되는 서버를 주 서버(primary server)로, 주 서버로의 접속이 불가능할 경우 접속을 수행할 서버를 예비 서버(secondary server)로 부르기로 한다.
상기 예비 서버는, 예를 들어 상기 논리 서버군에 속한 서버 중 주 서버가 없다고 가정할 경우 단말(102)에 할당되었을 것이라고 가정되는 서버가 될 수 있다. 예를 들어, 전술한 실시예에서 단말(102)의 해시값이 22일 경우, 만약 서버 C가 없다고 가정하면 해시값 37을 가지는 서버 B가 할당되었을 것이므로, 디렉토리 서버(106)는 주 서버로 서버 C를, 예비 서버로 서버 B를 할당할 수 있다. 그러나 이와 같은 예비 서버 할당 알고리즘은 예시적인 것으로서, 본 발명은 특정 예비 서버 할당 알고리즘에 한정되는 것은 아님에 유의한다. 이와 같이 주 서버와 예비 서버가 함께 할당될 경우 단말(102)은 먼저 주 서버로의 접속을 시도하고, 주 서버로의 접속이 불가능하다고 판단되는 경우 예비 서버로의 접속을 수행하게 된다.
다음으로, 접속 정보 데이터베이스(110)는 복수 개의 연결 서버(104) 중 하나의 연결 서버와 단말(102)의 접속이 성공적으로 이루어진 경우, 각각의 서버와 연결된 단말(102)의 정보가 등록되는 데이터베이스이다. 즉, 단말(102)과 접속된 서버는 자신과 접속한 클라이언트의 단말(102)의 정보를 접속 정보 데이터베이스(110)에 저장한다. 이때, 상기 논리 서버군에 포함된 연결 서버 중 단말(102)로부터 접속 요청을 수신한 연결 서버는, 자신이 단말(102)에 할당된 주 서버인지 또는 예비 서버인지의 여부를 판단하고 예비 서버인 경우에만 단말(102)을 접속 정보 데이터베이스(110)에 등록하도록 구성될 수 있다. 즉, 상기 논리 서버군에 속한 각 연결 서버는 디렉토리 서버(106)와 동일한 알고리즘(논리 서버 구성 규칙 및 논리 서버 내에서의 서버 할당 규칙)으로 단말(102)이 실제 어느 연결 서버에 접속되어야 하는지를 계산할 수 있으며, 상기 계산 결과 도출된 서버가 자신이 아닐 경우 자신이 예비 서버임을 알 수 있다. 본 발명에서는 이와 같은 계산에 따라 자신이 주 서버가 아닌 경우에만 접속 정보 데이터베이스(110)에 접속 정보를 저장하도록 함으로써 접속 정보 데이터베이스(110)의 데이터량 및 불필요한 네트워크 트래픽을 감소시킬 수 있다. 이와 같이 단말(102)이 예비 서버에 접속되는 경우에만 접속 정보를 저장하는 이유는, 주 서버에 정상적으로 접속된 단말(102)의 경우 접속 정보 데이터베이스(110)을 조회하지 않더라도 상기 단말 할당 규칙에 따라 해당 단말과 연결된 연결 서버 정보를 쉽게 계산할 수 있기 때문이다.
마지막으로, 메시지 송신 서버(112)는 단말(102)로 메시지를 송신하기 위한 서버이다. 본 발명에서 메시지 송신 서버(112)는 메시지를 송신하려는 다른 단말로부터 메시지를 수신하고, 이를 지정된 단말(112)로 전송할 수 있다. 만약 메시지 송신 서버(112)가 다른 단말로부터 메시지를 수신할 경우, 메시지 송신 서버(112)는 상기 다른 단말과 연결된 연결 서버를 경유하여 상기 메시지를 수신할 수 있다. 즉, 이 경우 다음과 같은 경로를 거쳐 메시지가 송신측 단말로부터 수신측 단말로 전송된다.
송신측 단말 -> 송신측 단말과 연결된 연결 서버 -> 메시지 송신 서버 -> 수신측 단말과 연결된 연결 서버 -> 수신측 단말
또한, 실시예에 따라 메시지 송신 서버(112)는 별도의 하드웨어적 구성으로 네트워크 내에 존재하는 것이 아니라, 각 연결 서버(104)들이 메시지 송신 서버(112)의 기능을 겸할 수 있다. 이 경우, 상기 경로는 다음과 같이 구성될 수 있다.
송신측 단말 -> 송신측 단말과 연결된 연결 서버 -> 수신측 단말과 연결된 연결 서버 -> 수신측 단말
즉, 이 경우 송신측 단말과 연결된 연결 서버(104)가 기 설정된 서버 할당 규칙을 이용하여 수신측 단말과 연결된 연결 서버를 알아내고 해당 연결 서버로 메시지를 바로 전달할 수 있다.
또한, 메시지 송신 서버(112)는 다른 단말 뿐만 아니라, 네트워크내 다른 서버(애플리케이션 서버 등)로부터 메시지를 수신하고, 이를 단말(102)로 전송할 수도 있다. 이 경우 메시지 전송 경로는 다음과 같다.
네트워크 내 다른 서버 -> 메시지 송신 서버 -> 수신측 단말과 연결된 연결 서버 -> 수신측 단말
또한, 메시지 송신 서버(112)에서 직접 메시지를 생성하여 단말(102)로 전송하는 것도 가능하며, 이 경우 메시지 전송 경로는 다음과 같다.
메시지 송신 서버 -> 수신측 단말과 연결된 연결 서버 -> 수신측 단말
메시지 송신 서버(112)가 단말(102)로 메시지를 보내기 위해서는, 먼저 단말(102)과 접속된 연결 서버의 정보를 알아야 한다. 이를 위하여, 메시지 송신 서버(112)는 디렉토리 서버(106)와 동일한 논리 서버군 생성 규칙 및 서버 할당 규칙을 이용하여 메시지를 송신한 단말(102)과 현재 접속 중일 것이라도 추정되는 연결 서버를 알아내고, 알아낸 연결 서버로 단말(102)로 보낼 메시지를 송신한다. 그러면 해당 서버는 메시지 송신 서버(112)로부터 수신된 메시지를 단말(102)로 전송한다.
그러나, 만약 알아낸 연결 서버에 단말(102)이 접속되어 있지 않거나 또는 해당 연결 서버가 메시지를 수신할 수 없는 상태인 경우의 경우에는 다음과 같이 처리할 수 있다.
첫번째로, 해당 연결 서버는 자신과 단말(102)이 접속되어 있지 않아 메시지 송신 서버(112)로 송신한 메시지를 해당 단말(102)로 전송할 수 없다는 메시지를 메시지 송신 서버(112)로 송신할 수 있다. 이 경우, 메시지 송신 서버(112)는 접속 정보 데이터베이스(110)에 저장된 접속 정보를 이용하여 단말(102)과 현재 접속 중인 연결 서버를 탐색하고, 탐색된 연결 서버에 메시지를 송신한다. 해당 연결 서버가 메시지를 수신할 수 없는 상태여서 기 설정된 시간 동안 해당 연결 서버로부터 메시지 송신 서버(112)가 전혀 응답을 받지 못할 경우에도 이와 동일하게 처리할 수 있다.
두번째로, 해당 연결 서버는 자신이 직접 접속 정보 데이터베이스(110)에 저장된 접속 정보를 이용하여 단말(102)과 현재 접속 중인 연결 서버를 탐색하고, 탐색된 연결 서버에 메시지를 포워딩(forwarding)하도록 구성될 수도 있다. 이 경우 첫번째 경우와 비교하여 처리 절차가 간단해지게 된다.
또한, 경우에 따라 메시지 송신 서버(112)로부터 메시지를 수신한 연결 서버가 단말(102)과 현재 접속 중인 다른 연결 서버의 정보를 알고 있을 수도 있을 수도 있으며, 이 경우에는 접속 정보 데이터베이스(110)에 저장된 접속 정보를 탐색할 필요 없이 바로 메시지를 포워딩할 수 있다. 이에 대해서는 도 4에서 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따라 복수 개의 연결 서버(104)에 속한 연결 서버 중 일부가 접속 가능 상태에서 접속 불가 상태로 전환된 예를 설명하기 위한 도면이다. 도시된 실시예에서는 서버 C가 접속 불가 상태로 전환된 예를 나타내었다. 도시된 실시예에서는 복수 개의 연결 서버(104) 중 하나의 연결 서버만이 접속 불가 상태로 전환된 예를 나타내었으나, 둘 이상의 연결 서버가 접속 불가 상태로 전환된 경우에도 이와 동일한 알고리즘이 적용된다.
도시된 실시예에서와 같이 서버 C가 접속 불가 상태로 전환된 경우, 디렉토리 서버(106)로부터 서버 C를 할당받은 단말(102)은 먼저 서버 C에 대한 접속을 시도한다. 그러나 서버 C는 현재 접속이 불가능하므로, 단말(102)은 서버 C와 함께 할당된 예비 서버에 접속을 수행한다. 예를 들어, 단말(102)의 해시값이 47일 경우 전술한 알고리즘에 따라 단말(102)은 주 서버로 서버 C(해시값 51), 예비 서버로 서버 A(해시값 54)를 각각 할당받으므로, 예비 서버인 서버 A에 접속하게 된다.
이후, 시간이 지나면 디렉토리 서버(106) 또한 서버 C의 접속 불가 상태를 반영하여 논리 서버군을 재생성하므로, 서버 A는 자연스럽게 단말(102)에 대한 예비 서버가 아닌 주 서버가 된다. 즉, 디렉토리 서버(106)는 기 설정된 주기 별로 각 연결 서버의 상태를 반영하여 논리 서버군을 재생성하도록 구성되는 바, 해당 주기가 경과되면 서버 C는 재생성된 논리 서버군에서 제외되므로 서버 A가 단말(102)에 대한 주 서버가 된다. 상기 주기는 연결 서버 등의 특성을 고려하여 적절하게 정해질 수 있다.
도 4은 본 발명의 일 실시예에 따라 복수 개의 연결 서버(104)에 속한 서버 중 일부가 접속 불가 상태에서 접속 가능 상태로 전환되거나, 또는 새로운 연결 서버가 추가된 예를 설명하기 위한 도면이다. 도시된 실시예에서는 서버 C가 접속 불가 상태에서 접속 가능 상태로 전환된 예를 나타내었다. 도시된 실시예에서는 복수 개의 연결 서버(104) 중 하나의 연결 서버만이 접속 가능 상태로 전환되거나 또는 추가된 예를 나타내었으나, 둘 이상의 연결 서버가 접속 가능 상태로 전환되거나 또는 추가된 경우에도 이와 동일한 알고리즘이 적용된다.
도시된 실시예에서와 같이 서버 C가 접속 불가 상태에서 접속 가능 상태로 전환된 경우, 다른 서버들에 접속된 단말(102) 중 상기 서버 C로 접속되어야 할 단말들이 존재할 수 있다. 예를 들어, 해시값이 11인 단말(102)은 서버 C가 존재하지 않는 환경에서는 서버 D(해시값 16)에 접속되나, 서버 C(해시값 13)가 접속 가능할 경우에는 서버 C에 접속되어야 한다. 따라서 이 경우 각 연결 서버들은 자신에게 접속한 단말(102) 중 새로 추가된 연결 서버에 접속되어야 한다고 판단되는 단말(102)에 추가된 연결 서버로의 접속 변경 요청을 송신하여 각 단말(102)들이 정상적인 주 서버에 접속될 수 있도록 한다.
한편, 이 경우 각 연결 서버들이 동시에 자신에게 접속된 단말(102)로 접속 변경 요청을 송신할 경우에는 일시적으로 새로운 서버로의 접속 요청이 한꺼번에 일어나게 되어 네트워크 트래픽이 순간적으로 폭증할 우려가 있다. 따라서 이를 방지하기 위하여, 각 연결 서버들은 기 설정된 최대 지연 시간의 범위 내에서 임의로 선택된 지연 시간만큼 대기한 후 단말(102)로 주 서버로의 접속 변경 요청을 송신하도록 구성될 수 있다. 예를 들어, 도시된 실시예에서 최대 지연 시간이 1분일 경우, 서버 A는 13초만큼, 서버 B는 32초만큼, 서버 D는 52초만큼 대기한 후 자신에 연결된 단말(102)로 접속 변경 요청을 송신할 수 있으며, 이와 같이 구성됨으로써 시간대별로 트래픽을 분산할 수 있게 된다.
또한, 상기 접속 변경 요청을 송신하기 전이라도, 각 연결 서버들은 자신에게 접속한 단말(102) 중 새로 추가된 연결 서버에 접속되어야 한다고 판단되는 클라이언트에 대한 연결 정보를 추가된 연결 서버에 전송할 수 있다. 이와 같이 구성될 경우 추가된 연결 서버는 자신과 연결되어야 하나 아직 실제로 연결되지 않은 단말(102)로 송신한 메시지를 메시지 송신 서버(112)로부터 수신할 경우, 실제 단말(102)과 접속된 연결 서버로부터 받은 정보를 이용하여 해당 연결 서버로 수신한 메시지를 포워딩할 수 있다.
예를 들어, 도면에서 서버 D에 연결되어 있던 단말(102)의 경우, 서버 C의 추가로 인하여 서버 D가 아닌 서버 C에 연결되어야 할 경우가 발생할 수 있다. 이 경우 서버 D는 소정 시간이 경과한 후 단말(102)로 서버 C로 재접속할 것을 요청하게 된다. 그러나 만약 상기 재접속 수행 전 메시지 송신 서버(112)로부터 단말(102)로 송신할 메시지가 존재하는 경우 해당 메시지는 업데이트된 논리 서버군 정보에 따라 서버 C로 전송되게 된다. 이러한 경우의 효율적인 처리를 위해 서버 D는 단말(102)의 재접속 수행 전까지 해당 단말(112)이 자신과 접속하고 있다는 정보를 서버 C로 전송하게 되며, 이에 따라 서버 C는 메시지 송신 서버(112)로부터 수신된 메시지를 서버 D로 전달하여 단말(112)로 전달될 수 있도록 한다.
도 5는 본 발명의 일 실시예에 따른 디렉토리 서버(106)의 상세 구성을 나타낸 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 디렉토리 서버(106)는 논리 서버군 생성 모듈(500), 수신 모듈(502), 서버 할당 모듈(504) 및 송신 모듈(506)을 포함한다.
논리 서버군 생성 모듈(500)은 하나의 서버군을 형성하는 복수 개의 연결 서버(104) 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 해시값에 따라 복수 개의 연결 서버(104)들이 고리 형태로 배열된 논리 서버군을 생성한다.
전술한 바와 같이, 논리 서버군 생성 모듈(500)은 복수 개의 연결 서버(104)들이 계산된 상기 해시값에 따른 오름차순 또는 내림차순으로 고리 내에 배열되도록 논리 서버군을 생성하도록 구성될 수 있으며, 각 연결 서버들은 상기 해시값의 개수만큼 복수 개의 연결 서버(104)들이 고리 내에 중복되어 배열되게 된다.
또한, 논리 서버군 생성 모듈(500)은, 복수 개의 연결 서버(104)들의 현재 상태 정보를 감시 서버(108) 등으로부터 수신하고, 현재 단말(102)이 접속 가능한 연결 서버들만으로 상기 논리 서버군을 생성할 수 있으며, 복수 개의 연결 서버(104) 중 적어도 하나의 연결 서버의 동작 상태가 변경되는 경우 이를 반영하여 상기 논리 서버군을 재생성하도록 구성될 수 있다.
수신 모듈(502)은 단말(102)로부터 복수 개의 연결 서버(104) 중 하나에 대한 할당 요청을 수신한다.
서버 할당 모듈(504)은 단말(102)로부터 수신한 상기 서버 할당 요청에 포함된 단말(102)의 식별 정보로부터 클라이언트측 해시값을 생성하고, 생성된 클라이언트측 해시값 및 기 설정된 서버 할당 규칙을 이용하여 논리 서버군에 포함된 복수 개의 연결 서버(104) 중 하나를 단말(102)에 할당한다.
상기 서버 할당 규칙은, 예를 들어 단말(102)로부터 생성된 해시값보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 연결 서버를 단말(102)에 할당하도록 구성되거나, 또는 이와 반대로 단말(102)로부터 생성된 해시값보다 작은 해시값을 가지는 연결 서버 중 가장 큰 해시값을 가지는 연결 서버를 단말(102)에 할당하도록 구성될 수 있다. 그러나, 상술한 서버 할당 규칙은 예시일 뿐이며, 본 발명은 특정 서버 할당 규칙에 그 권리범위가 한정되는 것은 아니다.
또한, 서버 할당 모듈(504)은, 상기 서버 할당 규칙에 따른 주 서버(primary server) 이외에 주 서버로의 접속이 불가능할 경우 접속을 수행할 예비 서버(secondary server)를 추가적으로 단말(102)에 할당할 수 있다.
마지막으로 송신 모듈(506)은 서버 할당 모듈(504)에서 할당된 연결 서버의 정보를 단말(102)로 송신한다.
도 6은 본 발명의 일 실시예에 따른 디렉토리 서버(106)에서의 서버 할당 및 메시징 방법(600)을 설명하기 위한 순서도이다.
먼저 디렉토리 서버(106)에서, 하나의 서버군을 형성하는 복수 개의 연결 서버(104) 각각의 식별 정보를 이용하여 각 연결 서버 별로 N개(N은 1 이상의 자연수)의 해시값을 생성한다(602). 상기 해시값 생성과 관련에서는 앞서 설명하였으므로 여기서는 그 상세한 설명을 생략한다.
다음으로 생성된 상기 해시값에 따라 복수 개의 연결 서버(104)들이 고리 형태로 배열된 논리 서버군을 생성한다(604). 본 단계에서는 복수 개의 연결 서버(104)들이 계산된 상기 해시값에 따른 오름차순 또는 내림차순으로 고리 내에 배열되도록 논리 서버군을 생성하도록 구성될 수 있으며, 이에 따라 각 연결 서버들은 상기 해시값의 개수만큼 복수 개의 연결 서버(104)들이 고리 내에 중복되어 배열되게 된다.
또한, 상기 604 단계는, 복수 개의 연결 서버(104)들의 현재 상태 정보를 감시 서버(108) 등으로부터 수신하고, 현재 단말(102)이 접속 가능한 연결 서버들만으로 상기 논리 서버군을 생성하도록 구성될 수 있으며, 복수 개의 연결 서버(104) 중 적어도 하나의 연결 서버의 동작 상태가 변경되는 경우에는 이를 반영하여 상기 논리 서버군을 재생성하도록 구성될 수 있다.
이후 디렉토리 서버(106)에서, 단말(102)로부터 서버 할당 요청을 수신한다(606). 본 순서도에서는 디렉토리 서버(106)에서 논리 서버군을 생성한 이후 단말(102)로부터 서버 할당 요청을 수신하도록 도시되어 있으나, 반드시 그런 것은 아니며, 606 단계는 602단계 및 604 단계와 동시에 수행되거나 또는 그보다 앞서 수행될 수도 있다. 즉, 논리 서버군 생성과 독립적으로, 디렉토리 서버(106)는 언제든 단말(102)로부터 서버 할당 요청을 수신할 수 있으며, 본 발명의 권리범위는 이 모든 경우를 포함하는 것으로 해석되어야 함은 자명한 것이다.
다음으로, 디렉토리 서버(106)에서 단말(102)의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 논리 서버군에 포함된 복수 개의 연결 서버(104) 중 하나를 단말(102)에 할당한다(608).
전술한 바와 같이, 상기 608 단계에서는 상기 서버 할당 규칙에 따른 주 서버(primary server) 뿐만 아니라 주 서버로의 접속이 불가능할 경우 접속을 수행할 예비 서버(secondary server)를 추가적으로 단말(102)에 할당하도록 구성될 수 있다. 이에 따라 디렉토리 서버(106)로부터 주 서버 및 예비 서버를 할당받은 단말(102)은 먼저 주 서버로의 접속을 시도하고, 주 서버로의 접속이 불가능하다고 판단되는 경우 예비 서버로의 접속을 수행하게 된다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
[부호의 설명]
100: 서버 할당 및 메시징 시스템
102: 단말
104: 연결 서버
106: 디렉토리 서버
108: 감시 서버
110: 접속 정보 데이터베이스
112: 메시지 송신 서버
114: 네트워크
500: 논리 서버군 생성 모듈
502: 수신 모듈
504: 서버 할당 모듈
506: 송신 모듈

Claims (30)

  1. 하나의 서버군을 형성하는 복수 개의 연결 서버; 및
    상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 디렉토리 서버를 포함하며,
    상기 디렉토리 서버는, 단말로부터 서버 할당 요청을 수신하고, 상기 단말의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당하는 서버 할당 및 메시징 시스템.
  2. 청구항 1에 있어서,
    상기 디렉토리 서버는, 상기 복수 개의 연결 서버들이 계산된 해시값에 따른 오름차순 또는 내림차순으로 상기 고리 내에 배열되도록 상기 논리 서버군을 생성하는, 서버 할당 및 메시징 시스템.
  3. 청구항 2에 있어서,
    상기 디렉토리 서버는, 각 연결 서버 별로 생성된 해시값의 개수만큼 상기 복수 개의 연결 서버들이 상기 고리 내에 중복되어 배열되도록 상기 논리 서버군을 생성하는, 서버 할당 및 메시징 시스템.
  4. 청구항 1에 있어서,
    상기 서버 할당 규칙은, 상기 단말로부터 생성된 해시값보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 연결 서버를 상기 단말에 할당하도록 구성되거나, 또는 상기 단말로부터 생성된 해시값보다 작은 해시값을 가지는 연결 서버 중 가장 큰 해시값을 가지는 연결 서버를 상기 단말에 할당하도록 구성되는, 서버 할당 및 메시징 시스템.
  5. 청구항 1에 있어서,
    상기 복수 개의 연결 서버들의 동작 상태를 감시하고, 상기 복수 개의 연결 서버 중 적어도 하나의 연결 서버의 동작 상태가 변화할 경우 이를 상기 서버군에 속한 다른 연결 서버들 및 상기 디렉토리 서버에 통지하는 감시 서버를 더 포함하는, 서버 할당 및 메시징 시스템.
  6. 청구항 5에 있어서,
    상기 디렉토리 서버는, 상기 감시 서버로부터 상기 복수 개의 연결 서버 중 적어도 하나의 연결 서버의 동작 상태 변경을 수신할 경우 상기 논리 서버군을 재생성하는, 서버 할당 및 메시징 시스템.
  7. 청구항 6에 있어서,
    상기 디렉토리 서버는, 상기 서버 할당 규칙에 따른 주 서버(primary server) 및 상기 주 서버로의 접속이 불가능할 경우 접속을 수행할 예비 서버(secondary server)를 상기 단말에 할당하며,
    상기 단말은 먼저 상기 주 서버로의 접속을 시도하고, 상기 주 서버로의 접속이 불가능하다고 판단되는 경우 상기 예비 서버로의 접속을 수행하는, 서버 할당 및 메시징 시스템.
  8. 청구항 7에 있어서,
    상기 논리 서버군에 포함된 연결 서버 중 상기 단말로부터 접속 요청을 수신한 연결 서버는, 자신이 상기 단말에 할당된 주 서버인지 또는 예비 서버인지의 여부를 판단하고, 예비 서버인 경우 상기 단말을 접속 정보 데이터베이스에 등록하는, 서버 할당 및 메시징 시스템.
  9. 청구항 8에 있어서,
    상기 단말로부터 접속 요청을 수신한 연결 서버는, 자신이 상기 서버 할당 규칙에 따라 상기 단말에 할당된 연결 서버인지의 여부에 따라 자신이 주 서버인지 또는 예비 서버인지의 여부를 판단하는, 서버 할당 및 메시징 시스템.
  10. 청구항 8에 있어서,
    상기 단말과 연결된 예비 서버는, 상기 감시 서버로부터 상기 주 서버의 동작 상태가 접속 가능 상태로 변경되었음을 수신한 경우, 상기 단말로 상기 주 서버로의 접속 변경 요청을 송신하는, 서버 할당 및 메시징 시스템.
  11. 청구항 10에 있어서,
    상기 단말과 연결된 예비 서버는, 기 설정된 최대 지연 시간의 범위 내에서 임의로 선택된 지연 시간만큼 대기한 후 상기 단말로 상기 주 서버로의 접속 변경 요청을 송신하는, 서버 할당 및 메시징 시스템.
  12. 청구항 10에 있어서,
    상기 단말과 연결된 예비 서버는, 접속 가능 상태로 변경된 상기 주 서버로 상기 단말의 정보를 송신하는, 서버 할당 및 메시징 시스템.
  13. 청구항 1에 있어서,
    상기 서버 할당 규칙에 따라 상기 단말과 현재 접속 중인 연결 서버를 계산하고, 계산된 연결 서버로 상기 단말로 송신한 메시지를 전송하는 메시지 송신 서버를 더 포함하는, 서버 할당 및 메시징 시스템.
  14. 청구항 13에 있어서,
    상기 메시지 송신 서버는, 상기 계산된 연결 서버에 상기 단말이 접속되어 있지 않다고 판단되는 경우 접속 정보 데이터베이스를 이용하여 상기 단말과 현재 접속 중인 연결 서버를 탐색하는, 서버 할당 및 메시징 시스템.
  15. 청구항 13에 있어서,
    상기 메시지를 수신한 연결 서버는, 자신과 상기 단말이 접속되어 있지 않다고 판단되는 경우 접속 정보 데이터베이스를 이용하여 상기 단말과 현재 접속 중인 연결 서버를 탐색하고, 탐색된 연결 서버로 상기 메시지를 포워딩하는, 서버 할당 및 메시징 시스템.
  16. 하나의 서버군을 형성하는 복수 개의 연결 서버에 대하여, 상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 연결 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 논리 서버군 생성 모듈;
    단말로부터 서버 할당 요청을 수신하는 수신 모듈;
    상기 서버 할당 요청에 포함된 상기 단말의 식별 정보로부터 해시값을 생성하고, 생성된 상기 단말의 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당하는 서버 할당 모듈; 및
    상기 서버 할당 모듈에서 할당된 서버의 정보를 상기 단말로 송신하는 송신 모듈을 포함하는 디렉토리 서버.
  17. 청구항 16에 있어서,
    상기 논리 서버군 생성 모듈은, 상기 복수 개의 연결 서버들이 계산된 해시값에 따른 오름차순 또는 내림차순으로 상기 고리 내에 배열되도록 상기 논리 서버군을 생성하는, 디렉토리 서버.
  18. 청구항 17에 있어서,
    상기 논리 서버군 생성 모듈은, 각 연결 서버 별로 생성된 해시값의 개수만큼 상기 복수 개의 연결 서버들이 상기 고리 내에 중복되어 배열되도록 상기 논리 서버군을 생성하는, 디렉토리 서버.
  19. 청구항 17에 있어서,
    상기 서버 할당 규칙은, 상기 단말로부터 생성된 해시값보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 연결 서버를 상기 단말에 할당하도록 구성되거나, 또는 상기 단말로부터 생성된 해시값보다 작은 해시값을 가지는 연결 서버 중 가장 큰 해시값을 가지는 연결 서버를 상기 단말에 할당하도록 구성되는, 디렉토리 서버.
  20. 청구항 16에 있어서,
    상기 논리 서버군 생성 모듈은, 상기 복수 개의 연결 서버 중 현재 단말이 접속 가능한 연결 서버들만으로 상기 논리 서버군을 생성하는, 디렉토리 서버.
  21. 청구항 20에 있어서,
    상기 논리 서버군 생성 모듈은, 상기 복수 개의 연결 서버 중 적어도 하나의 연결 서버의 동작 상태가 변경되는 경우 상기 논리 서버군을 재생성하는, 디렉토리 서버.
  22. 청구항 16에 있어서,
    상기 서버 할당 모듈은, 상기 서버 할당 규칙에 따른 주 서버(primary server) 및 상기 주 서버로의 접속이 불가능할 경우 접속을 수행할 예비 서버(secondary server)를 상기 단말에 할당하는, 디렉토리 서버.
  23. 디렉토리 서버에서, 하나의 서버군을 형성하는 복수 개의 연결 서버에 대하여, 상기 복수 개의 연결 서버 각각의 식별 정보를 이용하여 각 서버 별로 하나 이상의 해시값을 생성하고, 생성된 상기 해시값에 따라 상기 복수 개의 연결 서버들이 고리 형태로 배열된 논리 서버군을 생성하는 단계;
    상기 디렉토리 서버에서, 단말로부터 서버 할당 요청을 수신하는 단계; 및
    상기 디렉토리 서버에서, 상기 단말의 식별 정보로부터 생성된 해시값 및 기 설정된 서버 할당 규칙을 이용하여 상기 논리 서버군에 포함된 상기 복수 개의 연결 서버 중 하나를 상기 단말에 할당하는 단계를 포함하는 서버 할당 및 메시징 방법.
  24. 청구항 23에 있어서,
    상기 논리 서버군 생성 단계는, 상기 복수 개의 연결 서버들이 계산된 해시값에 따른 오름차순 또는 내림차순으로 상기 고리 내에 배열되도록 상기 논리 서버군을 생성하는, 서버 할당 및 메시징 방법.
  25. 청구항 24에 있어서,
    상기 논리 서버군 생성 단계는, 각 서버 별로 생성된 해시값의 개수만큼 상기 복수 개의 연결 서버들이 상기 고리 내에 중복되어 배열되도록 상기 논리 서버군을 생성하는, 서버 할당 및 메시징 방법.
  26. 청구항 23에 있어서,
    상기 서버 할당 규칙은, 상기 단말로부터 생성된 해시값보다 큰 해시값을 가지는 연결 서버 중 가장 작은 해시값을 가지는 연결 서버를 상기 단말에 할당하도록 구성되거나, 또는 상기 단말로부터 생성된 해시값보다 작은 해시값을 가지는 연결 서버 중 가장 큰 해시값을 가지는 연결 서버를 상기 단말에 할당하도록 구성되는, 서버 할당 및 메시징 방법.
  27. 청구항 23에 있어서,
    상기 논리 서버군 생성 단계는, 상기 복수 개의 연결 서버 중 현재 단말이 접속 가능한 연결 서버들만으로 상기 논리 서버군을 생성하는, 서버 할당 및 메시징 방법.
  28. 청구항 27에 있어서,
    상기 논리 서버군 생성 단계는, 상기 복수 개의 연결 서버 중 적어도 하나의 연결 서버의 동작 상태가 변경되는 경우 상기 논리 서버군을 재생성하는, 서버 할당 및 메시징 방법.
  29. 청구항 23에 있어서,
    상기 서버 할당 단계는, 상기 서버 할당 규칙에 따른 주 서버(primary server) 및 상기 주 서버로의 접속이 불가능할 경우 접속을 수행할 예비 서버(secondary server)를 상기 단말에 할당하며,
    상기 디렉토리 서버로부터 상기 주 서버 및 상기 예비 서버를 할당받은 단말은 먼저 상기 주 서버로의 접속을 시도하고, 상기 주 서버로의 접속이 불가능하다고 판단되는 경우 상기 예비 서버로의 접속을 수행하는, 서버 할당 및 메시징 방법.
  30. 청구항 23 내지 29 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2013/004210 2012-05-22 2013-05-13 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 WO2013176431A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120053982A KR101920630B1 (ko) 2012-05-22 2012-05-22 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
KR10-2012-0053982 2012-05-22

Publications (1)

Publication Number Publication Date
WO2013176431A1 true WO2013176431A1 (ko) 2013-11-28

Family

ID=49622473

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/004210 WO2013176431A1 (ko) 2012-05-22 2013-05-13 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법

Country Status (4)

Country Link
US (1) US9350606B2 (ko)
KR (1) KR101920630B1 (ko)
CN (1) CN103428260A (ko)
WO (1) WO2013176431A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015054877A1 (en) * 2013-10-18 2015-04-23 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for data storage and retrieval
US20170004575A1 (en) * 2015-07-01 2017-01-05 Chicago Mercantile Exchange Inc. Dissemination of order status information present on an electronic exchange
US10657061B1 (en) * 2017-09-29 2020-05-19 Amazon Technologies, Inc. Resource distribution using attributes of versioned hash rings
CN109040212B (zh) * 2018-07-24 2021-09-21 苏州科达科技股份有限公司 设备接入服务器集群方法、系统、设备及存储介质
CN109768957B (zh) * 2018-11-30 2020-11-20 视联动力信息技术股份有限公司 一种监控数据的处理方法和系统
CN111147591B (zh) * 2019-12-28 2023-04-07 杭州拓深科技有限公司 一种物联网动态分配设备服务器优化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319689A (ja) * 1996-05-27 1997-12-12 Nec Corp サーバ選択方式
JP2004356829A (ja) * 2003-05-28 2004-12-16 Matsushita Electric Ind Co Ltd データ受信再生方法及びデータ受信再生装置
KR20070044427A (ko) * 2007-04-17 2007-04-27 엔에이치엔(주) 버스형 네트워크 구조의 통신 네트워크 시스템 및 이를이용한 데이터 송수신 방법
KR20110063083A (ko) * 2009-12-04 2011-06-10 한국전자통신연구원 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법
KR20110077834A (ko) * 2009-12-30 2011-07-07 한성종 디렉터리시스템를 이용한 보안강화 네트워크 서비스 구현 방법 및 시스템.

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325143B2 (en) 2001-10-15 2008-01-29 Linux Foundation Digital identity creation and coalescence for service authorization
CN101692239B (zh) * 2009-10-19 2012-10-03 浙江大学 一种分布式文件系统元数据分配方法
US8887250B2 (en) * 2009-12-18 2014-11-11 Microsoft Corporation Techniques for accessing desktop applications using federated identity

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319689A (ja) * 1996-05-27 1997-12-12 Nec Corp サーバ選択方式
JP2004356829A (ja) * 2003-05-28 2004-12-16 Matsushita Electric Ind Co Ltd データ受信再生方法及びデータ受信再生装置
KR20070044427A (ko) * 2007-04-17 2007-04-27 엔에이치엔(주) 버스형 네트워크 구조의 통신 네트워크 시스템 및 이를이용한 데이터 송수신 방법
KR20110063083A (ko) * 2009-12-04 2011-06-10 한국전자통신연구원 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법
KR20110077834A (ko) * 2009-12-30 2011-07-07 한성종 디렉터리시스템를 이용한 보안강화 네트워크 서비스 구현 방법 및 시스템.

Also Published As

Publication number Publication date
KR20130130295A (ko) 2013-12-02
US20130318244A1 (en) 2013-11-28
CN103428260A (zh) 2013-12-04
KR101920630B1 (ko) 2018-11-21
US9350606B2 (en) 2016-05-24

Similar Documents

Publication Publication Date Title
WO2013176431A1 (ko) 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
WO2016190476A1 (ko) 클라우드 서비스를 위한 암호화 키 관리 방법 및 그 장치
WO2012074198A1 (en) Terminal and intermediate node in content oriented networking environment and communication method of terminal and intermediate node
WO2012050293A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
WO2012157940A2 (ko) 피드백메시지를 이용한 푸시 서비스 제공 시스템 및 방법
WO2014193037A1 (ko) 맵리듀스 연산 가속 시스템 및 방법
WO2017074034A1 (ko) 이종 시스템에서 상호연동에 대한 방법 및 장치
WO2019198885A1 (ko) 블록체인 기반의 다수의 서비스 노드를 사용하는 탈중앙화 서비스 플랫폼
WO2017051941A1 (ko) P2p 연결을 이용한 클라우드 서비스 트래픽의 절감 방법 및 그 장치
WO2013122418A1 (en) Method and apparatus for supporting device-to-device communications
WO2013048038A2 (ko) 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
WO2022007828A1 (zh) 冗余路径的资源预留方法、网络设备和存储介质
WO2014035194A1 (en) Push message service system and method
WO2015199271A1 (en) Method and system for sharing files over p2p
WO2018233372A1 (zh) 支持哈希调度策略的lvs调度方法、设备、装置及存储介质
WO2021125502A1 (ko) 컨테이너 기반의 클라우드 서비스 제공 시스템 및 그 방법
CN112866435A (zh) Mac地址老化处理方法及设备
WO2015068929A1 (ko) 컨텐츠 중심 네트워크에서 패킷 특성을 고려하는 노드의 동작 방법 및 노드
WO2015037911A1 (ko) 오픈플로우를 이용하여 사용자 단말 장치와 로컬 호스트 사이의 통신을 지원하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2013122359A1 (ko) 네트워크 부하 저감 기능이 구비된 무선단말장치와 무선단말장치에서의 네트워크 부하 저감 방법과 기록매체
WO2013100484A1 (ko) 사용자 단말기 및 그의 애플리케이션 간 데이터 공유 방법
CN110474781B (zh) 一种组播数据转发的方法及装置
WO2013085089A1 (ko) M2m 클라우드 환경에서 통신망 자원 활용 방법 및 그 시스템
WO2016153119A1 (ko) 폐쇄형 데이터 공유 서비스 데이터 관리 방법 및 시스템
WO2015199366A1 (ko) 다중 프로세싱 환경에서의 스케줄링 방법 및 그 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13794560

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 05/03/2015)

122 Ep: pct application non-entry in european phase

Ref document number: 13794560

Country of ref document: EP

Kind code of ref document: A1