KR20070039096A - 서버 세트중에서 하나의 서버를 선택하기 위한 방법 - Google Patents
서버 세트중에서 하나의 서버를 선택하기 위한 방법 Download PDFInfo
- Publication number
- KR20070039096A KR20070039096A KR1020077002013A KR20077002013A KR20070039096A KR 20070039096 A KR20070039096 A KR 20070039096A KR 1020077002013 A KR1020077002013 A KR 1020077002013A KR 20077002013 A KR20077002013 A KR 20077002013A KR 20070039096 A KR20070039096 A KR 20070039096A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- state vector
- state
- servers
- choose
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 예를들어 인터넷 바탕 애플리케이션 및 세션 바탕 애플리케이션에 관련된 하나 이상의 서비스(들)을 요구하기 위하여 서버 세트중 하나의 서버(S1-S4)를 선택하는 방법에 관한 것이고, 상기 서버 세트의 각각의 서버들(S1-S4)은 서비스(들)을 지원할 수 있고, 이에 따라 상태 벡터는 트랜잭션 제어 시간들을 감소시키기 위한 능력면에서 종래 서버 선택 정책들에 비해 개선되도록, 대응하는 서버(S1-S4)의 상태가 결정되는 시점을 가리키는 타임스탬프 값(t1-t4)을 포함하도록 유지된다.
Description
본 발명은 예를들어 적어도 하나의 인터넷 바탕 애플리케이션 및 세션 바탕 애플리케이션에 관련된 하나 이상의 서비스(들)을 요구하기 위해 서버 세트중 하나의 서버를 선택하는 방법에 관한 것이고, 상기 서버 세트의 각각의 서버들은 서비스(들)을 지원할 수 있다.
세션 관리(제어)는 세션 개념을 바탕으로 하는 인터넷 서비스들의 수 및 대중성이 빠르게 성장하기 때문에 중요성이 증가하고 있다. 세션 바탕 서비스들은 멀티미디어 회의, 인터넷 전화 호들 및 오디오, 비디오 등등 같은 하나 이상의 미디어 타입으로 구성된 유사한 애플리케이션들을 포함한다. 전개 예들은 3세대 이동 네트워크들에서 IP 멀티미디어 서브시스템(IMS)의 일부로서 세션 제어 서비스들을 포함한다. IMS에서, 호 세션 제어 기능(CSCF) 서버들은 세션 개시 프로토콜(SIP)을 바탕으로 세션 관리를 수행한다. SIP 같은 세션 제어 프로토콜들은 트랜잭션(transaction) 프로토콜들이다. 일반적으로, 트랜잭션은 하나의 요구 및 상기 요구에 대한 응답으로 구성된다.
예를들어 세션 제어 시스템에서 고장 허용범위는 리던던시(redundancy)를 도 입함으로서 달성된다. 즉, 세션 제어 서버들은 서버 세트들에서 증가된다. 서버 세트는 동일한 기능을 제공하는 N개의 서버들로 구성된다. 상기 고장 허용범위 복제 세션 제어 시스템은 도 1에 도시된다.
점선들(1)은 서버가 현재 이용중인 것을 가정하면, 도 1의 3개의 서버들중 중앙 서버에 보내지는 클라이언트 요구들을 나타낸다. 이용 가능성은 첫째 서버가 운행중인, 즉 요구된 서비스들을 제공할 수 있다는 것을 포함한다. 둘째, 서버는 서버와 상기 서버의 클라이언트(들) 사이의 (인터넷) 접속을 통하여 액세스 또는 도달될 필요가 있다.
점선(2)은 중앙 서버로부터 도 1의 좌측 및 우측 위치의 두 개의 서버들 쪽으로 상태 업데이트 전달을 나타낸다. 십자 실선(3)은 중앙 서버의 고장 조건을 도시하기 위한 것이다. 게다가, 클라이언트들은 요구들이 중앙 서버에 의해 응답되지 않아서 좌측 및 우측 서버들에 상기 요구를 지향시킴으로써 상기 요구들을 반복할 것인지를 결정할 것이다. 이것은 실선(4)으로 표시되고, 다른 "건강한" 서버들에 대한 장애 극복(failover)을 나타낸다.
세션 제어는 시간 임계적 애플리케이션이다. 세션 제어의 성능은 트랜잭션 제어 시간에 의해 양자화된다. 트랜잭션 제어 시간은 요구 전송 모멘트 및 사용자(다른 서버들에 대한 가능한 다중 장애 극복을 포함)측에서의 최종 응답 수신 모멘트 사이의 평균 시간이다. 세션 제어 시스템들에 존재하는 문제점은 성능을 강화시키는 방법, 즉 트랜잭션 제어 시간을 감소시키는 방법이다. 서버 선택 정책들(SSP)은 트랜잭션 제어 시간을 최소화시키는데 주 역할을 가진다.
기존 정적 서버 선택 정책들은 서버들을 선택하기 위하여 미리 정의된 방법들을 사용한다. 정적 SSP들의 예들은 하기와 같다 :
- 라운드 로빈(Round Ronin) 방식은 순환형 정책을 나타내고, 여기서 서버들은 처음에 선택된 서버가 다시 선택될 때까지 순차적 방식으로 선택된다.
- 웨이티드 라운드 로빈은 라운드 로빈의 단순한 확장을 나타낸다. 이것은 특정 웨이트를 각각의 서버에 할당한다. 웨이트는 서버의 처리 능력을 가리킨다. 이런 SSP는 만약 개별 서버의 능력들 및 그 로드들을 가끔씩 평가할 수 있다면 동적일 수 있다.
동적 시스템 상태들의 미지성(unawareness)은 복잡성이 낮지만, 성능 및 서비스 의존성의 품질을 떨어뜨리는 비용을 유발한다. 적응성(동적) SSP들은 가장 우수한 서버의 시스템 상태 및 동적 평가 변화들을 바탕으로 결정이 이루어진다. 동적 SSP들의 예들은 하기와 같다:
- 스마트 라운드 로빈(Smart Round Robin)(SRR)
이런 SSP에서, 최종에 새로운 요구는 살아있는 것으로 알려진 서버들의 현재 서브세트에 라운드 로빈을 적용함으로써 서버에 전송된다. 만약 서버가 살아있는 것으로 보고되지 않으면, 라운드 로빈은 전체 서버 세트에 적용된다. 이런 알고리듬은 서버의 활성 상태, 즉 서버가 업인지 다운인지 여부상에서 이진 정보를 처리한다.
- 세션 당 스마트 라운드 로빈(SRR-S)
이것은 최종 응답 부재로 인한 장애 극복에 필요한 새로운 세션들 및 중간 세션 요구들을 위한 서버를 선택하기 위해서만 제공되는 SRR의 변수이다. 일단 서버가 선택되면, 세션내의 모든 다음 요구들은 세션 종료 또는 요구 결함이 검출될 때까지 동일한 서버로 전송된다.
- 최소 사용 SSP, IETF(인터넷 엔지니어링 태스크 포스) Working Group "Reliable Server Pooling"으로부터의 2003년 10월 21일 R.R. Stewart, Q. Xie: Aggregate Server Access Protocol(ASAP), <draft-ietf-rserpool-asap-08.txt> 참조. 이런 SSP에서, 각각의 서버의 로드는 중앙 모니터링 엔티티 또는 클라이언트 자체에 의해 모니터된다. 서버들의 로드들을 모니터한 것을 바탕으로, 각각의 서버는 서버의 로드에 비례적인 소위 정책 값이 할당된다. 최소 사용 SSP에 따라, 가장 낮은 정책 값을 가진 서버는 현재 메시지의 수신기로서 선택된다. 서버들의 정책 값들이 업데이트되고 변화될때까지 동일한 서버가 항상 선택되는 것을 SSP가 내포한다는 개념이 중요하다.
- 최소 사용 품질 강하 SSP[Stewart & Xie]는 하나의 예를 가진 최소 사용 SSP와 동일하다. 즉, 각각의 시간에 가장 낮은 정책 값을 가진 서버는 서버 세트로부터 선택되고, 정책 값은 증가된다. 따라서, 이 서버는 더 이상 서버 세트의 가장 낮은 정책 값을 가질 수 없다. 이것은 시간에 따라 최소 사용 품질 강하 SSP를 라운드 로빈 SSP 쪽으로 유도한다. 서버들의 상기 정책 값의 매 업데이트는 SSP가 최소 사용 품질 강하로 다시 가게 만든다.
동적 SSP의 효율성은 가장 우수한 서버를 평가하기 위하여 사용되는 측정법에 의존한다. SPP들상에서의 탐색은 복제된 웹 서버 시스템들에 주로 집중되었다. 상기 시스템들에서, 통상적인 측정법들은 지리적 거리, 각 서버에 대한 호프(hop)들의 수, 왕복 시간(RTT) 및 HTTP 응답 시간들을 포함하는 서버 근접도를 바탕으로 하고, Robert L. Carter 및 Mark E. Crovella, "Dynamic Server Selection using Bandwidth Probing in Wide Area Networks, in Proceedings of Infocom'97, the Sixteenth Annual Joint Conference of the IEEE Computer and Communication Societies, April 1997; Mark E. Crovella and Robert L. Carter, "Dynamic server selection in the Internet", in Proceedings of the Third IEEE Workshop on the Architecture and Implementation of High Performance Communication Subsystems (HPCS'95), August 1995; M. Sayal, Y. Breitbart, P. Scheuermann, R. Vingralek, "Selection Algorithms for Replicated Web Servers", Workshop on Internet Server Performance, Madison, Wisconsin, 1998; K. Obraczka and F. Silvia, "Network Latency Metrics for Server Proximity", in Proceedings of the IEEE Globecom, November 2000을 참조하라.
웹 시스템들에서 SSP들이 높은 처리율 및 작은 서비스 대기 시간을 제공하는 것을 목표로 하고, SIP 같은 세션 제어 프로토콜들은 작은 크기(평균 500 바이트)의 메시지들을 처리한다. 따라서, 처리량은 웹 시스템들에서 중요한 측정법일 수 없다. 저자 지식을 최적화하기 위하여, SSP들은 세션 제어 시스템들을 이용하여 광범위하게 조사되지 않았다.
상기 이유로, 본 발명의 목적은 트랜잭션 제어 시간들을 감소시키는 능력에서 종래 기술 SSP들에 비해 개선된 한 세트의 서버들중 하나의 서버를 선택하는 방법, 및 개선된 방법을 실행하기 위한 클라이언트 장치를 제공하는 것이다.
이 문제는 청구항 제 1 항에 따른 방법 및 청구항 제 12 항에 따른 클라이언트 장치에 의해 해결된다.
본 발명의 기초를 이루는 필수적인 아이디어중 하나는 세션 요구들이 가장 높은 순시 이용 가능성, 즉 요구가 전송되는 시점에서 가장 높은 이용 가능성을 제공하는 서버에게 바람직하게 전송된다는 것이다. 이에 따라 성공때까지 시도된 서버들의 평균 수는 최소화되고 감소된 트랜잭션 제어 시간은 달성될 수 있다.
본 발명은 (n-1) 시도들이 성공하지 못한 조건하에서, n번째 요구 재전송을 이용하여 트랜잭션의 성공 순시 가능성을 최대화하는 것을 바탕으로 한다. 따라서, 본 발명은 최대 이용 가능성(MA) SSP라 한다.
본 발명의 MA 알고리듬에 따라, 전체 또는 각각의 클라이언트는 p로서 표시된 상태 벡터를 유지한다. 상태 벡터의 크기는 N(즉, 세트에서 서버들의 수와 동일함)이다:
p = [p1, p2, ..., pn]
상태 벡터의 특정 엘리먼트는 최종 공지된 상태 모멘트 또는 특정 서버의 시점을 나타낸다. 만약 최종 서버의 상태가 온(업) 이면, 대응하는 타임스탬프 값은 상태 벡터로 저장된다.
만약 최종 서버의 상태가 오프(다운) 이면, 대응하는 타임스탬프 값은 음의 신호를 가진 상태 벡터로 저장된다. 기본적인 알고리듬은 상태 벡터에서 최대 타임스탬프 값을 가진 서버를 선택한다. 본 발명의 변형된 실시예에 따라, 서버는 최대 타임스탬프 값의 몇몇 범위내에서 타임스탬프 값을 가지도록 선택된다.
클라이언트의 상태 벡터를 업데이트하기 위하여, 다음 3가지 옵션중 하나 또는 임의의 결합은 클라이언트에서 실행된다:
1) 주어진 서버에 보내진 트랜잭션이 성공적으로 완료되거나 실패될 때.
2) 주어진 서버에 보내진 하트비트(heart-beat)가 성공적으로 완료되거나 실패될 때.
하트비트 메카니즘은 주기적 또는 임의의 다른 방식에서 규칙적으로 반복되는 폴(poll)을 제공하여 주어진 서버 상태를 사전에 모니터한다. 폴은 예를들어 ICMP 에코 요구 및 핑(ping) 메카니즘이라 불리는 에코 응답 메카니즘, 또는 상기 목적을 위하여 전용으로 사용되는 메시지들, 예를들어 하트비트-메시지 및 하트비트-애크-메시지를 바탕으로 하고, 상기 메시지는 R. Stewart, 등에 의한 것이다 : ASAP-프로토콜[Stewart & Xie]에 따른 IETF(Internet Engineering Task Force) Working Group "Signaling Transport" 또는 the Keep-Alive-Message and Keep-Alive-Ack-message"로부터의 2000년 10월 Stream Control Transmission Protocol, RFC 2960.
트랜잭션(또는 하트 비트)은 만약 클라이언트가 타임아웃에 의해 정의된 시간 간격내의 요구(또는 하트-비트 요구)에 대한 응답을 수신하지 못하면 실패된다. 새로운 상태 모멘트 또는 서버(Si)와 연관된 시점(ti)이 얻어질때마다(주어진 서버에 보내진 트랜잭션 또는 하트 비트가 성공적으로 완료되거나 실패될 때), 벡터 p의 서버(Si)에 연관된 엔트리는 다음과 같이 업데이트된다:
3) 제 3 파티를 접촉시킴으로써, 예를들어 상기 제 3 파티는 주어진 서버 세트에 대한 자신의 상태 벡터를 유지 및 업데이트하는 특정 서버 또는 다른 클라이언트이다. 예를들어 특화된 프로토콜을 사용하여 제 3 파티와 통신 동안, 클라이언트는 제 3 파티의 현재 또는 최신 상태 벡터를 얻는다. 제 3 파티로부터 수신된 상태 데이터를 사용함으로써, 클라이언트는 로컬 상태 벡터를 업데이트한다. 클라이언트는 만약 엔트리가 제 3 파티로부터 검색된 상태 데이터의 대응 엔트리보다 새로우면(보다 최신) 로컬 상태 벡터의 엔트리를 업데이트하지 않는다. 타임스탬프들을 측정하기 위하여 사용된 클라이언트 및 제 3 파티의 클럭들은 예를들어 동일한 타임스탬프에 의해 동일한 시점을 나타내기 위하여(동기화는 예를들어 제 3 파티에 관련하여 일정한 타임 시프트 또는 드리프트를 가정하여 제 3 파티로부터 전달된 타임스탬프를 수정하고, 대응 알고리듬을 요구하여 달성될 수 있음), 네트워크 타임 프로토콜(NTP)를 전개하여 동기화되어야 한다.
MA SSP는 최종 공지된 업 타임이 실제 타임과 가장 밀접한 서버가 실제 타임에서 업되는 것을 가정하는 것을 바탕으로 한다. 예를들어, 이런 가정은 온 및 오프 간격들이 지수적 가능성 밀도 함수들을 가지는 랜덤 변수들일 때 만족된다.
MA SSP는 성공적인 트랜잭션의 가장 높은 순시 가능성을 가진 서버를 이용하여 세션 트랙잭션을 완료하여, 이에 따라 성공때까지 시도된 서버들의 평균 수를 최소화한다. 이것은 트랜잭션 시간을 감소시킨다.
본 발명의 다른 전개된 실시예내에서, 트랜잭션 제어 시간을 추가적으로 감소시키는 것은 가능하다. 이런 MA 확장은 현재 선택된 서버와의 애플리케이션 응답 시간을 최소화하는 것을 바탕으로 한다. 애플리케이션 응답 시간은 주어진 서버에 대한 요구 전송 모멘트 및 클라이언트에서 최종 응답 수신 모멘트 사이의 시간 기간이다. 이를 위하여, 클라이언트는 부가적인 상태 데이터를 유지하고, 지연 벡터는 d로서 표시된다. 지연 벡터의 크기는 역시 N이다:
d = [d1, d2,..., dN]
지연 벡터의 특정 엘리먼트는 애플리케이션 응답 시간을 나타내고 트랜잭션(서버로 전송된 최종 트랜잭션)은 서버에 체험된다. 만약 트랜잭션이 성공적이지 못하면, 상기 서버에 대한 애플리케이션 응답 시간은 무한한 것으로 고려된다.
두 개의 벡터들(p 및 d)이 하나의 상태 벡터(s)와 동일하고 표현될 수 있고, 상기 벡터의 엘리먼트들은 타임스탬프 및 지연 데이터로 구성되는 것이 주의된다:
s = [(p1, d1), (p2, d2), ...,(pn, dn)]
이런 MA 확장이 이용 가능성 타임스탬프 외에 부가적인 상태 데이터를 도입하기 때문에, 두 개의 벡터들을 바탕으로 하는 다른 서버 선택 결정 기준은 적용될 수 있다.
몇몇 가능한 기준이 유도될 수 있다. 특정 기준을 전개하는 본 발명의 바람직한 실시예들은 다음에 제공된다:
1) 지연 벡터 엘리먼트들에 대한 미리 정의된 임계값을 가진 기준
이 기준은 지연 벡터 엘리먼트들에 대한 지연 임계값을 정의한다. 지연 임계값은 최대 허용 애플리케이션 응답 시간을 나타낸다. 서버를 선택하기 위한 규칙은 다음과 같다:
- 지연 벡터 엔트리들이 지연 임계값 미만인 서버들의 서브세트 식별;
- 만약 상기 서브세트가 존재하면, 그 서브세트상에 기본적인 MA 알고리듬 적용, 즉 가장 큰 상태 벡터 엔트리를 가진 서버 선택;
- 만약 상기 서브세트가 존재하지 않으면, 전체 서버 세트상에 기본적인 MA 알고리듬 적용.
2) 미리 정의된 타임스탬프 범위를 가진 기준
이 기준은 상태 벡터 엘리먼트들에 대한 타임스탬프 범위를 정의한다. 타임스탬프 범위는 상부 한계가 상태 벡터의 가장 큰 엔트리 값과 동일한(만약 존재하면) 시간 간격 기간이다. 이상적인 것은 이들 서버들중에서만 선택하는 것이고, 이것은 가장 큰 타임스탬프로부터 거꾸로 카운팅하는 특정 시간 간격에서 이용할 수 있다. 서버를 선택하기 위한 규칙은 다음과 같다:
- 상태 벡터 엔트리들이 양이고 타임스탬프 범위에 의해 정의된 간격내에 속하는 서버들의 서브세트 식별;
- 만약 상기 서브세트가 존재하면, 가장 작은 지연 벡터 엔트리를 가진 서버 선택,
- 만약 상기 서브세트가 존재하지 않으면, 전체적인 서버 세트상에 기본적인 MA 알고리듬 적용.
본 발명의 장점들은 다음과 같다:
- 라운드 로빈 같은 종래 SSP들과 대조하여 상당한 성능 개선들.
- MA는 효율적인 서버 선택 정책임.
- MA는 낮은 실행 복잡성을 가짐. 클라이언트는 서버 세트의 서버들 처럼 많은 엘리먼트들을 가진 상태 벡터만을 유지함.
- MA SSP는 높은 처리 전력을 요구하지 않음.
- MA는 트래픽 로드들이 심할 때조차, 세트내에서 가장 빠른 서버를 자연적으로 및 빠르게 검출하는 능력을 소지하는 동적 및 적응성 알고리듬으로서 실행될 수 있음.
본 발명의 다른 측면들 및 장점들은 첨부된 도면들과 관련하여 본 발명의 몇몇 실시예들의 추후 설명뿐 아니라 종속항들로부터 유도될 수 있다.
도 1은 고장 방지 복제 세션 제어 시스템(이미 논의됨)의 개략적인 도면이다.
도 2는 본 발명의 실시예에 따른 서버 선택 처리의 예를 도시하는 개략도이다.
도 3은 본 발명에 다른 클라이언트 장치의 기능 블록들을 도시하는 간략화된 블록도이다.
도 2는 본 발명의 실시예에 다른 서버 선택 처리 예를 도시하는 개략도이다. 클라이언트는 서버가 선택될지의 여부를 결정한다. 예로서, 서버 세트는 4개의 서버들(S1 내지 S4)로 구성된다. 선택 결정이 이루어지는 순간에, 상태 벡터는 서버들(S1 내지 S4)의 각각에 대한 엔트리들, 즉 t1, t2, t3 및 t4에 의해 표시되는 타임스탬프 값들을 포함하고, 상기 타임스탬프 값들은 서버들(S1,S2,S3 및 S4)이 각각 최종으로 액세스된 시간일 때 모멘트들을 나타낸다. 클라이언트의 메모리에서, 타임스탬프 값들(t1 내지 t4)은 비트 문자열들에 의해 표현된 숫자들로서 저장된다. 도 2에 도시된 실시예에서, S2는 가장 큰(양의) 타임 스탬프를 가지는 것으로 가정되고, S4는 가장 작은(음의) 타임 스탬프를 가지는 것으로 가정된다.
저장된 상태 벡터는 클라이언트에서 조사된다. 클라이언트에서 실행되는 본 발명의 실시예의 선택 규칙에 따라, 상태 벡터의 최대 타임스탬프 값은 결정되고 대응하는 서버는 선택된다. 따라서 S2는 현재 트랜잭션을 서비스하기 위하여 선택된다. 만약 트랜잭션 처리 동안 S2가 실패하면, 트랜잭션이 동일한 규칙에 따라 선택된 다른 서버에서 재시도되는 것이 주의된다. 그 다음, 다음 시도는 S2 이후 S3가 제 2 가장 큰(양의) 타임스탬프 값을 가지기 때문에, S3쪽으로 지향된다.
엘리먼트 당 지연 값과 협력하여 이용 가능성 타임스탬프를 가진 상태 벡터를 전개하는 본 발명의 서버 선택 방법에 대한 예로서, 다시 서버 세트내에 4개의 서버들(S1 내지 S4)을 고려하자. 주어진 시간에서, 이용 가능성 정보(서버 다음의 경우 '-' 신호)를 포함하는 타임스탬프 값들 및 지연 값들이 서버들(S1-S4)에 대해 각각 p = [-8.3s, 11.2s, 14.1s, 13.5s] 및 d = [∞, 0.08s, 0.55s, 0.15s]이고 지연 임계값이 0.2s로 설정되게 하자.
상기된 기준에 따라, 첫 번째 지연 벡터 엔트리들이 지연 임계값 미만인 서버들은 식별된다. 서버들(S2 및 S4)이 있다. 게다가, 임계값 미만의 지연 값들을 가진 서버들의 서브세트가 존재할 때, 기본적인 MA 알고리듬은 적용된다, 즉 가장 큰 상태 벡터 엔트리를 가진 서버는 선택된다. 따라서, 서버(S4)가 지연 조건을 충족시키는 세트로부터 가장 큰 상태 벡터 엔트리를 가질 때, 서버(S4)는 실제 트랜잭션을 서비스하기 위하여 선택된다.
미리 정의된 타임스탬프 범위 값을 전개하는 본 발명의 서버 선택 방법에 대한 예로서, 일단 다시 4개의 서버들(S1-S4)을 고려하자. 서버들(S1 내지 S4)의 이용 가능성 정보를 가진 타임스탬프 값 및 지연 값들이 다시 p = [-8.3s, 11.2s, 14.1s, 13.5s] 이고 d = [∞, 0.08s, 0.55s, 0.15s]이고 타임스탬프 범위가 3s로 설정하자.
상기된 기준에 따라, 첫째 상태 벡터 엔트리들이 양이고 타임스탬프 범위에 의해 정의된 간격내에 속하는 서버들의 서브세트가 식별된다. 서브세트는 서버들(S2, S3 및 S4)을 포함한다. 게다가, 서브세트가 존재할 때, (기본적인 MA 알고리듬으로의 후퇴가 요구되지 않음) 가장 작은 지연 벡터 엔트리를 가진 서버는 선택된다. 따라서, 서버(S2)가 가장 작은 지연 벡터 엔트리를 가질 때, S2는 실제 트랜잭션을 서비스하기 위하여 선택된다.
도 3은 서버 세트(12)로부터 서비스를 요구하는 클라이언트 장치(10)의 기능 블록들을 도시하는 간략화된 블록도이다. 클라이언트 장치(10)는 하드웨어 또는 펌웨어일 수 있지만, 바람직하게 예를들어 이동 장치인 (사용자) 장치(도시되지 않음)상 클라이언트 소프트웨어 블록으로서 구현된다. 서버 팜(farm)(12)은 이동 장치가 부착되는 UMTS 네트워크의 IP 멀티미디어 플랫폼(IMS)의 환경내에서 SIP 바탕 애플리케이션들을 제공하기 위한 것이다. 고장 방지 방식으로 애플리케이션들 또는 서비스들을 제공하기 위하여, 서버 세트(12)는 4개의 서버들(S1 내지 S4)을 포함하고, 각각의 이들 서버들은 클라이언트 장치(10)를 호스팅하는 이동 장치에 의해 요구될 수 있는 임의의 서비스들을 제공하기 위하여 완전히 적응된다.
클라이언트 장치(10)는 제어 모듈(13), 상태 벡터 관리 모듈(14), 서버 선택 모듈(16), 메모리(18) 및 클라이언트 모듈(20)을 포함한다. 메모리는 클라이언트 장치(10)를 호스팅하는 장치의 보다 큰 메모리 부분 또는 섹션으로 생각되지만, 클라이언트 장치(10)에 전용으로 사용되는 메모리 하드웨어 부분일 수 있다.
도 3과 관련하여, 본 발명에 따라 그 후 서버 선택 처리는 엘리먼트(상기된 2번째 예)와 관련하여 이용 가능성 타임스탬프를 가진 상태 벡터를 바탕으로 보다 상세히 기술된다.
처음에, 제어 모듈(13)은 서버 세트(12)로부터 서비스를 요구하고, 즉 CSCF(서버들 S1 내지 S4)중 하나의 제어하에서 세션의 형성을 시작하기 위하여 클라이언트 장치(10) 외부의 몇몇 유니트에 의해 트리거된다. 트리거링 유니트는 이동 장치상 멀티미디어 애플리케이션과 관련될 수 있다.
트랜스포트(IP) 어드레스들 및 각각의 서버들(S1 내지 S4)의 포트들이 클라이언트 장치(10)에 공지된 것이 가정된다. 이것은 네임(name) 서버(도시되지 않음)로부터 서버 세트(12)의 네임과 관련하여 네임 분석 리스트를 요구하여, 또는 몇몇 다른 방식으로 제어 모듈(13)에 의해 달성될 수 있다.
이것 및 다른 작동들 외에, 제어 모듈은 메모리(18)로부터 상태 벡터를 판독하기 위해 서버 선택 모듈(16)에 명령을 전달하고 본 발명에 따른 최대 이용 가능성 서버 선택 정책에 관련된 규칙들을 상태 벡터 엘리먼트들에 적용한다.
상태 벡터는 4개의 엘리먼트들(각각의 서버들(S1 내지 S4)에 대한 하나의 엘리먼트)을 포함한다. 각각의 엘리먼트는 대응하는 서버(예를들어 상기된 트랜스포트 어드레스)에 관련된 몇몇 정보를 포함하지만, 특히 대응하는 서버에 관련된 상태 정보를 포함한다. 상태 정보와 관련하여, 상태 벡터(s)는 벡터(s)의 쌍들, 즉 s = [(-8.3, ∞), (11.2, 0.08), (14.1, 0.55), (13.5, 0.15)]로서 표현되고, 여기서 수들은 비트 문자열들로서 메모리(18)에 저장되고 초 단위의 시간 값들을 나타낸다.
이용 가능성 정보의 임의의 마이너스 신호, 즉 음의 수 값으로서 타임스탬프 값은 당업자에게 공지된 임의의 과정에 따라 메모리에 제공될 수 있고, 모든 비트들을 인버팅하고 1을 더함으로써 두 개상에서 상보물로서 음의 타임스탬프 값의 표현을 포함한다.
예시적인 값들은 상기된 2번째 예로부터 얻어진다. 각각의 쌍(,)의 제 1 값들은 타임스탬프 값이고, 각각의 쌍의 제 2 값은 지연 값이다.
상태 벡터에서 판독후, 서버 선택 모듈(16)은 상태 벡터 엘리먼트들, 즉 지연 값들의 상태 정보 쌍들의 모든 제 2 값들에서 제 1 동작을 수행한다 : 각각의 지연 값들은 상수, 즉 이 실시예에서 일단 클라이언트 장치(10)의 실행 시간에서 설정된 지연 임계값과 비교된다. 또한 예를들어 제어 모듈(13)에 의해 변화된 지연 임계 값을 가지는 것은 가능하지만, 여기서 기술된 바와같이 서버 선택 과정 동안은 가능하지 않다.
식별 결과로서, 지연 임계 값 미만인 지연 값을 가진 각각의 상태 정보 쌍은 대응 서버를 나타내는 관련 정보와 함께 서브세트 벡터에 카피된다. 따라서 이 벡터는 서버 세트의 모든 서버들에 속하는 상태 정보를 포함하고, 상기 상태 정보의 트랜잭션 지연은 미리 결정된 임계값 지연 보다 짧다. 논의된 실시예에서, 서브세트 벡터는 서버들(S2 및 S4)의 상태 정보를 포함한다.
서버 선택 모듈(16)은 추가로 기본적인 MA 알고리듬을 적용함으로써 서브세트 벡터상에서 동작한다. 모든 지연 값들이 지연 임계값보다 큼으로써 서브세트가 식별되지 않은 경우, 모듈(16)은 기본 MA 알고리듬을 상태 벡터 자체에 적용하도록 제공된다.
기본적인 MA 알고리듬으로 인해, 서브세트 벡터의 각각의 상태 정보 쌍의 제 1 값은 스캔되고 상태 정보 쌍은 이들 제 1 값들중 최대치를 가지는 것으로 식별된다. 다른 말로, 서버는 만약 있다면 이용 가능성 정보('-' 부호)를 포함하는 것으로 평가된 바와같이 최대 타임스탬프 값을 가진 것으로 식별된다. 예에서, 제 1 서브세트 벡터 엘리먼트는 11.2s의 타임스탬프 값을 가지며, 제 2 엘리먼트는 13.5s를 가진다(양쪽 엘리먼트들에서 명확한 이용 가능성 정보는 없다). 따라서, 제 2 서브세트 벡터 엘리먼트는 표시된다.
이런 엘리먼트가 서버(S4)에 대응할 때, 서버 선택 모듈은 트랜스포트 어드레스(및 이 엘리먼트와 연관된 다른 정보)를 식별하고, 응답으로서 트랜스포트 어드레스를 제어 모듈(13)에 리턴한다. 제어 모듈은 클라이언트 모듈(20)을 통하여 식별된 서버(S4)에 서비스 요구의 어셈블링 및 전송을 시작하기 위하여 리턴된 정보를 사용한다. 요구는 도 3에서 실선으로 도시된다.
서버(S4)가 상기 요구에 응답하고 서비스 관련 트랜잭션이 호스트 장치 내에서 측정된 바와같이 15.3으로서 표시된 시점에서 성공적으로 완료되는 것이 가정된다. 상기 요구에 응답시 지연은 0.37s이다. 상기된 본 발명의 방법의 실시예에 따라, 메모리(18)에 저장된 상태 벡터는 서버(S4)의 트랜스포트 어드레스와 새로운 타임스탬프 및 지연 값들을 연관시킴으로서 업데이트된다.
이것을 달성하기 위하여, 제어 모듈은 클라이언트 모듈(20)을 통하여 서버(S4)로 요구를 전송후 상태 벡터 관리 모듈(14)을 트리거한다. 트리거로 인해, 관리 모듈(14)은 첫째로 호스트 장치(도시되지 않음) 내의 클럭 모듈에 요구에 의해 현재 시간을 결정하고, 상기 클럭 모듈은 14.93s의 값을 나타내는(실시예에서) 문자열을 리터닝한다. 둘째, 모듈(14)은 이런 특정 요구에 전용으로 사용되는 타이머를 시작한다. 타이머는 10s의 미리 결정된 시간을 운용한다.
제어 모듈(13)은 서버(S4)의 최종 응답 수신 후 관리 모듈(14)에 다른 트리거를 전송한다. 제 2 트리거로 인해, 관리 모듈(14)은 첫째 15.3s의 값을 나타내 는 문자열(실시예에서)을 리턴하는 클럭 모듈에 요구에 의해 현재 시간을 다시 결정한다. 둘째, 관리 모듈(14)은 타이머를 정지시킨다.
다음, 관리 모듈은 새로운 상태 정보 쌍((선택적인 이용 가능성 정보) 타임스탬프 값, 지연 값)을 준비한다. 타이머가 정지하기 전에 제 2 트리거가 수신될 때, 이용 가능성 정보는 타임스탬프와 연관되지 않는다. 타임스탬프 값은 클럭 모듈로부터 수신된 제 2 시간 문자열로서 얻어진다. 지연 값은 제 2 시간 문자열로부터 제 1 시간 문자열을 차감함으로써 계산되어, 0.37s의 지연 값을 유도한다.
만약 서버(S4)가 응답하지 않으면, 제 2 트리거는 상태 관리 모듈(14)에 도달하지 않는다. 그 다음 타이머는 10초 후 정지된다. 그 시점에서 모듈(14)은 클럭 모듈에 제 2 요구를 전송하여, 타이머가 저지되는 시점을 나타내는 제 2 시간 문자열을 유도한다. 추가로 모듈(14)이 이용 가능성 정보('-')를 가진 서버(S4)에 대한 상태 벡터 엘리먼트를 준비하고, 상기 이용 가능성 정보는 클럭 모듈로부터 리턴된 제 2 시간 문자열에 의해 제공된 타임스탬프 및 수 값 '무한' 또는 '∞'의 장치 지정 표현에 의해 제공된 지연 값이다. 타이머가 정지한 후 도달하는 제 2 트리거는 관리 모듈(14)에 의해 처리되지 않고, 버려진다.
최종적으로, 관리 모듈(14)은 제 4 위치, 즉 서버(S4)의 트랜스포트 어드레스에 할당된 위치에, 메모리(18)에 저장된 상태 벡터의 어셈블리 상태 정보 쌍을 저장한다. 상태 정보와 관련하여, 서비스 관련 트랜잭션이 성공적으로 완료되는 것이 가정되면, 업데이트된 상태 벡터는 s =[(-8.3, ∞), (11.2, 0.08), (14.1, 0.55), (15.3, 0.37)]를 판독한다.
여기에 기술된 특정 실시예들은 본 발명의 몇몇 적당한 실시예들만을 도시한다. 첨부된 청구항들에 의해 배타적으로 지정되고 숙련된 동작에 의한 본 발명의 범위내에서, 많은 다른 실시예들은 가능하다.
예를들어, 상태 벡터 관리 모듈(도 3에서 참조 번호 14) 및 서버 선택 모듈(16)은 클라이언트 장치(10)의 독립된 엔트리들로서 기술된다. 당업자는 이들 모듈들이 단일 모듈로서 구현될 수 있다는 것을 이해한다.
참조 번호들의 리스트
S1-S4 서버 세트의 서버들
t1-t4 상태 벡터의 타임스탬프 값들
10 클라이언트 장치
12 서버 세트
13 제어 모듈
14 상태 벡터 관리 모듈
16 서버 선택 모듈
18 메모리
20 클라이언트 모듈
Claims (17)
- 적어도 하나의 인터넷 바탕 애플리케이션 및 세션 바탕 애플리케이션에 관련된 하나 이상의 서비스(들)를 요구하기 위하여 서버 세트(12)중 하나의 서버(S1-S4)를 선택하기 위한 방법으로서,상기 서버 세트(12)의 각각의 서버들(S1-S4)은 서비스(들)을 지원할 수 있고, 상기 방법은,상태 벡터를 유지하여, 상태 벡터의 적어도 두 개의 엘리먼트들에 상태 정보를 할당하는 단계 - 상기 각각의 상태 정보는 서버 세트(12)의 서버들(S1-S4)중 하나의 상태를 나타냄 -;상태 벡터 엘리먼트들의 상태 정보에 미리 결정된 선택 규칙을 적용함으로써 서버(S1-S4)를 선택하는 단계; 및상기 선택된 서버(S1-S4)로부터 서비스(들)을 요구하는 단계를 포함하고,적어도 하나의 타입의 상태 정보는 대응하는 서버(S1-S4)의 상태가 결정되는 시점을 가리키는 타임스탬프 값(t1-t4)을 포함하는,하나의 서버를 선택하는 방법.
- 제 1 항에 있어서, 상기 선택 규칙은 상태 벡터에서 최대 타임스탬프 값(t1-t4)을 결정하는 단계 및 대응하는 서버(S1-S4)를 선택하는 단계를 포함하는,하나의 서버를 선택하는 방법.
- 제 1 항 또는 제 2 항에 있어서, 상기 상태 정보는 타임스탬프 값(도 2의 t1, t4)에 연관된 대응하는 서버들(S1-S4)의 이용 가능성을 가리키는 이용 가능성 정보를 포함하는,하나의 서버를 선택하는 방법.
- 제 3 항에 있어서, 상기 이용 가능성 정보는 대응 서버(도 2의 S1, S4)가 이용 가능하지 않은 경우 마이너스 신호에 의해 표현되는,하나의 서버를 선택하는 방법.
- 제 1 항 내지 제 4 항 중 어느 한 항에 있어서, 대응하는 서버(S1-S4)와의 트랜잭션이 완료되거나 실패하는 것에 응답하여 상태 벡터의 특정 엘리먼트에 상태 정보를 할당하는 단계를 포함하는,하나의 서버를 선택하는 방법.
- 제 1 항 내지 제 5 항 중 어느 한 항에 있어서, 대응하는 서버(S1-S4)에 대한 하트비트(heartbeat) 상호접속의 완료 또는 실패에 응답하여 상태 벡터의 특정 엘리먼트에 상태 정보를 할당하는 단계를 포함하는,하나의 서버를 선택하는 방법.
- 제 1 항 내지 제 6 항 중 어느 한 항에 있어서, 상기 서버 세트(12)의 하나 이상의 서버들(S1-S4)에 대한 제 3 파티로부터 제 3 파티 상태 정보의 수신에 응답하여 상태 벡터의 특정 엘리먼트 또는 엘리먼트들에 상태 정보를 할당하는 단계를 포함하는,하나의 서버를 선택하는 방법.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 상태 정보는 대응하는 서버의 애플리케이션 응답 시간을 가리키는 지연 값을 더 포함하는,하나의 서버를 선택하는 방법.
- 제 8 항에 있어서, 상기 선택 규칙은 상태 벡터 엘리먼트들의 서브세트를 결정하는 단계를 포함하고, 상기 서브세트는 상기 상태 벡터 엘리먼트들을 포함하고, 상기 상태 벡터 엘리먼트들의 지연 값은 미리 결정된 지연 임계값 미만인,하나의 서버를 선택하는 방법.
- 제 9 항에 있어서, 상기 선택 규칙은 상태 벡터 엘리먼트들의 서브세트에서 최대 타임스탬프 값을 결정하는 단계 및 대응하는 서버(S1-S4)를 선택하는 단계를 포함하는,하나의 서버를 선택하는 방법.
- 제 8 항 내지 제 10 항에 있어서, 상기 선택 규칙은 상태 벡터 엘리먼트들의 서브세트를 결정하는 단계를 포함하고, 상기 서브세트는 상기 상태 벡터 엘리먼트들의 서브세트들을 포함하고, 상기 상태 벡터 엘리먼트들의 타임스탬프 값들은 양의 수이고, 타임스탬프 값들의 최대값으로부터 감산될 때 미리 결정된 타임스탬프 범위 값 미만의 값이 되는,하나의 서버를 선택하는 방법.
- 제 11 항에 있어서, 상기 선택 규칙은 상태 벡터 엘리먼트들의 서브세트에서 최소 지연 값을 결정하는 단계 및 대응하는 서버(S1-S4)를 선택하는 단계를 포함하는,하나의 서버를 선택하는 방법.
- 클라이언트 장치(10)의 추가 모듈들(10,16,20)을 제어하기 위한 제어 모듈(13);상태 벡터를 저장하기 위한 메모리(18)를 포함하고 - 상기 상태 벡터의 엘리먼트들은 각각 서버 세트(12)의 서버들(S1-S4) 중 하나에 대응하는 상태 정보를 포함함 -;메모리(18)에 상태 정보를 기입함으로써 상태 벡터를 유지하기 위한 상태 벡터 관리 모듈(14);메모리(18)로부터 상태 벡터를 판독하고, 상태 벡터의 엘리먼트들에 미리 결 정된 선택 규칙을 적용하여 선택될 서버(S1-S4)를 결정하기 위한 서버 선택 모듈(16); 및선택된 서버(S4)로부터 서비스를 요구하기 위한 클라이언트 모듈(20)을 포함하는,제 1 항 내지 제 12 항 중 어느 한 항에 따른 방법을 실행하기 위한 클라이언트 장치(10)로서,상기 메모리(18)는 타임스탬프 값을 포함하는 상태 정보를 저장하기 위하여 제공되고 상기 상태 벡터 관리 모듈(14)은 메모리(18)에 상기 상태 정보를 기입하기 위하여 제공되는,클라이언트 장치.
- 제 13 항에 있어서, 상기 서버 선택 모듈(16)은 상태 벡터 및 대응 서버(S1-S4)에서 최대 타임스탬프 값을 결정하기 위하여 제공되는,클라이언트 장치.
- 제 13 항 또는 제 14 항에 있어서, 상기 상태 벡터 관리 모듈(14)은 타임스탬프 값에 이용 가능성 정보를 할당하고 상태 정보로서 이용 가능성 정보 및 타임스탬프 값을 메모리(18)에 기입하기 위하여 제공되는,클라이언트 장치.
- 제 13 항 내지 제 15 항중 어느 한 항에 있어서, 상기 메모리(18)는 지연 값을 포함하는 상태 정보를 저장하고 상기 상태 벡터 관리 모듈(14)은 상기 상태 정보를 메모리(18)에 기입하기 위하여 제공되는,클라이언트 장치.
- 제 13 항 내지 제 16 항중 어느 한 항에 있어서, 상기 서버 선택 모듈(16)은 지연 임계값 또는 타임스탬프 범위 값 같은 하나 이상의 미리 결정된 상수들에 따라 상태 정보의 식별을 바탕으로 상태 벡터 엘리먼트의 서브세트들을 결정하기 위하여 제공되는,클라이언트 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020077002013A KR20070039096A (ko) | 2007-01-26 | 2004-06-29 | 서버 세트중에서 하나의 서버를 선택하기 위한 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020077002013A KR20070039096A (ko) | 2007-01-26 | 2004-06-29 | 서버 세트중에서 하나의 서버를 선택하기 위한 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070039096A true KR20070039096A (ko) | 2007-04-11 |
Family
ID=38160087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077002013A KR20070039096A (ko) | 2007-01-26 | 2004-06-29 | 서버 세트중에서 하나의 서버를 선택하기 위한 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070039096A (ko) |
-
2004
- 2004-06-29 KR KR1020077002013A patent/KR20070039096A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1762069B1 (en) | Method of selecting one server out of a server set | |
KR101391059B1 (ko) | Sip 생존가능 구성에서 sip 메시지를 이용한 페일오버/페일백 트리거 | |
JP5523012B2 (ja) | エンドポイントを生き残ったネットワークのコントローラのリスト内にコントローラのスライディング・ウインドウで登録する方法 | |
CN111615066B (zh) | 一种基于广播的分布式微服务注册及调用方法 | |
US7630313B2 (en) | Scheduled determination of network resource availability | |
US20040103194A1 (en) | Method and system for server load balancing | |
WO2009002318A1 (en) | Real time protocol stream migration | |
CN102257792B (zh) | 用于包括策略数据库的内容传递的方法 | |
US20070160033A1 (en) | Method of providing a reliable server function in support of a service or a set of services | |
Uyar et al. | Evaluation of architectures for reliable server pooling in wired and wireless environments | |
CA2988746A1 (en) | Network operational flaw detection using metrics | |
CN1725758A (zh) | 用于使分布式系统同步的方法 | |
US8537717B2 (en) | System and method for resource discovery | |
CN110661836B (zh) | 消息路由方法、装置及系统、存储介质 | |
KR20070039096A (ko) | 서버 세트중에서 하나의 서버를 선택하기 위한 방법 | |
US7379970B1 (en) | Method and system for reduced distributed event handling in a network environment | |
RU2344562C2 (ru) | Способ выбора сервера из набора серверов | |
JP4947663B2 (ja) | オーバレイネットワークにおける遅延時間判定方法、ピアノード及びプログラム | |
JP4123440B2 (ja) | オブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバ | |
JP4893464B2 (ja) | コネクション強制解放装置、コネクション強制解放方法及びコネクション強制解放プログラム | |
Danielis et al. | Extensive analysis of the kad-based distributed computing system dude | |
US7676028B2 (en) | System and method for storing a voicemail message in a communication environment | |
RU2329609C2 (ru) | Способ обеспечения надежной функции сервера в поддержке службы или набора служб | |
Xu et al. | Cooperative monitoring for internet data centers | |
Eklund et al. | On the relation between SACK delay and SCTP failover performance for different traffic distributions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITN | Withdrawal due to no request for examination |