KR100950182B1 - 서버의 로드 밸런싱 방법 및 그 장치 - Google Patents

서버의 로드 밸런싱 방법 및 그 장치 Download PDF

Info

Publication number
KR100950182B1
KR100950182B1 KR1020070116313A KR20070116313A KR100950182B1 KR 100950182 B1 KR100950182 B1 KR 100950182B1 KR 1020070116313 A KR1020070116313 A KR 1020070116313A KR 20070116313 A KR20070116313 A KR 20070116313A KR 100950182 B1 KR100950182 B1 KR 100950182B1
Authority
KR
South Korea
Prior art keywords
server
data
request message
data request
client
Prior art date
Application number
KR1020070116313A
Other languages
English (en)
Other versions
KR20090049936A (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 KR1020070116313A priority Critical patent/KR100950182B1/ko
Priority to PCT/KR2008/006701 priority patent/WO2009064126A2/en
Publication of KR20090049936A publication Critical patent/KR20090049936A/ko
Application granted granted Critical
Publication of KR100950182B1 publication Critical patent/KR100950182B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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

Abstract

서버의 로드 밸런싱 방법 및 그 장치가 개시된다. 본 발명의 바람직한 일 실시예에 따르면, 클라이언트로부터 데이터 요청 메시지를 수신하여, 수신된 데이터 요청 메시지에 따라 클라이언트로 데이터의 전송이 불가능한 경우 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송이 수행되도록 하되, 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송은 수신된 데이터 요청 메시지에 포함된 목적지 정보를 데이터 전송이 가능한 다른 서버의 주소 정보로 치환함으로써 수행된다. 본 발명에 따르면, 클라이언트가 데이터를 요청한 서버의 조건이 변경되는 경우에도 다른 서버로부터 최적의 데이터 전송이 수행될 수 있어 데이터 전송 속도와 시간이 단축되는 장점이 있다.
로드밸런싱, 서버, 데스티네이션, GLB, 클라이언트

Description

서버의 로드 밸런싱 방법 및 그 장치{Method for load balancing of server and apparatus for thereof}
본 발명은 서버의 로드 밸런싱 방법 및 그 장치에 관한 것으로서, 보다 상세하게는 통신망을 통해 데이터 등을 클라이언트로 전송하는 복수개의 서버 중 본래 데이터를 전송하기로 결정된 하나의 서버가 처리량의 증가 등으로 데이터 전송 등을 수행할 수 없는 경우 다른 서버에서 데이터 등이 전송되도록 하는 소위 로드 밸런싱(load balanceing) 방법 및 그 장치에 에 관한 것이다.
최근 컴퓨터 등의 디지털 처리 장치의 발달과 더불어 통신망 특히 인터넷의 발달로 통신망을 통해 다양한 데이터를 송수신하고 있다. 특히 이러한 통신망에 연결되어 데이터를 송수신하는 다양한 디지털 처리 장치 중 일반적으로 데이터를 제공하는 디지털 처리 장치를 서버(server), 데이터를 요청하고 수신하는 디지털 처리 장치를 클라이언트(client)라고 한다.
이러한 서버와 클라이언트 시스템에서 하나의 클라이언트와 하나의 서버가 연결되어 클라이언트의 요청을 서버가 처리하는 경우도 있을 수 있으나, 일반적으로 복수개의 클라이언트의 요청에 대해 하나의 서버 또는 클라이언트의 요청이 많은 경우 복수의 서버가 클라이언트의 요청을 처리하게 된다.
한편, 복수개의 서버가 클라이언트의 요청을 처리하는 경우 클라이언트의 요청을 보다 원활하게 처리하기 위해 처리량이 적은 서버 또는 통신망의 상태 등에 따라 최적의 서버가 클라이언트의 요청을 처리하는 것이 효율적이며, 이러한 클라이언트의 요청을 복수개의 서버 중 최적의 서버가 처리하도록 결정하는 것을 부하 분산 또는 로드 밸런싱(Load Balancing)이라 한다.
이러한 로드 밸런싱의 수행을 위해 복수개의 서버 중 하나의 특정 서버를 지정하여 클라이언트로 전송하도록 하는 장비를 GLB(Global Load Balance) 장치라고 한다.
이러한 로드 밸런싱 시스템에서 종래의 로드 밸런싱 방법이 구현되는 것을 도 1을 참조하여 보다 상세하게 살펴보기로 한다.
도 1은 본 발명이 적용될 수 있는 로드 밸런싱 시스템의 구성을 도시한 도면이다.
도 1에 도시된 바와 같이, 로드 밸런싱 시스템은 클라이언트(100), DNS(Domain Name System) 서버(110), GLB 장치(120) 및 복수개의 서버(130)를 포함할 수 있다.
이러한 로드 밸런싱 시스템에서 종래의 로드 밸런싱 방법이 구현되는 것을 살펴보면, 먼저 클라이언트(100)가 서버에 접속하기 위하여 예를 들면 abc.com이라 는 주소를 클라이언트(100)에 설치된 웹 브라우저(web browser)의 주소창에 입력하게 된다.
입력된 주소는 DNS 쿼리(query)로 생성되어 DNS 서버(110)로 전송되고 DNS 서버(110)는 해당 도메인에 상응하는 IP(Internet Protocol) 주소를 클라이언트(100)로 전송한다. 이러한 과정에서 abc.com에 상응하는 복수개의 서버(130a, 130b, 130c,…)가 존재하는 경우 GLB 장치(120)로부터 최적의 서버의 IP 주소에 상응하는 IP 주소를 수신하여 클라이언트(100)로 전송한다.
또한, 최적의 서버를 GLB 장치(120)에서 결정하기 위해 GLB 장치(120)의 주소만을 수신하여 먼저 GLB 장치(120)에 접속한 후 GLB 장치(120)에서 최종적으로 데이터를 전송할 서버(130)를 결정하도록 한다.
IP 주소를 수신한 클라이언트(100)는 수신된 IP 주소를 이용하여 해당 서버(130) 또는 GLB 장치(120)에 접속하여 최종적으로 데이터를 전송할 서버 예를 들면, 도 1에서 서버 1(130a)에 접속하여 데이터를 수신하게 된다.
이러한 종래의 로드 밸런싱 방법은 복수개의 서버 정보를 관리하는 GLB 장치 등에 의해 클라이언트로 데이터를 전송할 수 있는 최적의 서버를 결정하게 함으로써 보다 효율적으로 데이터의 전송이 가능하게 한다.
그러나 반드시 복수개의 서버 증 최적의 서버에 접속할 수 있게 하기 위해서는 GLB 장치가 반드시 필요한 문제점이 있다.
그리고 GLB 장치로부터 DNS 서버를 통해 클라이언트로 IP 주소를 전송하고 클라이언트가 이를 이용하여 해당 서버에 접속하는 동안 해당 서버의 조건 예를 들 면, 다른 클라이언트로부터의 데이터 전송 요청 등이 증가되어 최적의 데이터 전송이 수행되지 못하는 경우가 발생하는 문제점이 있다.
또한, 이러한 경우 클라이언트는 다시 DNS 서버를 통해 데이터를 전송받을 서버의 IP 주소를 수신하여야 하는 등 데이터 수신을 위한 시간이 지연되는 문제점이 있다.
그리고 이러한 문제점을 해결하기 위해 복수개의 서버를 관리하는 GLB 장치를 거쳐 클라이언트로 전송할 서버를 최종적으로 결정하는 방법이 이용되고 있으나 이 경우 GLB 장치를 반드시 거쳐야 하므로 GLB 장치의 처리량이 증가되어 GLB 장치의 과부하가 발생되는 문제점이 있다.
상기한 바와 같은 종래의 문제점을 해결하기 위해, 본 발명은 복수개의 서버 중 최적의 서버에 접속할 수 있게 하기 위해서 반드시 GLB 장치가 필요하지 않은 서버의 로드 밸런싱 방법 및 그 장치를 제안하는 것이다.
또한, 클라이언트가 특정 서버에 접속하는 동안 해당 서버의 조건 이 변경되어 최적의 데이터 전송이 수행되지 못하는 경우에도 다른 서버가 최적의 데이터 전송을 수행할 수 있게 하는 서버의 로드 밸런싱 방법 및 그 장치를 제안하는 것이다.
본 발명의 또 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일 측면에 따르면 로드 밸런싱 수행 방법이 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 복수개의 서버를 포함하는 클라이언트 및 서버 시스템에서 상기 서버가 로드 밸런싱(load balancing)을 수행하는 방법에 있어서, 상기 클라이언트로부터 데이터 요청 메시지를 수신하는 단계(a); 및 상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 데이터 전송이 적합한 서버에서 데이터의 전송이 수행되도록 하는 단계(b)를 포함하되, 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 데이터 전송이 적합한 서버에서 데이터의 전송은 상기 수신된 데이터 요청 메시지에 포함된 목적지 정보를 상기 데이터 전송이 수행되는 서버의 주소 정보로 치환함으로써 수행되는 것을 특징으로 하는 로드 밸런싱 수행 방법이 제공된다.
상기 데이터 요청 메시지에 포함된 목적지 정보는 상기 데이터 요청 메시지를 수신할 서버의 주소 정보를 포함하고, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP(Internet Protocol) 주소 정보를 DNS (Domain Name System) 서버로부터 수신될 수 있다.
또한, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP 주소 정보를 DNS 서버로부터 수신하는 것은, 상기 도메인 네임을 이용하여 DNS 쿼리(query)를 생성하여 상기 DNS 서버로 전송하여 수행될 수 있다.
또한, 상기 DNS 서버는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB(Global Load Balancing)장치로부터 상기 IP 주소 정보를 수신할 수 있다.
상기 단계(a)에서 상기 데이터 요청 메시지는 상기 클라이언트의 주소 정보를 포함하는 소스 정보; 상기 데이터 요청 메시지를 수신하는 서버의 주소 정보를 포함하는 목적지 정보; 및 상기 서버로부터 수신할 데이터의 내용 정보를 포함하는 본문 정보를 포함할 수 있다.
상기 단계(b)에서 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에 대한 정보는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB 장치로부터 상기 IP 주소 정보를 수신하여 수행될 수 있다.
상기 단계(b)는 상기 수신된 데이터 요청 메시지에 따라 상기 클라이언트로 상기 데이터의 전송이 불가능한 경우 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송이 수행되도록 할 수 있다.
본 발명의 다른 측면에 의하면, 로드 밸런싱 수행 장치가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 복수개의 서버를 포함하는 클라이언트 및 서버 시스템에서 상기 서버가 로드 밸런싱을 수행하도록 하는 장치에 있어서, 상기 서버를 제외한 다른 서버의 정보를 수신하는 서버 정보 수신부; 및 상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 데이터 전송이 적합한 서버에서 데이터의 전송이 수행되도록 상기 수신된 데이터 요청 메시지에 포함된 목적지 정보를 상기 데이터 전송이 수행되는 서버의 주소 정보로 치환하는 목적지 정보 치환부를 포함하는 것을 특징으로 하는 로드 밸런싱 수행 장치가 제공된다.
상기 데이터 요청 메시지에 포함된 목적지 정보는 상기 데이터 요청 메시지를 수신할 서버의 주소 정보를 포함하고, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP(Internet Protocol) 주소 정보를 DNS (Domain Name System) 서버로부터 수신될 수 있다.
또한, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP 주소 정보를 DNS 서버로부터 수신하는 것은, 상기 도메인 네임을 이용하여 DNS 쿼리(query)를 생성하여 상기 DNS 서버로 전송하여 수행될 수 있다.
또한, 상기 DNS 서버는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB(Global Load Balancing)장치로부터 상기 IP 주소 정보를 수신할 수 있다.
상기 데이터 요청 메시지는 상기 클라이언트의 주소 정보를 포함하는 소스 정보 상기 데이터 요청 메시지를 수신하는 서버의 주소 정보를 포함하는 목적지 정보; 및 상기 서버로부터 수신할 데이터의 내용 정보를 포함하는 본문 정보를 포함할 수 있다.
상기 목적지 정보 치환부는 상기 복수개의 서버 중 데이터 전송이 가능한 다 른 서버에 대한 정보는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB 장치로부터 상기 IP 주소 정보를 수신하여 상기 목적지 정보의 치환을 수행할 수 있다.
상기 로드 밸런싱 수행 장치는 상기 수신된 데이터 요청 메시지에 따라 상기 클라이언트로 상기 데이터의 전송이 불가능한 경우 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송이 수행되도록 할 수 있다.
상기 로드 밸런싱 수행 장치는 상기 서버가 상기 데이터 요청 메시지에 따라 데이터를 상기 클라이언트로 가능한지 여부를 판단하는 부하 점검부를 더 포함할 수 있다.
본 발명의 또 다른 측면에 의하면, 로드 밸런싱 수행 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 복수개의 서버를 포함하는 클라이언트 및 서버 시스템에서 상기 서버가 (load balancing)을 수행하는 방법이 구현되도록, 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서, 상기 클라이언트로부터 데이터 요청 메시지를 수신하는 단계(a); 및 상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 데이터 전송이 적합한 서버에서 데이터의 전송이 수행되도록 하는 단계(b)를 포함하되, 상기 데이터 요청 메시지를 수신한 서버를 포 함한 복수개의 서버 중 데이터 전송이 적합한 서버에서 데이터의 전송은 상기 수신된 데이터 요청 메시지에 포함된 목적지 정보를 상기 데이터 전송이 수행되는 서버의 주소 정보로 치환함으로써 수행되는 것을 특징으로 하는 로드 밸런싱 수행 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
상기 데이터 요청 메시지에 포함된 목적지 정보는 상기 데이터 요청 메시지를 수신할 서버의 주소 정보를 포함하고, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP(Internet Protocol) 주소 정보를 DNS (Domain Name System) 서버로부터 수신될 수 있다.
또한, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP 주소 정보를 DNS 서버로부터 수신하는 것은, 상기 도메인 네임을 이용하여 DNS 쿼리(query)를 생성하여 상기 DNS 서버로 전송하여 수행될 수 있다.
또한, 상기 DNS 서버는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB(Global Load Balancing)장치로부터 상기 IP 주소 정보를 수신할 수 있다.
상기 단계(a)에서 상기 데이터 요청 메시지는 상기 클라이언트의 주소 정보를 포함하는 소스 정보; 상기 데이터 요청 메시지를 수신하는 서버의 주소 정보를 포함하는 목적지 정보; 및 상기 서버로부터 수신할 데이터의 내용 정보를 포함하는 본문 정보를 포함할 수 있다.
상기 단계(b)에서 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에 대한 정보는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB 장치로부터 상기 IP 주소 정보를 수신하여 수행될 수 있다.
상기 단계(b)는 상기 수신된 데이터 요청 메시지에 따라 상기 클라이언트로 상기 데이터의 전송이 불가능한 경우 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송이 수행되도록 할 수 있다.
이상에서 설명한 바와 같이, 본 발명에 의한 서버의 로드 밸런싱 방법 및 그 장치에 의하면, 복수개의 서버 중 최적의 서버에 접속할 수 있게 하기 위해서는 반드시 GLB 장치가 필요하지 않은 장점이 있다.
또한, 클라이언트가 해당 서버에 접속하는 동안 해당 서버의 조건이 변경되는 경우에도 다른 서버로부터 최적의 데이터 전송이 수행될 수 있어 데이터 전송 속도와 시간이 단축되는 장점이 있다.
그리고 GLB 장치를 이용하는 경우라도 GLB 장치의 처리량을 증가시키지 않아 GLB 장치의 부하를 줄일 수 있는 장점이 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것 으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것 으로, 본 발명을 한정하려는 의도가 아니다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
먼저 전술한 도 1의 GLB 장치를 포함하는 로드 밸런싱 시스템을 참조하여 본 발명에 의한 로드 배런싱 방법에 대해 살펴보기로 한다.
전술한 바와 같이, 종래의 로드 밸런싱 방법은 클라이언트가 DNS 서버로의 DNS 쿼리를 전송하여 클라이언트가 DNS 쿼리에 대한 IP 주소를 수신함으로써 데이터를 전송받을 서버에 접속하게 되며, IP 주소의 수신과 서버의 선택이 GLB 장치에 의해 이루어지게 된다.
본 발명에서는 이러한 IP 주소의 수신에 의해 서버의 선택이 이루어지는 것은 전술한 바와 같으나, 해당 서버가 현재 데이터의 전송이 불가능한 경우 다른 서버에서 데이터의 전송이 이루어질 수 있도록 한다.
그리고 이러한 다른 서버에서의 데이터 전송이 해당 서버에서 클라이언트에서의 요청 메시지를 변환함으로써 이루어지게 한다.
도 2를 참조하여 클라이언트가 서버로 전송하는 데이터 요청 메시지의 구성을 살펴보기로 한다.
도 2는 로드 밸런싱 시스템에서 종래에 콘텐츠 서버로 전송되는 데이터 요청 메시지의 구성을 간략하게 도시한 도면이다.
도 2에 도시된 바와 같이, 소스(source)(200), 목적지(destination) (210) 및 본문(220) 정보를 포함할 수 있다.
소스(200)는 데이터 요청 메시지를 전송한 장치 즉 클라이언트의 정보를 나타내고, 목적지(210)는 데이터를 전송해 줄 장치 즉, 서버의 정보를 나타낸다. 그리고 본문(220)에는 요청하는 데이터의 종류 등에 대한 정보를 나타낸다.
한편, 소스(200)와 목적지(210) 정보에는 통신망을 통해 연결되는 클라이언트와 서버 각각의 주소 정보 특히 IP 정보를 포함하고 있다.
이러한 소스와 목적지에 포함된 IP 주소를 참조하여 데이터 요청 메시지가 해당 서버로 전송되고, 해당 서버는 요청된 데이터를 클라이언트로 전송하게 된다.
본 발명에서는 이러한 데이터 요청 메시지를 수신한 서버에서 목적지 정보를 다른 서버를 나타내는 목적지 정보로 치환하여 목적지 정보에 상응하는 다른 서버로 전송되도록 함으로써 다른 서버에서 클라이언트가 요청한 데이터를 전송할 수 있도록 한다.
즉, 통신망에서 별도의 장치나 장비의 추가 없이 서버에서 데이터 요청 메시지에 포함된 목적지 정보만을 다른 목적지 정보로 치환함으로써 데이터 요청 메시지를 수신한 서버가 로드 밸런싱의 기능을 수행할 수 있게 하는 것이다.
이러한 본 발명에 의한 로드 밸런싱 방법이 적용되는 것을 도 3을 참조하여 보다 상세하게 살펴보기로 한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 적용되는 것을 개략적으로 도시한 도면이다.
도 3은 전술한 도 1의 과정 즉 DNS 서버에 DNS 쿼리를 통해 IP 주소를 수신하고 수신된 IP 주소를 이용하여 서버1에 데이터 요청 메시지를 전송하는 경우를 가정한 것이다.
종래의 로드 밸런싱 방법과 비교하여 살펴 보면, 먼저 종래에는 클라이언트로부터 데이터 요청 메시지를 수신한 서버1이 현재 데이터를 전송할 수 없는 경우라면 종래에는 클라이언트는 웹 페이지나 콘텐츠와 같은 특정 데이터를 수신할 수 없게 된다.
따라서 클라이언트는 다시 DNS 서버에 DNS 쿼리를 전송하고 IP 주소를 재전송받아 데이터를 전송해줄 서버에 다시 접속하여야만 한다.
그러나 본 발명에서는 예를 들어, 서버1(330a)에서 데이터 요청 메시지를 수신하였으나 서버1(330a)에서 현재 데이터를 전송할 수 없는 경우라면 데이터 요청 메시지에 포함된 목적지 정보를 다른 서버(예를 들면, 도 3에서 서버2(330b))의 주소 정보로 치환함으로써 데이터 요청 메시지는 서버2(330b)로 전송되게 된다.
그리고 서버2(330b)는 데이터 요청 메시지를 수신하여 수신된 데이터 요청 메시지를 해석하여 클라이언트(300)로 데이터를 전송함으로써 클라이언트(300)가 본래 요청하였던 데이터를 전송해 줄 수 있게 되는 것이다.
한편, 서버1(330a)이 다른 서버(예를 들면, 도 3에서 서버2(330b))를 결정하는 것은 GLB 장치(320)로부터 서버들의 정보를 수신하여 이루어질 수 있다.
또한, GLB 장치(320) 없이 최초의 데이터 요청 메시지를 수신한 서버가 다른 서버들로부터 현재 상태 정보를 수신하여 전송 가능한 서버를 결정하여 데이터 요청 메시지에서 목적지 정보만을 치환하여 다른 서버에서 클라이언트(300)로 데이터를 전송하여 주도록 하는 것도 가능하다.
다만, 일반적으로 복수개의 서버(330a, 330b…330n)를 포함하는 경우 GLB 장치(320)를 포함하는 것이 일반적이므로 GLB 장치(320)에 특별한 기능이나 구성을 추가하지 않고도 복수개의 서버의 상태 정보를 수신하여 서버에서 이를 이용하는 것이 가능하게 된다.
또한, 서버(330a)가 다른 서버(330b, 33b)로부터 일일이 각각의 서버들의 상 태 정보를 수신하여 최종적으로 목적지 정보를 치환할 서버를 결정하지 않아도 되므로 상대적으로 로드 밸런싱 기능을 수행하는 서버(330a)의 부하를 줄일 수 있는 것이 가능하다.
이하에서는 로드 밸런싱 기능을 수행하게 하는 서버의 구성을 도 4를 참조하여 살펴보기로 한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 적용될 수 있는 서버의 구성을 도시한 도면이다.
도 4에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 적용될 수 있는 디지털 장치인 서버는 부하 점검부(400), 서버 정보 수신부(410) 및 목적지 정보 치환부(420)를 포함할 수 있다.
부하 점검부(400)는 현재 서버 자신이 클라이언트(300)로 전송하는 데이터의 전송량 등을 점검하여 현재 추가적으로 다른 클라이언트 등으로 데이터를 전송할 수 있는지 여부를 점검한다.
이러한 부하 점검부(400)는 종래의 GLB 장치를 포함하는 로드 밸런싱 시스템에서도 클라이언트로의 데이터 전송 가능 여부를 판단하기 위해 서버의 상태 정보를 GLB 장치로 전송해 주는 것과 같은 기능을 수행하게 된다.
서버 정보 수신부(410)는 서버에서 클라이언트(300)로부터 수신된 데이터 요청 메시지에 따라 데이터를 전송할 수 없는 경우 다른 서버 또는 GLB 장치(320)로부터 각각의 서버들의 상태 정보와 서버들의 주소 정보를 수신한다.
목적지 정보 치환부(420)는 서버 정보 수신부(410)에서 수신된 서버 정보에 따라 현재 클라이언트(300)로 데이터를 전송해 줄 수 있는 서버의 주소 정보로 목적지 정보를 치환하여 데이터 요청 메시지가 해당 서버로 전송되도록 한다.
이러한 서버의 구성은 실질적으로 데이터 요청 메시지에서 동일한 데이터를 전송하는 다른 서버의 주소 정보로 본래의 데이터 요청 메시지에서 변경함으로써 클라이언트(300)가 요청한 데이터를 전송 가능하게 하는 것이다.
이러한 로드 밸런싱 방법이 적용될 수 있는 서버의 구성을 참조하여 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 구현되는 순서를 살펴보기로 한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 구현되는 순서를 도시한 순서도이다.
도 5에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법은 먼저 클라이언트(300)로부터 데이터의 전송을 요청하는 데이터 요청 메시지를 수신하면(S500), 서버 자신이 클라이언트(300)로 데이터를 전송하여 줄 수 있는지 여부를 판단하기 위해 서버 자신의 부하를 점검한다(S502).
서버 자신이 클라이언트(300)로 데이터를 전송하여 줄 수 있는지 여부를 판단한 결과(S504). 클라이언트(300)로의 데이터 전송이 가능한 경우라면 클라이언트(300)의 데이터 요청 메시지에 포함된 소스와 본문 정보를 이용하여 클라이언트(300)로 요청한 데이터를 전송한다(S512).
그러나 서버의 부하 점검 결과 서버가 데이터를 전송할 수 없는 경우라면 전술한 바와 같이, 다른 서버들(330b, 330c) 또는 GLB 장치(320)로부터 다른 서버들의 정보를 수신하여 데이터 전송이 가능한 다른 서버를 검색하고(S506) 데이터 요청 메시지에서 목적지 정보를 검색된 다른 서버의 주소 정보로 치환한다(S508)..
이러한 목적지 정보가 치환되면 데이터 요청 메시지는 다른 해당 서버로 전송되게 되고(S510). 데이터 요청 메시지를 수신한 다른 서버는 데이터 요청 메시지에 따라 데이터를 클라이언트(300)로 전송하게 된다(S512).
이러한 서버에서의 로드 밸런싱 수행 방법을 종래의 로드 밸런싱 수행 방법과 비교하여 예를 들어 살펴본다.
먼저 클라이언트가 접속하고자 하는 서버의 도메인 주소가 abc.com이고, abc.com의 웹 페이지를 제공하는 웹 서버가 3개이고 각각의 IP 주소가 123.456.78.901, 123.456.78.902 및 123.456.78.903라고 가정한다.
종래의 로드 밸런싱 수행 방법은 먼저 클라이언트의 웹 브라우저의 주소창에 abc.com을 입력하면 클라이언트가 DNS 쿼리를 생성하여 DNS 서버로 전송하고 DNS 서버는 abc.com의 IP 주소 정보, 즉 123.456.78.901, 123.456.78.902 및 123.456.78.903 중 하나의 정보를 클라이언트로 전송하거나 GLB 장치로부터 최적의 서버 정보를 수신하여 해당 서버의 IP 주소 정보를 클라이언트로 전송한다.
그리고 만약 클라이언트로 전송된 IP 주소 정보가 123.456.78.901이라 가정하면 클라이언트는 해당 서버로 데이터 요청 메시지를 전송하여 웹 페이지 등의 데 이터를 요청하여 수신하게 된다.
그러나 123.456.78.901라는 IP 주소를 가진 서버가 클라이언트로부터 데이터 요청 메시지를 수신하였으나 현재 과부하 상태로 데이터를 전송할 수 없는 경우라면 클라이언트 데이터를 수신하지 못하게 되게 다시 DNS 서버로 IP 주소를 요청하는 등의 작업을 수행하여야만 한다.
그러나 본 발명에서는 123.456.78.901라는 IP 주소를 가진 서버가 클라이언트로부터 데이터 요청 메시지를 수신하였으나 현재 과부하 상태로 데이터를 전송할 수 없는 경우라면 123.456.78.901라는 IP 주소를 가진 서버에서 데이터 요청 메시지에 포함된 목적지 정보에서 123.456.78.901라는 IP 주소를 123.456.78.902로 변경하는 것이다.
이 경우 데이터 요청 메시지는 IP 주소에 따라 123.456.78.902라는 IP 주소를 가진 서버로 전송되고 해당 서버는 소스 정보와 본문 정보를 해석하여 해당 데이터를 클라이언트로 전송하게 된다.
즉, 예를 들면 서버에서 123.456.78.901라는 IP 주소에서 123.456.78.902로 간단하게 치환하여 변경함으로써 클라이언트로 클라이언트가 요청한 데이터를 전송할 수 있게 되는 것이다.
한편, 상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드디스크, 광자기디스크 등)에 저장될 수 있다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 본 발명에 의한 로드 밸런싱 방법이 적용될 수 있는 로드 밸런싱 시스템의 구성을 간략하게 도시한 도면.
도 2는 로드 밸런싱 시스템에서 서버로 전송되는 데이터 요청 메시지의 구성을 간략하게 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 적용되는 것을 개략적으로 도시한 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 적용될 수 있는 서버의 구성을 도시한 도면.
도 5는 본 발명의 바람직한 일 실시예에 따른 로드 밸런싱 방법이 구현되는 순서를 도시한 순서도.

Claims (14)

  1. 클라이언트 및 상기 클라이언트로 데이터를 전송하는 복수개의 서버를 포함하는 통신망에서 상기 서버가 로드 밸런싱(load balancing)을 수행하는 방법에 있어서,
    상기 클라이언트로부터 데이터 요청 메시지를 수신하는 단계-상기 데이터 요청 메시지에 포함된 목적지 정보는 상기 데이터 요청 메시지를 수신할 서버의 주소 정보를 포함하고, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP(Internet Protocol) 주소 정보를 DNS (Domain Name System) 서버로부터 수신됨-;
    상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 상기 데이터를 전송할 서버를 결정하는 단계; 및
    상기 수신된 데이터 요청 메시지에 포함된 목적지 정보를 상기 결정된 서버의 주소 정보로 치환하는 단계를 포함하여,
    상기 결정된 서버에서 상기 데이터의 전송이 이루어지도록 하는 것을 특징으로 하는 로드 밸런싱 수행 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 DNS 서버는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB(Global Load Balancing)장치로부터 상기 IP 주소 정보를 수신하는 것을 특징으로 하는 로드 밸런싱 수행 방법.
  4. 제1항에 있어서,
    상기 데이터 요청 메시지는,
    상기 클라이언트의 주소 정보를 포함하는 소스 정보;
    상기 데이터 요청 메시지를 수신하는 서버의 주소 정보를 포함하는 목적지 정보; 및
    상기 서버로부터 수신할 데이터의 내용 정보를 포함하는 본문 정보를 포함하는 것을 특징으로 하는 로드 밸런싱 수행 방법.
  5. 제1항에 있어서,
    상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 상기 데이터를 전송할 서버를 결정하는 것은,
    상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB 장치로부터 IP 주소 정보를 수신하여 수행되는 것을 특징으로 로드 밸런싱 수행 방법.
  6. 제1항에 있어서,
    상기 클라이언트로 상기 데이터를 전송하기로 결정된 서버에서 상기 클라이언트로 상기 데이터의 전송이 불가능한 경우,
    상기 서버는 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송이 수행되도록 하는 것을 특징으로 하는 로드 밸런싱 수행 방법.
  7. 클라이언트 및 상기 클라이언트로 데이터를 전송하는 복수개의 서버를 포함하는 통신망에서 상기 서버가 로드 밸런싱을 수행하도록 하는 장치에 있어서,
    상기 서버를 제외한 다른 서버의 정보를 수신하는 서버 정보 수신부; 및
    상기 클라이언트로부터 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 상기 데이터를 전송할 서버를 결정하여 수신된 데이터 요청 메시지에 포함된 목적지 정보를 상기 결정된 서버의 주소 정보로 치환하는 목적지 정보 치환부-상기 데이터 요청 메시지에 포함된 목적지 정보는 상기 데이터 요청 메시지를 수신할 서버의 주소 정보를 포함하고, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP(Internet Protocol) 주소 정보를 DNS (Domain Name System) 서버로부터 수신됨-;를 포함하여,
    상기 결정된 서버에서 상기 데이터의 전송이 이루어지도록 하는 것을 특징으로 하는 로드 밸런싱 수행 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 DNS 서버는 상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB(Global Load Balancing)장치로부터 상기 IP 주소 정보를 수신하는 것을 특징으로 하는 로드 밸런싱 수행 장치.
  10. 제7항에 있어서,
    상기 데이터 요청 메시지는,
    상기 클라이언트의 주소 정보를 포함하는 소스 정보;
    상기 데이터 요청 메시지를 수신하는 서버의 주소 정보를 포함하는 목적지 정보; 및
    상기 서버로부터 수신할 데이터의 내용 정보를 포함하는 본문 정보를 포함하는 것을 특징으로 하는 로드 밸런싱 수행 장치.
  11. 제7항에 있어서,
    상기 목적지 정보 치환부에서 상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 상기 데이터를 전송할 서버를 결정하는 것은,
    상기 복수개의 서버에 대하여 로드 밸런싱을 수행하는 GLB 장치로부터 IP 주소 정보를 수신하여 수행되는 것을 특징으로 로드 밸런싱 수행 장치.
  12. 제7항에 있어서,
    상기 로드 밸런싱 수행 장치는,
    상기 클라이언트로 상기 데이터를 전송하기로 결정된 서버에서 상기 클라이언트로 상기 데이터의 전송이 불가능한 경우 상기 복수개의 서버 중 데이터 전송이 가능한 다른 서버에서 데이터의 전송이 수행되도록 하는 것을 특징으로 하는 로드 밸런싱 수행 장치.
  13. 제7항에 있어서,
    상기 로드 밸런싱 수행 장치는,
    상기 서버가 상기 데이터 요청 메시지에 따라 상기 요청된 데이터를 상기 클라이언트로 전송하는 것이 가능한지 여부를 판단하는 부하 점검부를 더 포함하는 것을 특징으로 하는 로드 밸런싱 수행 장치.
  14. 클라이언트 및 상기 클라이언트로 데이터를 전송하는 복수개의 서버를 포함하는 통신망에서 상기 서버가 로드 밸런싱(load balancing)을 수행하는 방법을 구현하기 위한 프로그램을 기록한 기록매체에 있어서,
    상기 클라이언트로부터 데이터 요청 메시지를 수신하는 단계-상기 데이터 요청 메시지에 포함된 목적지 정보는 상기 데이터 요청 메시지를 수신할 서버의 주소 정보를 포함하고, 상기 데이터 요청 메시지를 수신할 서버의 주소 정보는 상기 서버의 도메인 네임 정보에 상응하는 IP(Internet Protocol) 주소 정보를 DNS (Domain Name System) 서버로부터 수신됨-;
    상기 수신된 데이터 요청 메시지에 따라 상기 데이터 요청 메시지를 수신한 서버를 포함한 복수개의 서버 중 상기 데이터를 전송할 서버를 결정하는 단계; 및
    상기 수신된 데이터 요청 메시지에 포함된 목적지 정보를 상기 결정된 서버의 주소 정보로 치환하는 단계를 포함하여,
    상기 결정된 서버에서 상기 데이터의 전송이 이루어지도록 하는 것을 특징으로 하는 로드 밸런싱 수행 방법을 구현하기 위한 프로그램을 기록한 기록매체.
KR1020070116313A 2007-11-14 2007-11-14 서버의 로드 밸런싱 방법 및 그 장치 KR100950182B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070116313A KR100950182B1 (ko) 2007-11-14 2007-11-14 서버의 로드 밸런싱 방법 및 그 장치
PCT/KR2008/006701 WO2009064126A2 (en) 2007-11-14 2008-11-13 Method for load balancing of server and apparatus for thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070116313A KR100950182B1 (ko) 2007-11-14 2007-11-14 서버의 로드 밸런싱 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20090049936A KR20090049936A (ko) 2009-05-19
KR100950182B1 true KR100950182B1 (ko) 2010-03-29

Family

ID=40639316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070116313A KR100950182B1 (ko) 2007-11-14 2007-11-14 서버의 로드 밸런싱 방법 및 그 장치

Country Status (2)

Country Link
KR (1) KR100950182B1 (ko)
WO (1) WO2009064126A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014092505A1 (ko) * 2012-12-14 2014-06-19 (주)씨디네트웍스 디앤에스 서비스 제공 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101563554B1 (ko) 2008-08-01 2015-10-27 퀄컴 테크놀로지스, 인크. 잡음 제거를 위한 통합 시간 필터를 구비한 비디오 인코더
US10313299B2 (en) 2013-08-26 2019-06-04 Jeong Hoan Seo Domain name system (DNS) and domain name service method based on user information
KR101569857B1 (ko) * 2014-06-20 2015-11-27 서정환 클라이언트 경로 제어 시스템을 활용한 장애유발 클라이언트 검출 방법 및 시스템
CN111193778B (zh) * 2019-12-16 2022-08-09 武汉思为同飞网络技术股份有限公司 一种web服务负载均衡的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020035225A (ko) * 2000-11-04 2002-05-11 남민우 맥 어드레스 치환을 이용한 서버 로드 밸런싱 방법 및 장치
KR20070067069A (ko) * 2004-06-25 2007-06-27 텔코디아 테크놀로지스, 인코포레이티드 분산 요청 라우팅

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180921B2 (en) * 2001-06-19 2012-05-15 Intel Corporation Method and apparatus for load balancing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020035225A (ko) * 2000-11-04 2002-05-11 남민우 맥 어드레스 치환을 이용한 서버 로드 밸런싱 방법 및 장치
KR20070067069A (ko) * 2004-06-25 2007-06-27 텔코디아 테크놀로지스, 인코포레이티드 분산 요청 라우팅

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014092505A1 (ko) * 2012-12-14 2014-06-19 (주)씨디네트웍스 디앤에스 서비스 제공 방법 및 장치

Also Published As

Publication number Publication date
WO2009064126A3 (en) 2009-07-09
KR20090049936A (ko) 2009-05-19
WO2009064126A2 (en) 2009-05-22

Similar Documents

Publication Publication Date Title
US11729294B2 (en) Processing DNS queries to identify pre-processing information
US9608957B2 (en) Request routing using network computing components
US9590946B2 (en) Managing content delivery network service providers
US8301748B2 (en) Managing CDN registration by a storage provider
US9083743B1 (en) Managing request routing information utilizing performance information
US9628554B2 (en) Dynamic content delivery
US9479476B2 (en) Processing of DNS queries
KR100950182B1 (ko) 서버의 로드 밸런싱 방법 및 그 장치
US9288153B2 (en) Processing encoded content
KR101005778B1 (ko) 도메인 네임 시스템의 데이터베이스에 저장된 정보의 획득방법 및 장치
WO2013118365A1 (ja) 通信制御装置、通信制御方法および記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130124

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140115

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170320

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180313

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190220

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191106

Year of fee payment: 11