KR20220159368A - 서버 시스템 및 서버 시스템 관리 방법 - Google Patents

서버 시스템 및 서버 시스템 관리 방법 Download PDF

Info

Publication number
KR20220159368A
KR20220159368A KR1020227032075A KR20227032075A KR20220159368A KR 20220159368 A KR20220159368 A KR 20220159368A KR 1020227032075 A KR1020227032075 A KR 1020227032075A KR 20227032075 A KR20227032075 A KR 20227032075A KR 20220159368 A KR20220159368 A KR 20220159368A
Authority
KR
South Korea
Prior art keywords
server
role
standby
state
user device
Prior art date
Application number
KR1020227032075A
Other languages
English (en)
Inventor
존 디롬
로버트 캄퓌스
Original Assignee
슈퍼셀 오와이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 슈퍼셀 오와이 filed Critical 슈퍼셀 오와이
Publication of KR20220159368A publication Critical patent/KR20220159368A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

제1 역할을 실행하기 위한 제1 서버(102, 204), 다른 역할을 실행하기 위한 다른 서버(104, 208), 예비 서버(106, 206) 및 관리 계층 서버(120, 202)를 포함하는 서버 시스템(100). 상기 관리 계층 서버는 : 상기 제1 서버에 액세스할 제1 사용자 디바이스(108, 110, 112, 214A, 214B, 214C) 그룹을 할당하고, 다른 서버(104, 208)에 액세스할 적어도 하나의 다른 사용자 디바이스(114, 116, 118, 216A, 216B, 216C) 그룹을 할당하고; 상기 제1 서버에 의해 발송된 상태 정보 및 상기 다른 서버에 의해 발송된 상태 정보를 수신하고; 상기 상태 정보를 분석하여 제1 서버의 작동 상태 및 다른 서버의 작동 상태를 결정하고; 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 예비 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스 그룹을 상기 예비 서버에 재할당하고; 그리고 상기 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 다른 예비 서버의 역할을 다른 역할로 업데이트하고, 그리고 상기 다른 사용자 디바이스 그룹을 상기 다른 예비 서버에 재할당하도록 구성된다.

Description

서버 시스템 및 서버 시스템 관리 방법
본 개시서는 일반적으로 애플리케이션(들)을 실행하기 위해 데이터 네트워크를 통해 사용자 디바이스들과 통신하는 복수의 서버를 갖는 서버 시스템에 관한 것으로, 보다 상세하게는 트래픽을 관리하고 각 서버의 부하를 밸런싱하도록 구성된 서버 시스템에 관한 것이다.
데이터 네트워크를 통해 연결된 다수의 사용자 디바이스들을 포함하는 컴퓨팅 시스템들은 일반적으로 개별 컴퓨팅 시스템의 지정된 작업(들)을 달성하기 위해 상호 작용하는 다수의 서버들을 제공한다. 이러한 컴퓨팅 시스템 내의 각 서버에는 일반적으로 기능을 수행하기 위해 사용하는 다수의 리소스가 제공된다. 작동시, 컴퓨팅 시스템의 부하가 증가함에 따라 이러한 리소스 중 하나 이상은 병목 지점이 될 수 있어서, 궁극적으로 연결 품질이 저하되고, 서버가 충돌되고, 그리고/또는 시스템 오류가 발생할 수 있다.
전통적으로, 언급된 문제는 종종 문제시 더 많은 자원을 증가시킴으로써 해결되었다. 예를 들어, 성능 저하가 발생하면, 시스템의 과부하 또는 충돌을 방지하기 위해 더 많은 메모리, 더 빠른 CPU(중앙 처리 장치), 여러 개의 CPU 또는 더 많은 디스크 드라이브가 서버에 추가된다. 이러한 솔루션은 일반적으로 비용이 많이 들고, 처리 집약적이며 시간이 많이 소요된다. 또한, 여러 다른 솔루션들은 고속 스위칭 및 라우팅을 위한 DSL 및 케이블 모뎀과 같은 기술의 사용을 포함한다. 그러나, 이러한 기술들조차도 일반적으로 사용자에게 양질의 서비스를 제공하지 못하고 서버 충돌 가능성을 완화시키지 못하여, 사용자에게 불쾌한 경험을 제공한다.
추가적인 문제는 많은 수의 사용자들이 특정 게임과 같이 동일한 소프트웨어에 접근하고 있는 상황이다. 서버 시스템에 장애가 발생할 경우, 모든 사용자가 서비스 중단으로 인해 부정적인 영향을 받을 위험이 있다.
따라서, 전술한 논의에 비추어, 자원 및 트래픽을 관리하기 위한 종래의 컴퓨팅 시스템과 관련된 전술한 한계를 극복할 필요성이 존재한다.
본 개시서는 서버 시스템을 제공하고자 한다. 본 개시서는 또한 서버 시스템을 관리하는 방법을 제공하고자 한다. 본 개시서는 사용자 디바이스들을 사용하는 다수의 사용자에 의해 사용될 때 시스템에서의 부하 불균형 및 비신뢰성의 기존 문제에 대한 솔루션을 제공하고자 한다. 본 개시서의 목적은 종래 기술에서 직면한 문제점들을 적어도 부분적으로 극복하고, 네트워크 내의 서버들의 결정론적 관리를 제공하는 솔루션을 제공하는 것이다. 또한, 본 개시서는 높은 부하 요구 시 서버 시스템의 신뢰성을 향상시키고, 과부하로 인한 시스템 충돌과 같은 불확실한 성능 문제를 제거하며, 대기 시간 및 용량 문제를 감소시킨다.
제1 양상에서, 본 개시서의 실시예는 서버 시스템을 제공하는데, 상기 서버 시스템은 :
- 제1 역할을 실행하도록 구성된 제1 서버;
- 적어도 하나의 다른 역할을 실행하도록 구성된 적어도 하나의 다른 서버;
- 적어도 하나의 예비 서버; 및
- 관리 계층 서버를 포함하며,
상기 관리 계층 서버는 :
- 제1 서버에 액세스할 제1 사용자 디바이스 그룹을 할당하고, 상기 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하고;
- 제1 서버에 의해 발송된 상태 정보 및 상기 적어도 하나의 다른 서버에 의해 발송된 상태 정보를 수신하고;
- 상태 정보를 분석하여 제1 서버의 작동 상태 및 상기 적어도 하나의 다른 서버의 작동 상태를 결정하고;
- 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버 중 상기 제1 서버에 재할당하고; 그리고
- 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 그리고 상기 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재할당하도록 구성된다.
제2 양상에서, 본 개시서의 일 실시예는 서버 시스템을 관리하는 방법을 제공하는데, 상기 방법은 :
- 제1 서버에서 제1 역할을 실행하는 단계;
- 적어도 하나의 다른 서버에서 적어도 하나의 다른 역할을 실행하는 단계;
- 제1 서버에 액세스할 제1 사용자 디바이스 그룹을 할당하고, 상기 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하는 단계;
- 제1 서버로부터의 상태 정보 및 상기 적어도 하나의 다른 서버로부터의 상태 정보를 수신하는 단계;
- 상기 상태 정보를 분석함으로써, 상기 제1 서버의 작동 상태 및 상기 적어도 하나의 다른 서버의 작동 상태를 결정하는 단계;
- 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버 중 상기 제1 서버에 재할당하는 단계; 및
- 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 그리고 상기 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재할당하는 단계를 포함한다.
제3 양상에서, 본 개시서의 일 실시예는 서버 시스템을 관리하는 방법을 제공하는데, 상기 서버 시스템은 제1 역할에 따라 제1 소프트웨어를 실행하기 위한 제1 서버, 제2 역할에 따라 적어도 하나의 다른 소프트웨어를 실행하기 위한 적어도 하나의 다른 서버, 제3 역할을 갖는 적어도 하나의 예비 서버, 그리고 관리 계층 서버를 포함하며, 상기 방법은 :
- 상기 관리 계층 서버에 역할 목록을 제공하는 단계;
- 상기 제1 서버에서 실행되는 실행 가능한 제1 소프트웨어에 액세스할 제1 사용자 디바이스 그룹 및 적어도 하나의 다른 서버에서 실행되는 실행 가능한 적어도 하나의 다른 소프트웨어에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하는 단계;
- 상기 제1 서버 및 상기 적어도 하나의 다른 서버에 의해, 상기 관리 계층 서버에 상태 정보를 전송하는 단계;
- 상기 관리 계층 서버에 의해, 상기 상태 정보를 수신하고 상기 수신된 상태 정보를 분석하여, 상기 제1 서버의 제1 작동 상태 및 적어도 하나의 다른 서버의 제2 작동 상태를 결정하는 단계;
- 상기 제1 작동 상태가 상기 제1 서버에서 장애를 나타낼 때, 상기 관리 계층 서버에 의해, 상기 제1 역할을 프리 역할(free role)로서 애드버타이징(advertising)하거나, 상기 제2 작동 상태가 상기 적어도 하나의 다른 서버에서 장애를 나타낼 때 상기 제2 역할을 프리 역할로서 애드버타이징하는 단계;
- 상기 적어도 하나의 예비 서버의 제3 역할을 상기 애드버타이징된 프리 역할로서 업데이트하는 단계;
- 적어도 하나의 예비 서버에서 상기 업데이트된 제3 역할에 따라 제3 소프트웨어를 실행하는 단계; 및
- 장애가 발생한 서버에 할당되었던 사용자 디바이스 그룹을 재할당하여, 적어도 하나의 예비 서버를 실행하는 제3 실행 가능한 소프트웨어에 액세스하는 단계를 포함한다.
본 개시서의 실시예들은 선행기술에서 전술한 문제점을 실질적으로 제거하거나 적어도 부분적으로 해결하며, 대기시간 및 서버 충돌의 가능성을 완화하는 신뢰성 있고 빠르고 강력한 서버 시스템을 제공하여, 사용자 디바이스를 사용하는 사용자에게 원활하고 중단 없는 경험을 제공한다.
본 개시서의 추가적인 측면들, 장점들, 특징들 및 목적들은 다음에 첨부된 청구항들과 관련하여 해석되는 예시적인 실시예들의 상세한 설명 및 도면으로부터 명백해질 것이다.
본 개시서의 특징들은 첨부된 청구항들에 의해 정의된 본 개시서의 범위를 벗어나지 않고 다양한 조합으로 결합될 수 있다는 것이 이해될 것이다.
예시적인 실시예들의 상세한 설명뿐만 아니라 위의 발명의 내용은, 첨부된 도면과 함께 읽을 때 더 잘 이해된다. 본 개시서를 설명하기 위해, 본 개시서의 예시적인 구성들이 도면에 도시되어 있다. 그러나, 본 개시서는 본 명세서에 개시된 구체적인 방법들 및 수단들에 한정되는 것은 아니다. 더욱이, 당업자는 도면이 축척에 맞지 않는다는 것을 이해할 것이다. 가능한 경우, 동일한 요소들은 동일한 번호들로 표시되었다.
이제, 본 개시서의 실시예들은 다음의 도면을 참조하여 단지 예로서 설명될 것이다.
도 1은 본 개시서의 일 실시예에 따른 예시적인 서버 시스템의 블록도이다.
도 2a 및 도 2b는 본 개시서의 다양한 실시예에 따른 예시적인 네트워크 환경의 블록도들이다.
도 3은 본 개시서의 일 실시예에 따른 사용자 디바이스들의 사용자들을 한 서버에서 다른 서버로 재-라우팅하기 위해 서버 시스템에 사용되는 기능 요소들을 도시한 블록도이다.
도 4는 본 개시서의 일 실시예에 따른, 스위치와 통신하는 관리 계층 서버의 구조를 도시한 블록도이다.
도 5a 및 도 5b는 본 개시서의 일 실시예에 따른 서버 시스템 관리 방법의 단계들을 도시한 흐름도를 제공한다.
첨부 도면에서, 밑줄친 참조번호는, 밑줄친 참조번호가 위치해 있는 항목 또는 밑줄친 참조번호에 인접한 항목을 나타내기 위해 사용된다. 밑줄이 없는 참조번호는 이 밑줄 없는 참조번호를 항목과 연결하는 선으로 식별되는 항목과 관련이 있다. 참조번호에 밑줄이 없고 화살표가 동반되는 경우, 이 밑줄이 없는 참조번호는 화살표가 가리키는 일반 항목을 식별하는데 사용된다.
다음의 상세한 설명은 본 개시서의 실시예들 및 이들이 구현될 수 있는 방법을 예시한다. 본 개시서를 수행하는 일부 모드가 개시되었지만, 당업자는 본 개시서를 수행하거나 실행하기 위한 다른 실시예들도 가능하다는 것을 인식할 것이다.
제1 양상에서, 본 개시서의 실시예는 서버 시스템을 제공하는데, 상기 서버 시스템은 :
- 제1 역할을 실행하도록 구성된 제1 서버;
- 적어도 하나의 다른 역할을 실행하도록 구성된 적어도 하나의 다른 서버;
- 적어도 하나의 예비 서버; 및
- 관리 계층 서버를 포함하며,
상기 관리 계층 서버는 :
- 제1 서버에 액세스할 제1 사용자 디바이스 그룹을 할당하고, 상기 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하고;
- 제1 서버에 의해 발송된 상태 정보 및 상기 적어도 하나의 다른 서버에 의해 발송된 상태 정보를 수신하고;
- 상태 정보를 분석하여 제1 서버의 작동 상태 및 상기 적어도 하나의 다른 서버의 작동 상태를 결정하고;
- 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버 중 상기 제1 서버에 재할당하고; 그리고
- 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 그리고 상기 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재할당하도록 구성된다.
제2 양상에서, 본 개시서의 일 실시예는 서버 시스템을 관리하는 방법을 제공하는데, 상기 방법은 :
- 제1 서버에서 제1 역할을 실행하는 단계;
- 적어도 하나의 다른 서버에서 적어도 하나의 다른 역할을 실행하는 단계;
- 제1 서버에 액세스할 제1 사용자 디바이스 그룹을 할당하고, 상기 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하는 단계;
- 제1 서버로부터의 상태 정보 및 상기 적어도 하나의 다른 서버로부터의 상태 정보를 수신하는 단계;
- 상기 상태 정보를 분석함으로써, 상기 제1 서버의 작동 상태 및 상기 적어도 하나의 다른 서버의 작동 상태를 결정하는 단계;
- 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버 중 상기 제1 서버에 재할당하는 단계; 및
- 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 그리고 상기 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재할당하는 단계를 포함한다.
제3 양상에서, 본 개시서의 일 실시예는 서버 시스템을 관리하는 방법을 제공하는데, 상기 서버 시스템은 제1 역할에 따라 제1 소프트웨어를 실행하기 위한 제1 서버, 제2 역할에 따라 적어도 하나의 다른 소프트웨어를 실행하기 위한 적어도 하나의 다른 서버, 제3 역할을 갖는 적어도 하나의 예비 서버, 그리고 관리 계층 서버를 포함하며, 상기 방법은 :
- 상기 관리 계층 서버에 역할 목록을 제공하는 단계;
- 상기 제1 서버에서 실행되는 실행 가능한 제1 소프트웨어에 액세스할 제1 사용자 디바이스 그룹 및 적어도 하나의 다른 서버에서 실행되는 실행 가능한 적어도 하나의 다른 소프트웨어에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하는 단계;
- 상기 제1 서버 및 상기 적어도 하나의 다른 서버에 의해, 상기 관리 계층 서버에 상태 정보를 전송하는 단계;
- 상기 관리 계층 서버에 의해, 상기 상태 정보를 수신하고 상기 수신된 상태 정보를 분석하여, 상기 제1 서버의 제1 작동 상태 및 적어도 하나의 다른 서버의 제2 작동 상태를 결정하는 단계;
- 상기 제1 작동 상태가 상기 제1 서버에서 장애를 나타낼 때, 상기 관리 계층 서버에 의해, 상기 제1 역할을 프리 역할(free role)로서 애드버타이징(advertising)하거나, 상기 제2 작동 상태가 상기 적어도 하나의 다른 서버에서 장애를 나타낼 때 상기 제2 역할을 프리 역할로서 애드버타이징하는 단계;
- 상기 적어도 하나의 예비 서버의 제3 역할을 상기 애드버타이징된 프리 역할로서 업데이트하는 단계;
- 적어도 하나의 예비 서버에서 상기 업데이트된 제3 역할에 따라 제3 소프트웨어를 실행하는 단계; 및
- 장애가 발생한 서버에 할당되었던 사용자 디바이스 그룹을 재할당하여, 적어도 하나의 예비 서버를 실행하는 제3 실행 가능한 소프트웨어에 액세스하는 단계를 포함한다.
본 개시서는 장애 발생 시, 예를 들어, 한 서버에서 다른 서버로 트래픽을 재-라우팅하는 것을 포함하는, 네트워크 내의 서버들의 관리를 위한 서버 시스템을 제공한다. 본 서버 시스템은 더 높은 처리 속도, 더 높은 신뢰성 및 더 높은 견고성을 요구하는 온라인 게임 애플리케이션을 포함하여 다양한 범위의 애플리케이션에 사용될 수 있다. 본 발명의 원리들을 통합할 수 있는 다른 작업들 및 애플리케이션들은 데이터베이스 관리 시스템들, 애플리케이션 서비스 제공자들, 기업 데이터 센터들, 모델링 및 시뮬레이션 시스템들, 그래픽 렌더링 시스템들, 복잡한 계산 분석 시스템들 등을 포함하지만 이에 제한되지 않는다. 본 발명의 원리들은 특정 용도에 대해 설명될 수 있지만, 본 서버 시스템을 이용하여 다른 많은 작업 또는 애플리케이션이 제한 없이 수행될 수 있다는 것이 인식될 것이다.
본 서버 시스템들 및 방법들에 의해 제공되는 많은 이점 중에는 광범위한 부하에 걸쳐 지정된 역할들의 성능이 향상된다는 점이다. 또한, 본 서버 시스템은 높은 부하 요구 시에도 서버의 신뢰도를 향상시킨다. 본 개시서는 종래 시스템에서 흔히 볼 수 있는 과부하로 인한 컴퓨팅 시스템의 충돌과 같은 불확실한 성능 특성을 감소시키는 것을 목적으로 한다. 본 서버 시스템은 또한 대기 시간, 부하 용량 문제 등을 제거하기 위해 사용된다. 본 서버 시스템은 또한 더 나은 성능을 위해 하드웨어 자원의 효율적인 활용을 목표로 한다. 특히, 게임 애플리케이션에 서버 시스템을 사용하면, 서로 다른 지리적 위치의 사용자가 중단 없이 빠르고 지속적인 서비스 및 성능을 경험할 수 있다.
본 개시서의 목적을 위해, 제1 서버, 적어도 하나의 다른 서버, 적어도 하나의 예비 서버 및 관리 계층 서버를 포함하는 서버 시스템이 통신 네트워크를 통해 서로 연결되는 예시적인 네트워크 환경이 고려될 것이다. 본 개시서를 통틀어, 용어 "통신 네트워크"는 출원 당시에 이용 가능하거나 알려졌거나 또는 나중에 개발될 때 하나 이상의 전자 디바이스들 및/또는 데이터베이스들 사이의 데이터 통신을 용이하게 하도록 구성된 상호 연결된 프로그램 가능 및/또는 비-프로그램 가능 컴포넌트들의 배열에 관한 것이다. 또한, 통신 네트워크는 하나 이상의 피어 투 피어 네트워크, 하이브리드 피어 투 피어 네트워크 등을 포함할 수 있으나 이에 제한되지 않는다. 여기서, 통신 네트워크는 서로 상호 연결되고 단일 대형 네트워크로서 기능하는 개별 네트워크의 집합일 수 있다. 이러한 개별 네트워크는 유선, 무선 또는 이들의 조합일 수 있다. 이러한 개별 네트워크의 예들은 LAN(Local Area Networks), WAN(Wide Area Networks), MAN(Metropolitan Area Networks), 무선 LAN(WLAN), 무선 WAN(Wireless WAN), 무선 MAN(Wireless MAN), 인터넷, 2세대(2G) 통신 네트워크, 3세대(3G) 통신 네트워크, 4세대 통신 네트워크 및 WiMAX(Worldwide Interoperability for Microwave Access) 네트워크를 포함하나, 이에 제한되지 않는다.
네트워크 환경은 다양한 가능한 시나리오에 따라 다양한 방식으로 구현될 수 있다는 것이 이해될 것이다. 하나의 예시적인 시나리오에서, 네트워크 환경은 제1 서버, 적어도 하나의 다른 서버, 적어도 하나의 예비 서버 및 관리 계층 서버와 같은 서버 시스템의 컴포넌트들의 공간적으로 병치된 배열을 통해 구현될 수 있다. 다른 예시적인 시나리오에서, 상기 네트워크 환경은 통신 네트워크를 통해 상호 통신 결합되는 상기 제1 서버, 상기 적어도 하나의 다른 서버, 상기 적어도 하나의 예비 서버 및 상기 관리 계층 서버의 공간적으로 분산된 구성에 의해 구현될 수 있다. 또 다른 예시적 시나리오에서, 제1 서버, 적어도 하나의 다른 서버, 적어도 하나의 예비 서버 및 관리 계층 서버는 클라우드 서버를 통해 구현될 수 있다.
본 개시서를 통틀어, "제1 서버", "적어도 하나의 다른 서버", "적어도 하나의 예비 서버" 및 "관리 계층 서버"에서 사용되는 "서버"라는 용어는 조직의 사이버 보안을 향상시키기 위해 구성된 적어도 하나의 서버의 구성을 나타낸다. "서버(server)"라는 용어는 일반적으로 통신 네트워크 상의 다른 애플리케이션, 프로그램, 프로세스 또는 디바이스(클라이언트)에 의한 정보 또는 서비스 요청에 응답하는 클라이언트-서버 관계에서 애플리케이션, 프로그램, 프로세스 또는 디바이스를 지칭한다. "서버"라는 용어에는 또한 정보를 서비스하거나 서비스를 제공하는 행위를 가능하게 하는 소프트웨어도 포함된다. 또한, "클라이언트(client)"라는 용어는 일반적으로 통신 네트워크 상의 다른 애플리케이션, 프로그램, 프로세스 또는 디바이스(서버)로부터 정보 또는 서비스를 요청하는 클라이언트-서버 관계에서 애플리케이션, 프로그램, 프로세스 또는 디바이스를 지칭한다. 중요한 것은, "클라이언트"와 "서버"라는 용어가 상대적이라는 것인데, 그 이유는 애플리케이션이 한 애플리케이션에 대한 클라이언트일 수 있지만 다른 애플리케이션에 대한 서버일 수 있기 때문이다. 클라이언트(client)라는 용어는 또한 요청 애플리케이션, 프로그램, 프로세스 또는 디바이스와 FTP 클라이언트와 같은 서버 간의 연결을 가능하게 하는 소프트웨어를 포함한다. 여기서, 클라이언트는 통신 네트워크를 통해 서버 구성에 통신 가능하게 결합되는 제1 사용자 디바이스 그룹 및 적어도 하나 이상의 다른 사용자 디바이스 그룹과 연관된 복수의 사용자 디바이스일 수 있다. 사용자 디바이스의 예로는 휴대전화, 스마트폰, 모바일 인터넷 디바이스(mobile internet device; MID), 태블릿 컴퓨터, 울트라 모바일 PC(UMPC), 패블릿 컴퓨터, 퍼스널 디지털 어시스턴트(PDA), 웹 패드, 퍼스널 컴퓨터(PC), 핸드헬드 PC, 노트북 컴퓨터 및 데스크톱 컴퓨터를 들 수 있으나 이에 한정되는 것은 아니다.
본 서버 시스템은 제3자 VPN(virtual private network) 서비스가 보안 배포 차량(secure deployment vehicle)으로 제공되거나 VPN이 특정 배포에 필요한 대로 주문형으로 구축되는 서비스의 일부로서 제3자(예를 들어, 조직)에게 배포될 수 있다. VPN은 보안되지 않거나 신뢰할 수 없는 네트워크를 통해 연결을 보호하는 데 사용할 수 있는 모든 기술의 조합이다. VPN은 보안을 개선하고 운영 비용을 절감한다. VPN은 공용 네트워크(일반적으로 인터넷)를 사용하여 원격 사이트나 사용자 디바이스의 사용자를 함께 연결합니다. 전용 회선과 같은 실제 전용 연결을 사용하는 대신, VPN은 회사의 개인 네트워크에서 원격 사이트로 인터넷을 통해 라우팅되는 "가상" 연결을 사용한다. VPN을 통한 소프트웨어에 대한 액세스는 VPN의 수명이 지불된 금액을 기준으로 주어진 시간 또는 주어진 배포 수로 제한되는 프로세스 소프트웨어의 전달 또는 실행 목적을 위해(즉, 소프트웨어는 다른 곳에 상주) VPN을 특별히 구성하여 서비스로 제공될 수 있다. 다른 예들에서, 서비스로서 현재의 솔루션운 조직의 IT 인프라에 배포 및 통합될 수도 있다.
특히, 제1 서버는 제1 역할을 실행하도록 구성되고, 적어도 하나의 다른 서버는 적어도 하나의 다른 역할을 실행하도록 구성된다. 본 개시서를 통틀어, "제1 역할" 및 "적어도 하나의 다른 역할"에서 사용되는 용어 "역할"은 게이밍 애플리케이션과 같은 소프트웨어 애플리케이션을 실행하기 위해 서버에 의해 수행되는 기능들을 의미한다. 게임 애플리케이션은 (예를 들어 제1 사용자 디바이스 그룹을 사용하는 제1 그룹 사용자들 및 다른 사용자 디바이스 그룹을 사용하는 다른 그룹 사용자들과 같은) 최종 사용자에게 제공되는 게임 애플리케이션의 결과를 달성하기 위해 동기식으로 처리 및 실행되어야 하는 다수의 기능들 및/또는 프로세스들을 포함할 수 있다. 역할들은 제1 서버 및 적어도 하나의 다른 서버 각각에 의해 수행되는, 게임 애플리케이션 또는 다른 애플리케이션 실행과 연관된 전용 태스크들 또는 서브-태스크들일 수 있다. 서로 다른 역할들의 예들은 네트워크 인터페이스, 저장 처리, 그래픽 처리, 명령 처리, 애플리케이션 처리, 시스템 관리 처리, 프로토콜 처리, 웹 페이지, MP3 파일, HTTP 객체 파일, 오디오 스트림 파일, 비디오 스트림 파일 등과 같은 정적 컨텐츠의 전달, 그리고 반복 처리가 필요한 명령들 및 커멘드들과 같은 동적 컨텐츠의 전달을 포함하나 이에 제한되지는 않는다. 하나의 예에서, 서버 시스템은 제1 서버 및 적어도 하나의 다른 서버를 포함하는 복수의 서버를 포함할 수 있다. 여기서, 복수의 서버 각각은 서버 시스템이 요구하는 바와 같이 서로 다른 역할을 수행하도록 구성된다.
옵션으로, 제1 서버는 제1 역할에 따라 제1 실행 가능 소프트웨어를 실행하고, 적어도 하나의 다른 서버는 적어도 하나의 다른 역할에 따라 적어도 하나의 다른 실행 가능 소프트웨어를 실행한다. 본 개시서 전반에 걸쳐, "제1 실행 가능한 소프트웨어" 및 "적어도 하나의 다른 실행 가능한 소프트웨어"에서 사용되는 "실행 가능한 소프트웨어"라는 용어는 상기 제1 서버 및/또는 상기 적어도 하나의 다른 서버가 제1 역할 및 적어도 하나의 다른 역할과 같은 작업을 수행하도록 구성하기 위해 제1 서버 및/또는 적어도 하나의 다른 서버에 의해 실행 가능한 명령들의 컬렉션 또는 집합을 지칭한다. 또한, 실행 가능한 소프트웨어는 RAM, 하드 디스크, 광 디스크 등과 같은 저장 매체에 저장될 수 있으며, ROM 등에 저장된 소프트웨어인 소위 "펌웨어"를 포함하기 위한 것이다. 옵션으로, "실행 가능한 소프트웨어"라는 용어는 소프트웨어 애플리케이션을 나타낸다. 이러한 실행 가능한 소프트웨어는 다양한 방식으로 구성되는데, 예를 들어, 실행 가능한 소프트웨어는 라이브러리, 원격 서버 등에 저장된 인터넷 기반 프로그램, 소스 코드, 해석 코드, 객체 코드, 직접 실행 가능한 코드 등으로 구성된 컴포넌트들을 포함한다. 소프트웨어는 특정 기능을 수행하기 위해 서버 또는 다른 위치에 상주하는 다른 소프트웨어에 대한 호출 또는 시스템-수준 코드를 불러올 수 있다는 것이 이해될 수 있다. 또한, 실행 가능한 소프트웨어는 사전 구성되고, 운영 체제와 사전 통합되어, 소프트웨어 어플라이언스를 구축할 수 있다. 일례에서, 실행 가능한 소프트웨어는 온라인 게임 소프트웨어일 수 있다. 옵션으로, 제1 실행 가능한 소프트웨어와 적어도 하나의 다른 실행 가능한 소프트웨어는 동일하다. 이러한 경우, 제1 서버와 적어도 하나의 다른 서버에서 동일한 소프트웨어가 실행되어, 제1 서버와 적어도 하나의 다른 서버가 동일한 역할을 수행하게 한다. 옵션으로, 제1 실행 가능한 소프트웨어와 적어도 하나의 다른 실행 가능한 소프트웨어는 다르다. 이러한 경우, 제1 서버와 적어도 하나의 다른 서버에서 상이한 소프트웨어가 실행되어, 제1 서버와 적어도 하나의 다른 서버가 상이한 역할을 수행하게 한다. 이하에서는, 단순성과 명확성을 위하여, "제1 서버"와 "적어도 하나의 다른 서버"는 때때로 "메인 서버"로 상호 교환 가능하게 지칭된다.
특히, 적어도 하나의 예비 서버는 장애 또는 고장을 겪은 메인 서버들 중 임의의 서버를 인수하도록 구성된다. 특히, 적어도 하나의 예비 서버는, 메인 서버들의 장애 발생 시, 메인 서버들 중 어느 하나로부터 상기 적어도 하나의 예비 서버로의 트래픽 재루팅을 허용하기에 충분한 대역폭을 제공하도록 구성된다. 적어도 하나의 예비 서버는 장애가 발생한 메인 서버들 중 어느 하나에서의 실행 가능한 소프트웨어와 마찬가지로, 실행 가능한 소프트웨어를 실행하도록 구성되어, 복수의 사용자 디바이스들에 대한 서버들의 중단 없는 액세스를 제공한다는 것이 이해될 것이다.
옵션으로, 제1 서버, 적어도 하나의 다른 서버 및 적어도 하나의 예비 서버는 통신 네트워크를 통해 분산적으로(distributively) 상호 연결되어, 예를 들어 본원에 설명된 바와 같이 결정론적 방식으로 함께 작동하도록 구성될 수 있는 네트워크 전반에 설친 관리 계층, 서버, 라우터, 스위치와 같은 개별 구성 요소들 사이에 가상 분산 상호 연결된 백플레인(virtual distributed interconnected backplane)을 생성한다. 일례에서, 서버 시스템은 파장 분할 다중화(WDM) 또는 고밀도 파장 분할 다중화(DWDM) 및 (예를 들어, 광/광 인터페이스 기반 시스템과 함께) 광 상호 연결 기술, INFINIBAND, LIGHTNING I/O 또는 다른 기술들과 같은 기술들과 조합하여 사용될 수 있다. 유리하게는, 예를 들어, 별도의 서버들이 서로 물리적으로 멀리 떨어져 있을 수 있고 그리고/또는 서로에 대해 상이하거나 외부적인 둘 이상의 엔티티들(예를 들어, 둘 이상의 상이한 서비스 제공자들)에 의해 운영될 수 있도록 하기 위해 본 구성이 사용될 수 있다. 본 예에서, 하나 이상의 처리 기능은 하나 이상의 다른 처리 기능으로부터 물리적으로 멀리 위치할 수 있다(예를 들어, 별도의 섀시에 위치, 별도의 건물에 위치, 별도의 도시/국가 등에 위치). 그러나, 대안적 실시예에서, 원하는 경우, 다수의 컴포넌트들이 공통 로컬 설비에 위치할 수 있다.
또한, 관리 계층 서버는 하나 이상의 메인 서버들의 트래픽을 관리하고, 또한 제1 서버 및 적어도 하나의 다른 서버의 작동 상태와 관련된 정보에 액세스함으로써, 하나 이상의 메인 서버의 장애 시 적어도 하나의 예비 서버로 트래픽을 재라우팅하도록 구성된다. 관리 계층 서버는 시스템의 신뢰성을 향상시키기 위해 대역폭 활용을 최적화하고 트래픽 관리를 위한 밀도 결정을 허용하도록 구성된다는 것이 이해될 것이다. 특히, 상기 관리 계층 서버는, 각각의 메인 서버의 작동 상태를 지속적으로 모니터링하여 메인 서버 중 하나가 과부하에 걸리거나 고장난 상태인지 판단하고 하나 이상의 메인 서버에 장애가 발생한 경우 적어도 하나의 예비 서버에 트래픽을 재-라우팅하기 위해, 상기 제1 서버, 상기 적어도 하나의 다른 서버 및 상기 적어도 하나의 예비 서버와 통신 가능하게 연결된다.
특히, 관리 계층 서버는 제1 서버에 액세스할 제1 사용자 디바이스 그룹과 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하도록 구성된다. 특히, 서로 다른 사용자 디바이스 세트는 서로 다른 메인 서버들과 연관되어 있어서, 각각의 사용자 디바이스 그룹은 서로 다른 역할들을 실행하도록 할당된다. 일례에서, 시스템에서의 메인 서버들 및 관련 역할들의 수에 따라, 제1 사용자 디바이스 그룹은 제1 역할을 수행하도록 구성된 제1 서버에 할당되고, 적어도 하나의 다른 사용자 디바이스 그룹은 제2 역할을 실행하도록 구성된 적어도 하나의 다른 서버에 할당되고, 제3 사용자 디바이스 그룹은 제3 역할을 실행하도록 구성된 제3 서버에 할당된다. 옵션으로, 사용자 디바이스 그룹은 메인 서버들에 동적으로 할당되거나, 사용자 디바이스 그룹은 공통의 기준이나 특징과 같이 메인 서버에 기초하여 할당될 수 있다. 일례에서, 제1 사용자 디바이스 그룹은 하나의 지리적 위치에 속할 수 있고, 다른 사용자 디바이스 그룹은 다른 지리적 위치에 속할 수 있으며, 여기서, 사용자 각각의 지리적 위치에 기초하여, 제1 사용자 디바이스 그룹은 제1 서버에 할당되고, 다른 사용자 디바이스 그룹은 다른 서버에 할당된다. 엄밀히 말하면, 제1 사용자 그룹은 각각의 사용자 디바이스들을 지칭하며, 그 반대도 마찬가지이다. 실제로, 관리 계층 서버는 제1 사용자 그룹과 연관된 사용자 디바이스들로 제1 서버에 액세스할 제1 사용자 그룹을 할당하고, 적어도 하나의 다른 사용자 그룹과 연관된 사용자 디바이스들로 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 그룹을 할당하도록 구성된다. 따라서, 제1 사용자 그룹은 제1 사용자 디바이스 그룹과 연관된다. 적어도 하나의 다른 사용자 그룹은 적어도 하나의 다른 사용자 디바이스 그룹과 연관된다.
또한, 관리 계층 서버는 제1 서버에 의해 발송된 상태 정보 및 적어도 하나의 다른 서버에 의해 발송된 상태 정보를 수신하도록 구성된다. 상태 정보는 각 메인 서버의 현재 작동 상태와 관련이 있다는 것이 이해될 것이다. 각 메인 서버의 상태 정보는 관리 계층 서버에 의해 지속적으로 모니터링된다. 일례에서, 상기 제1 서버 및 상기 적어도 하나의 다른 서버는 규칙적이거나 불규칙한 시간 간격으로 지속적으로 상태 정보를 관리 계층 서버에 전송하도록 구성된다. 이러한 상태 정보의 예들은 "활성", "비활성", "시스템 장애", "시스템 과부하" 같은 신호들 또는 메시지들을 포함할 수 있으며, 이들은 각 메인 서버의 작동 상태를 나타내는 관리 계층 서버로 전송될 수 있다. 다른 예에서, 상태 정보는 폴링(polling)에 의해 각 메인 서버로부터 수신된다. 특히, 폴링은 핑(ping)에 의해 상태를 확인하고 메인 서버로부터 수신된 바와 같은 응답을 판독함으로써 수행된다.
또한, 관리 계층 서버는 제1 서버의 작동 상태 및 적어도 하나의 다른 서버의 작동 상태를 결정하기 위해 상태 정보를 분석하도록 구성된다. 예를 들어, 제1 서버 및 적어도 하나의 다른 서버의 작동 상태는 각각의 메인 서버로부터 수신된 상태 정보에 기초하여 "활성", "비활성", "시스템 장애", "시스템 과부하" 등으로 분석될 수 있다. 관리 계층 서버는 필요에 따라 다양한 작동 상태를 결정하도록 구성될 수 있다는 것이 이해될 것이다. 그러나, 이하에서는, 단순성과 명확성을 위해, 두 가지 작동 상태, 즉 활성 상태(메인 서버가 가동되어 실행중일 때)와 장애 상태(메인 서버가 응답하지 않고 그리고/또는 충돌될 때)가 고려될 것이다. 옵션으로, 작동 상태는 또한 분석 시점과 상태 정보를 수신하는 시점 간의 시간 차이를 결정함으로써 결정될 수도 있다. 일례에서, 상태 정보의 분석 시점과 상태 정보를 수신하는 시점 간의 시간차가 미리 결정된 시간차보다 큰 경우, 작동 상태는 장애 상태를 나타낸다. 이러한 서버 시스템은 메인 서버들로부터의 응답 지연 및/또는 상태 정보의 분석 지연으로 인해 발생했을 수 있는 시스템의 레이턴시(latency)를 방지한다는 것을 이해해야 한다.
옵션으로, 몇 가지 다른 파라미터들을 모니터링하여 메인 서버들의 작동 상태를 분석할 수 있는데, 이러한 파라미터들은 처리 엔진 대역폭, 파이버 채널 대역폭, 사용 가능한 드라이브 수, 드라이브당 IOPS(input/output operations per second) 및 저장 디바이스의 RAID(redundant array of inexpensive discs) 레벨, 데이터 블록 캐싱에 사용할 수 있는 메모리, 테이블 룩업 엔진 대역폭, 연결 제어 구조를 위한 RAM의 가용성 및 아웃바운드 네트워크 대역폭 가용성, 스트리밍 애플리케이션이 스트림별로 사용하고 연결 제어 구조 및 버퍼와 함께 사용하기 위한 공유 리소스(RAM 등), 서브 시스템 간 메시지 전달에 사용할 수 있는 대역폭, 다양한 서버 간 데이터 전달에 사용할 수 있는 대역폭 등을 포함하지만, 이에 제한되지는 않는다.
옵션으로, 관리 계층은 관리 계층 서버의 모니터링 엔진 역할을 하는 여러 계층들을 포함한다. 예를 들어, 관리 계층 서버는 각각의 메인 서버의 상태 정보를 획득하기 위한 상태 획득 계층, 서로 다른 메인 서버들 및 예비 서버들에 서로 다른 역할을 할당하고 그에 대한 구조화된 목록을 유지하기 위한 역할 관리 계층, 그리고 부하를 밸런싱하고 장애 발생시 메인 서버들에서 예비 서버들로 트래픽을 재-라우팅하기 위한 자원 관리 계층을 포함할 수 있다.
옵션으로, 서버 시스템은 메인 서버들 및 예비 서버들 각각의 역할들을 저장하기 위한 데이터베이스 어레인지먼트(database arrangement)를 더 포함한다. 또한, 데이터베이스 어레인지먼트는 메인 서버들 및 예비 서버들의 각각의 작동 상태를 저장하도록 구성된다. 특히, 이러한 정보는 실시간으로 또는 거의 실시간으로 지속적으로 업데이트된다. 본 개시서 전반에 걸쳐, 본 명세서에서 사용되는 용어 "데이터베이스 어레인지먼트"는 사용 시 관리 계층 서버가 각 서버의 역할, 각 서버의 작동 상태 등을 저장할 수 있게 하는 적어도 하나의 데이터베이스의 어레인지먼트를 지칭한다. "데이터베이스 어레인지먼트(database arrangement)"라는 용어는 일반적으로 정보를 조직화된(즉, 구조화된) 방식으로 저장하기 위한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합을 의미하며, 이에 따라 이러한 정보의 쉬운 저장, 액세스(즉, 검색), 업데이트 및 분석이 가능하다. 또한 "데이터베이스 어레인지먼트"라는 용어는 상기 데이터베이스 서비스를 서버 시스템에 제공하는 데이터베이스 서버를 포함한다. 데이터 보관소는 데이터베이스 어레인지먼트를 통해 구현된다는 것이 이해될 것이다.
컴퓨터 시스템은 프로세서 및 메모리를 포함할 수 있다. 프로세서는 Intel™ 또는 AMD™에서 제조하거나 ARM에서 라이센스를 받은 마이크로프로세서들과 같이 하나 이상의 알려진 프로세싱 디바이스들일 수 있다. 프로세서는 병렬 프로세스를 동시에 실행하는 단일 코어 또는 다중 코어 프로세서를 구성할 수 있다. 예를 들어, 프로세서는 가상 처리 기술로 구성된 단일 코어 프로세서일 수 있다. 특정 실시예들에서, 프로세서는 복수의 프로세스들을 동시에 실행하고 제어하기 위해 논리 프로세서들을 사용할 수 있다. 프로세서는 다중 소프트웨어 프로세스, 애플리케이션, 프로그램 등을 실시, 제어, 실행, 조작 및 저장할 수 있는 능력을 제공하기 위해 가상 기계 기술, 또는 다른 알려진 기술을 구현할 수 있다. 다른 실시예에서, 프로세서는 멀티 코어 프로세서 어레인지먼트(예를 들어, 듀얼, 쿼드 코어 등)를 포함할 수 있으며, 이는 상기 컴퓨팅 시스템이 다중 프로세스들을 동시에 실행하는 것을 허용하기 위해 병렬 처리 기능을 제공하도록 구성된다. 당업자라면 본원에서 개시되는 기능들을 제공하는 다른 유형들의 프로세서 어레인지번트들이 구현될 수 있다는 것을 이해할 것이다. 또한, 상기 메모리는 앱(들)과 같은 하나 이상의 프로그램(들)을 저장하는, 휘발성 또는 비-휘발성, 자기, 반도체, 솔리드-스테이트(solid-state), 테이프, 광학, 탈착식, 비-탈착식, 또는 다른 유형의 저장 장치 또는 유형(有形)의(다시 말하면, 비-일시적) 컴퓨터-판독가능 매체를 포함할 수 있다.
프로그램(들)은 하나 이상의 프로세서들에 의해 실행될 때 알려진 운영 체제 기능들을 수행하는 운영 체제들(미도시)을 포함할 수 있다. 예를 들어, 상기 운영 체제는 Microsoft Windows™, Unix™, Linux™, Android™ 및 Apple™ 운영 체제, Microsoft CE™ 과 같은 PDA(Personal Digital Assistant) 유형 운영 체제 또는 기타 유형의 운영 체제들을 포함할 수 있다. 따라서, 개시된 실시예들은 임의의 유형의 운영 체제를 실행하는 컴퓨팅 시스템들과 함께 작동하고 기능할 수 있다. 상기 컴퓨터 시스템은 또한 프로세서에 의해 실행될 때 웹 브라우저 소프트웨어, 태블릿 또는 스마트 핸드 헬드 장치 네트워킹 소프트웨어 등과 같은 네트워크 및/또는 로컬 네트워크와의 통신을 제공하는 통신 소프트웨어를 포함할 수 있다.
일 실시예에 따르면, 상기 관리 계층 서버는, 상기 제1 서버의 작동 상태가 상기 제1 서버의 장애 상태를 나타내면 상기 제1 역할을 제1 프리 역할로 애드버타이징하고, 상기 적어도 하나의 다른 서버의 작동 상태가 상기 적어도 하나의 다른 서버의 장애 상태를 나타내면 상기 적어도 하나의 다른 역할을 적어도 하나의 다른 프리 역할로 애드버타이징하도록 더 구성된다. 구체적으로, 상기 관리 계층 서버는 상기 제1 서버의 작동 상태가 장애 상태를 나타내면 상기 제1 역할이 프리 역할이라는 신호를 폴링으로 내보내며, 예비 서버들 중 임의의 서버가 상기 제1 역할을 맡을 수 있다. 이와 유사하게, 관리 계층 서버는 다른 서버의 작동 상태가 다른 서버의 장애 상태를 나타낸다면 다른 역할이 프리 역할이라는 신호를 폴링으로 내보낸다. 여기서, "프리 역할(free role)"이라는 용어는 현재 서버들 중 어느 하나에 의해 실행되지 않아서 서버들 중 어느 하나에 의해 자유롭게 실행될 수 있는 작업, 기능 또는 프로그램을 의미한다. 전술한 바와 같이, 역할 관리 계층은 각 서버에 대해 각 역할의 목록을 유지하고 실시간으로 목록을 지속적으로 업데이트하도록 구성된다. 역할들을 애드버타이징하는 것은 가용성을 위해 각 서버를 별도로 폴링할 필요가 없으므로 유용하다. 애드버타이즈먼트(advertisement)를 수신한 서버가 역할을 맡을 수 있다면, 별도로 폴링하는 것보다 더 빠르게 수행할 수 있다. 예를 들어 수백 대의 서버가 있을 수 있으며, 이러한 서버 하나씩 가용성을 요청하는 데 시간이 걸리고 사용자 디바이스에 제공되는 서비스의 중단 시간이 길어질 것이다. 애드버타이즈먼트는 예를 들어 멀티캐스트 또는 브로드캐스트 프로토콜을 사용하여 수행될 수 있다. 애드버타이즈먼트는 응답의 부하를 줄이기 위해 유니캐스트로(예를 들어 사용자 데이터그램 프로토콜을 사용함으로써) 사용될 수 있다.
또한, 관리 계층 서버는, 제1 서버의 작동 상태가 장애 상태를 나타낼 때, 적어도 하나의 예비 서버 중 제1 서버의 역할을 제1 역할로 업데이트하고, 제1 사용자 디바이스 그룹을 적어도 하나의 예비 서버 중 제1 서버로 재할당하도록 구성된다. 이러한 경우, 제1 사용자 디바이스 그룹과 제1 서버 간의 통신 링크가 중단될 수 있고, 제1 사용자 디바이스 그룹과 적어도 하나의 예비 서버 중 제1 서버 사이에 새로운 통신 링크가 설정될 수 있다. 예비 서버의 작동 상태는 특정 예비 서버에 대한 제1 사용자 디바이스 그룹의 할당 전에 결정된다는 것이 이해될 것이다. 특히, 제1 서버에 의해 초기에 실행된 제1 역할은 예비 서버에 의해 수행되도록 할당된다. 옵션으로, 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 관리 계층 서버는 상기 제1 역할의 현재 실행 상태를 결정하고 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 현재 실행 상태로 업데이트하도록 더 구성된다.
또한, 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 관리 계층 서버는 상기 적어도 하나의 예비 서버 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 상기 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재할당하도록 구성된다. 이러한 경우, 다른 사용자 디바이스 그룹과 다른 서버 간의 통신 링크가 중단될 수 있고, 다른 사용자 디바이스 그룹과 적어도 하나의 예비 서버 중 다른 서버 사이에 새로운 통신 링크가 설정될 수 있다. 예비 서버의 작동 상태는 특정 예비 서버에 대한 다른 사용자 디바이스 그룹의 할당 전에 결정된다는 것이 이해될 것이다. 특히, 다른 서버에 의해 초기에 실행된 다른 역할은 특정 예비 서버에 의해 수행되도록 할당된다. 옵션으로, 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 관리 계층 서버는 상기 적어도 하나의 다른 역할의 현재 실행 상태를 결정하고 상기 적어도 하나의 예비 서버 중 적어도 하나의 다른 서버의 적어도 하나의 다른 역할을 상기 현재 실행 상태로 업데이트하도록 더 구성된다.
실제로, 이러한 역할 업데이트 설정을 통해 네트워크 리소스(예비 서버들)를 효율적으로 사용할 수 있다. 각 예비 서버가 임의의 역할(제1 프리 역할 또는 다른 프리 역할)을 수행하도록 구성될 수 있으므로 예비 서버의 양을 줄일 수 있다. 따라서 가능한 각 역할에 대해 전용 예비 서버가 필요하지 않다. 프리 역할의 애드버타이즈먼트는 예를 들어 예비 서버들에게 메시지를 발송함으로써 구현될 수 있다. 메시지가 예비 서버 각각을 한 번에 하나씩 폴링하는 것보다 더 빠르게 예비 서버들에 도달할 수 있도록 하기 위해 예를 들어 멀티캐스트 프로토콜을 사용하여 메시징을 수행할 수 있다.
본 개시서 전반에 걸쳐, 본 명세서에서 사용되는 "현재 실행 상태"라는 용어는 서버의 고장, 과부하 또는 신호 중단 전에 제1 서버 및 적어도 하나의 다른 서버 각각의 진행 중인 기능 상태를 의미한다. 특히, 각 서버와 연관된 사용자 디바이스들은 일정한 간격으로 디스크 이미지를 획득하고 저장하도록 구성된다. 여기서, 디스크 이미지는 타임 스탬프 및 서버의 실행 상태를 나타내는 특정 타임 스탬프에서 실행되는 명령 코드를 포함할 수 있다. 예를 들어, 게임 애플리케이션의 경우, 디스크 이미지는 게임의 레벨, 또는 게임이 중단된 타임스탬프(그에 대한 명령 세트 포함)에 대응할 수 있다. 또한, 획득된 디스크 이미지는 관리 계층 서버와 공유되며, 그 다음, 관리 계층 서버는 프리 역할을 수행하도록 할당된 예비 서버와 상기 디스크 이미지를 공유하도록 구성된다.
일 실시예에 따르면, 서버 시스템은 프록시 서버 계층을 더 포함하며, 상기 프록시 서버 계층은 상기 재-할당된 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버에 재-라우팅하고 그리고 상기 재-할당된 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재-라우팅하도록 구성된다. 본 개시서 전반에 걸쳐, "프록시 서버 계층"이란 용어는 제1 사용자 디바이스 그룹 및 다른 사용자 디바이스 그룹과 연관된 사용자 디바이스들과 서버들 간의 중간 인터페이스를 의미한다. 특히, 프록시 서버 계층은 제1 서버 및/또는 다른 서버에서 사용할 수 있는 파일, 커넥션, 웹 페이지 또는 다른 리소스와 같은 일부 서비스에 대해 서버에게 요청하도록 구성된다. 프록시 서버 계층은 사용자에게 익명성을 제공하는 것, 캐싱을 이용하여 성능을 향상시키는 것, 보안 개선 등을 포함하여 당업계에 공지된 바와 같은 하나 이상의 작업들을 수행하는 것으로 이해될 것이다. 또한, 서버 시스템은 제1 사용자 디바이스 그룹 및 다른 사용자 디바이스 그룹을 특정 예비 서버들에게 재-라우팅하는 것을 수행하기 위한 라우터들, 스위치들 및 스위치 패브릭들을 포함한다. 위의 프록시 서버 계층 설정을 사용하는 것의 기술적 효과는 디바이스 사용자들에게 중단 없는 서비스를 가능하게 하는 것이다. 실제로, 프록시 서버를 재구성하면 필요한 경우 사용자 단말에서 예비 서버로 신호를 재-라우팅할 수 있다. 이렇게 하면 세션이 크게 중단되지 않으므로 사용성이 향상된다.
본 개시서는 또한 사이버 보안을 향상시키는 방법에 관한 것이다. 위에 개시된 다양한 실시예들 및 변형들은 방법에 필요한 수정을 가하여 적용된다.
옵션으로, 상기 방법은 : 상기 제1 서버의 작동 상태가 상기 제1 서버의 장애 상태를 나타낼 때 제1 역할을 제1 프리 역할(free role)로 애드버타이징하는 단계 및 상기 적어도 하나의 다른 서버의 작동 상태가 상기 적어도 하나의 다른 서버의 장애 상태를 나타낼 때 상기 적어도 하나의 다른 역할을 적어도 하나의 다른 프리 역할로 애드버타이징하는 단계를 더 포함한다.
옵션으로, 상기 방법은 : 상기 제1 서버에서, 상기 제1 역할에 따라 제1 실행 가능한 소프트웨어를 실행하는 단계; 및 상기 적어도 하나의 다른 서버에서, 상기 적어도 하나의 다른 역할에 따라 적어도 하나의 다른 실행 가능한 소프트웨어를 실행하는 단계를 더 포함한다.
옵션으로, 제1 실행 가능한 소프트웨어와 적어도 하나의 다른 실행 가능한 소프트웨어는 동일하다. 이는 다수의 사용자가 각각의 사용자 디바이스로 동일한 게임과 같은 동일한 실행 가능 소프트웨어에 액세스하는 시스템에서 유용하다. 각 사용자들의 사용자 디바이스들의 제1 그룹은 초기에 제1 서버(제1 실행 가능 소프트웨어를 실행함)를 사용하도록 구성된 시나리오에 있을 것이고, 각각의 사용자 디바이스들을 가진 적어도 하나의 다른 사용자 그룹은 적어도 하나의 다른 서버(동일한 제1 실행 가능 소프트웨어를 실행함)에 액세스하도록 구성된 시나리오에 있을 것이다. 즉, 모든 사용자는 각각의 사용자 디바이스를 통해 사실상 동일한 소프트웨어(예를 들어, 동일한 게임)에 액세스할 것이다. 제1 서버에 장애가 발생할 경우, 각각의 제1 사용자 디바이스 그룹을 이용하여 제1 서버를 사용중인 제1 사용자 그룹은 (예비 서버가 제1 서버의 역할을 수행하도록 구성될 때까지) 서비스 중단을 겪을 수 있지만, 각각의 적어도 하나의 다른 사용자 디아비스 그룹을 사용하는 적어도 하나의 다른 사용자 그룹은 서비스 중단을 겪지 않을 것이다.
옵션으로, 제1 실행 가능한 소프트웨어와 적어도 하나의 다른 실행 가능한 소프트웨어는 서로 다르다.
옵션으로, 상기 방법은 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 제1 역할의 현재 실행 상태를 결정하는 단계, 그리고 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 현재 실행 상태로 업데이트하는 단계를 더 포함한다. 이렇게 하면 제1 역할을 빠르게 사용할 수 있다.
옵션으로, 상기 방법은 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 다른 역할의 현재 실행 상태를 결정하는 단계, 그리고 상기 적어도 하나의 예비 서버 중 적어도 하나의 다른 서버의 적어도 하나의 다른 역할을 상기 현재 실행 상태로 업데이트하는 단계를 더 포함한다. 이렇게 하면 제1 역할을 빠르게 사용할 수 있다.
옵션으로, 상기 방법은 분석 시점과 상태 정보를 수신하는 시점 간의 시간차를 결정하는 단계; 상기 시간차가 미리 결정된 시간차보다 큰지 여부를 분석하는 단계; 및 상기 시간차가 미리 결정된 시간차보다 크다면, 상기 작동 상태는 장애 상태를 나타내는 것으로 간주하는 단계를 더 포함한다. 이것은 서버가 어떤 이유로 통신을 제공할 수 없는 시나리오에 대한 페일-세이프 메커니즘(fail-safe mechanism)을 제공한다. 예를 들어 서버의 작동 전원이 부족하거나, 운영 체제가 충돌되었거나, 유지 관리 중이거나 애플리케이션/서비스가 충돌되었을 수 있다.
옵션으로, 상기 방법은 프록시 서버 계층이 상기 재-할당된 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버에 재-라우팅하고 그리고 상기 재-할당된 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재-라우팅하도록 구성하는 단계를 더 포함한다.
추가 옵션으로, 상기 방법은 적어도 하나의 예비 서버가 제1 역할 또는 적어도 하나의 다른 역할로 업데이트되는 경우, 적어도 하나의 추가 예비 서버를 설정하는 단계를 더 포함한다. 이렇게 하면 다른 서버가 충돌할 경우에도 충분한 수의 예비 서버를 유지할 수 있기 때문에 유용하다. 또한, 추가적인 또는 대안적인 실시예에 따르면, 애드버타이징되고 있는 역할은 예비 서버의 역할일 수 있다.
도면의 상세한 설명
도 1을 참조하면, 본 개시서의 실시예에 따른 예시적인 서버 시스템(100)의 블록도가 도시되어 있다. 도시된 바와 같이, 서버 시스템(100)은 제1 서버(102), 적어도 하나의 다른 서버(104) 및 적어도 하나의 예비 서버(106)를 포함한다. 또한, 서버 시스템(100)은 제1 서버(102)에 할당된 사용자 디바이스들의 제1 그룹(108, 110, 112)과 다른 서버(104)에 할당된 사용자 디바이스들(114, 116, 118)의 적어도 하나의 다른 그룹을 포함한다. 여기서, 예비 서버(106)는 예비 서버(106)에 할당되는 사용자 디바이스들이 없기 때문에 대기 모드에 있다. 또한, 서버 시스템(100)은 제1 서버(102), 적어도 하나의 다른 서버(104) 및 적어도 하나의 예비 서버(106)와 통신 가능하게 결합된 관리 계층 서버(120)를 포함한다. 여기서, 관리 계층 서버(120)는 제1 서버(102), 적어도 하나의 다른 서버(104), 그리고 제1 서버(102) 및/또는 다른 서버(104)의 장애 발생 시 자원 관리 및 트래픽 재-라우팅을 위한 적어도 하나의 예비 서버(106) 각각의 작동 상태를 결정하도록 구성된다.
도 1은 일례에 불과하며, 본 명세서의 청구범위를 지나치게 제한하지 않아야 한다. 서버 시스템(100)에 대한 구체적인 명칭은 일례로서 제공되는 것으로, 시스템(100)을 특정 수의 서버, 관리 계층 서버 및 사용자 디바이스로 한정하는 것으로 해석되는 것은 아니라는 것이 이해되어야 한다. 당업자는 본 개시서의 실시예들의 많은 변형, 대안 및 변형들을 인식할 것이다.
도 2a 및 도 2b를 참조하면, 본 개시서의 다양한 실시예에 따른 시스템(200)의 네트워크 환경의 블록도들이 도시되어 있다. 도시된 바와 같이, 네트워크 환경(200)은 (도 1의 제1 서버와 같은) 제1 서버(204)에 통신 가능하게 연결된 (도 1의 관리 계층 서버와 같은) 관리 계층 서버(202), (도 1의 적어도 하나의 예비 서버와 같은) 제1 예비 서버(206) 및 (도 1의 적어도 하나의 다른 서버와 같은) 적어도 하나의 다른 서버(208)를 포함한다. 또한, 네트워크 환경(200)은 각 서버(204, 206, 208)의 현재 실행 상태를 저장하도록 구성된 데이터베이스 어레인지먼트(210)를 포함한다. 또한, 네트워크 환경(200)은 프록시 서버 계층(212)을 포함한다.
도 2a에 도시된 바와 같이, 제1 사용자 디바이스(214A, 214B, 214C) 그룹과 연관된 제1 사용자 그룹은 프록시 서버 계층(212)을 통해 제1 서버(204)와 연결되고, 적어도 하나의 다른 사용자 디바이스(216A, 216B, 216C) 그룹과 연관된 적어도 하나의 다른 사용자 그룹(제2 사용자 그룹)은 프록시 서버 계층(212)을 통해 적어도 하나의 다른 서버(208)에 연결된다. 본원에서, 제1 서버(204)는 제1 역할에 따라 제1 실행 가능 소프트웨어를 실행하고, 적어도 하나의 다른 서버(208)는 제2 역할에 따라 제2 실행 가능 소프트웨어를 실행한다. 또한, 제1 서버(204) 및 적어도 하나의 다른 서버(208)는 상태 정보를 관리 계층 서버(202)에 전송하도록 구성된다. 여기서, 제1 서버(204) 및 적어도 하나의 다른 서버(208)는 상태 정보를 "ACTIVE"로 전송하며, 이에 의해, 사용자 디바이스(214A, 214B, 214C) 간에 제1 서버(204)와의 연결이 유지되며, 사용자 디바이스(216A, 216B, 216C) 간에 적어도 하나의 다른 서버(208)와의 연결이 유지된다.
도 2b에 도시된 바와 같이, 제1 서버(204) 및 적어도 하나의 다른 서버(제2 서버라고도 알려짐)(208)는 상태 정보를 관리계층 서버(202)로 전송하도록 구성된다. 여기서, 관리 계층 서버(202)에게 제1 서버(204)는 상태 정보를 "FAILED"로 송신하고, 적어도 하나의 다른 서버(208)는 상태 정보를 "ACTIVE"로 송신한다. 이 경우, 관리 계층 서버(202)는 제1 역할을 프리 역할(free role)로 애드버타이징하고 제1 사용자 그룹과 연관된 사용자 디바이스들(214A, 214B, 214C)을 제1 예비 서버(206)에 할당하도록 구성된다. 여기서, 제1 사용자 그룹의 재-라우팅은 프록시 서버 계층(212)에 의해 수행된다. 또한, 제1 예비 서버(206)는 제1 역할에 따라 제1 실행 가능 소프트웨어를 수행하도록 구성된다. 구체적으로, 현재 실행 상태는 데이터베이스 어레인지먼트(210)에서 액세스된다. 또한, 전술한 바와 같이, 적어도 하나의 다른 서버(208)가 할당되며, 사용자 디바이스(216A, 216B, 216C)와 연관된 적어도 하나의 다른 사용자 그룹(제2의 사용자 그룹)이 프록시 서버 계층(212)을 통해 적어도 하나의 다른 서버(208)에 연결된다. 여기서, 적어도 하나의 다른 서버(208)는 제2 역할에 따라 제2 실행 가능 소프트웨어를 실행한다. 여기서, 예비 서버(206)는 관리 계층 서버(202)에 상태 정보를 "ACTIVE"로 송신하고, 이에 따라, 사용자 디바이스들(214A, 214B, 214C)과 예비 서버(206)와의 연결이 유지되며; 적어도 하나의 다른 서버(208)는 관리 계층 서버(202)에 상태 정보를 "ACTIVE"로 송신하고, 이에 따라 사용자 디바이스들(216A, 216B, 216C)과 적어도 하나의 다른 서버(208)와의 연결이 유지된다. 적어도 하나의 다른 서버는 용어를 명확히 하기 위해 제1 서버에 대한 제2 서버로 간주될 수 있다. 적어도 하나의 다른 그룹의 사용자 디바이스들(및 각각의 사용자들)은 용어들을 명확히 하기 위해 제2 그룹으로 간주될 수 있다.
도 3을 참조하면, 본 개시서의 일 실시예에 따라, 사용자 디바이스들을 한 서버에서 다른 서버로 재-라우팅하기 위해 서버 시스템(300)에 사용된 기능 요소들을 도시한 블록도가 도시되어 있다. 도시된 바와 같이, 서버 시스템(300)은 한 서버에서 다른 서버로 트래픽을 재라우팅하는 라우터(304)와 통신하는 관리 계층 서버(302)를 포함한다. 또한, 라우터(304)는 제1 서버(306) 및 예비 서버(308)에 연결된다. 또한, 사용자 디바이스들(310, 312)은 스위치들(314, 316)을 통해 각각 제1 서버(306)에 할당된다. 도시된 바와 같이, 사용자 디바이스(310)는 사용자 디바이스(306)의 현재 실행 상태를 저장하도록 구성된 메모리(310A)를 포함하고, 사용자 디바이스(312)는 사용자 디바이스(312)의 현재 실행 상태를 저장하도록 구성된 메모리(312A)를 포함한다. 또한, 제1 서버(306)의 상태 정보는 관리 계층 서버(302)로 전송된다. 상태 정보가 "액티브(ACTIVE)"인 경우, 라우터(304)는 제1 서버(306) 및 사용자 디바이스들(310, 312)과 링크 "A"를 설정한다. 상태 정보가 "장애(FAILED)"인 경우, 라우터 304는 그림과 같이 예비 서버 308 및 사용자 장치 310, 312와 링크 "B"를 설정한다.
도 4를 참조하면, 본 개시서의 일 실시예에 따른, 스위치(400B)와 통신하는 관리 계층 서버(400A)의 아키텍처를 도시한 블록도가 도시되어 있다. 도시된 바와 같이, 관리 계층 서버(400A)는 랜덤 액세스 메모리(RAM)(404), 플래시 메모리(406), BIOS(408) 및 운영 체제(OS)(410)를 포함하는 프로세서(402)를 포함한다. 또한, 관리 계층 서버(400A)는 전원(412)을 포함한다. 여기서, 관리 계층 서버(400A)의 주요 기능은 서버의 작동 효율을 향상시키도록 구성된다. 프로세서(402)는 낮은 전력 및 낮은 클럭 속도로 동작한다. 프로세서(402)는 스위치(400B)로부터의 신호들을 제어하고 처리한다. 여기서, 프로세서는 폴링 요청에 응답하여 사용자 디바이스의 결정된 작동 상태 및 스위치(400B)의 RAM(418)의 상태 정보를 판독한다. 또한, 플래시 메모리(406)는 BIOS(408)로부터의 부팅 코드와 OS(410)로부터의 코드를 저장하여, 관리 계층 서버(400A)의 작업들을 가능하게 하도록 구성된다. RAM(404)은 각 서버의 업데이트된 역할들을 저장하고 각 서버의 작동 상태와 관련된 구조화된 목록을 유지하도록 구성된다.
도시된 바와 같이, 스위치(400B)는 버스(414)를 통해 관리 계층 서버(400A)와 통신한다. 스위치(400B)는 스위치(400B)의 동작을 제어하고 데이터의 안정적인 전송을 보장하기 위해 각 데이터 패킷의 목적지를 결정하기 위해 프로세서(416)를 포함한다. 또한, 프로세서(416)는 서버의 작동 상태에 대응하는 다양한 파라미터들의 목록을 유지한다. 이러한 정보는 스위치(400B)의 RAM(418) 또는 비휘발성 메모리(420)에 저장된다.
도 5a 및 도 5b를 참조하면, 본 개시서의 일 실시예에 따른, 서버 시스템 관리 방법의 단계들을 도시한 흐름도(500)가 도시되어 있다. 단계 502에서, 제1 역할은 제1 서버에서 실행된다. 단계 504에서, 적어도 하나의 다른 역할이 적어도 하나의 다른 서버에서 실행된다. 단계 506에서, 상기 제1 서버에 액세스할 제1 사용자 디바이스 그룹 및 상기 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹이 할당된다. 단계 508에서, 상태 정보는 제1 서버 및 적어도 하나의 다른 서버로부터 수신된다. 단계 510에서, 상기 상태 정보를 분석함으로써, 상기 제1 서버의 작동 상태 및 상기 적어도 하나의 다른 서버의 작동 상태가 결정된다. 단계 512에서, 상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버 중 제1 서버의 역할이 상기 제1 역할로 업데이트되고, 그리고 상기 제1 사용자 디바이스 그룹이 상기 적어도 하나의 예비 서버 중 상기 제1 서버에 재할당된다. 단계 514에서, 상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버 중 다른 서버의 역할이 상기 적어도 하나의 다른 역할로 업데이트되고, 그리고 상기 적어도 하나의 다른 사용자 디바이스 그룹이 상기 적어도 하나의 다른 예비 서버에 재할당된다.
첨부된 청구항에 의해 정의된 본 개시서의 범위를 벗어나지 않으면서 전술한 내용에 설명된 본 개시서의 실시예들에 대한 수정이 가능하다. 본 개시 내용을 설명하고 청구하기 위해 사용되는 "구비하는(including)", "포함하는(comprising)", "포함하는(incorporating)", "갖는(have)", "~이다(is)"와 같은 표현들은 비-배타적인 방식으로 해석되도록 의도되는데, 다시 말하면 명시적으로 설명되지 않은 항목, 컴포넌트 또는 요소를 허용한다. 단수에 대한 참조는 또한 복수와 관련이 있는 것으로 해석되어야 한다.

Claims (20)

  1. 서버 시스템(100, 200)으로서,
    제1 역할을 실행하도록 구성된 제1 서버(102, 204);
    적어도 하나의 다른 역할을 실행하도록 구성된 적어도 하나의 다른 서버(104, 208);
    적어도 하나의 예비 서버(106, 206); 및
    관리 계층 서버(120, 202)를 포함하며,
    상기 관리 계층 서버(120, 202)는 :
    상기 제1 서버(102, 204)에 액세스할 제1 사용자 디바이스 그룹(108, 110, 112, 214A, 214B, 214C)을 할당하고, 적어도 하나의 다른 서버(104, 208)에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹(114, 116, 118, 216A, 216B, 216C)을 할당하고;
    상기 제1 서버(102)에 의해 발송된 상태 정보 및 상기 적어도 하나의 다른 서버(104)에 의해 발송된 상태 정보를 수신하고;
    상기 상태 정보를 분석하여 제1 서버(102)의 작동 상태 및 상기 적어도 하나의 다른 서버(104)의 작동 상태를 결정하고;
    상기 제1 서버(102)의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버(106) 중 제1 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스 그룹(108, 110, 112)을 상기 적어도 하나의 예비 서버(106) 중 상기 제1 서버에 재할당하고; 그리고
    상기 적어도 하나의 다른 서버(104)의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버(106) 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 그리고 상기 적어도 하나의 다른 사용자 디바이스 그룹(114, 116, 118)을 상기 적어도 하나의 다른 예비 서버(106)에 재할당하도록 구성되는, 서버 시스템.
  2. 청구항 1에 있어서,
    상기 관리 계층 서버(120, 202)는 상기 제1 서버(102)의 작동 상태가 상기 제1 서버의 장애 상태를 나타낼 때 제1 역할을 제1 프리 역할(free role)로 애드버타이징하고 그리고 상기 적어도 하나의 다른 서버의 작동 상태가 상기 적어도 하나의 다른 서버의 장애 상태를 나타낼 때 상기 적어도 하나의 다른 역할을 적어도 하나의 다른 프리 역할로 애드버타이징하도록 더 구성되는, 서버 시스템.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 제1 서버는 상기 제1 역할에 따라 제1 실행 가능 소프트웨어를 실행하고, 상기 적어도 하나의 다른 서버는 상기 적어도 하나의 다른 역할에 따라 적어도 하나의 다른 실행 가능한 소프트웨어를 실행하는, 서버 시스템.
  4. 청구항 3에 있어서,
    상기 제1 실행 가능 소프트웨어 및 상기 적어도 하나의 다른 실행 가능 소프트웨어는 동일한, 서버 시스템.
  5. 청구항 3에 있어서,
    상기 제1 실행 가능 소프트웨어 및 상기 적어도 하나의 다른 실행 가능 소프트웨어는 서로 다른, 서버 시스템.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
    상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 관리 계층 서버는 상기 제1 역할의 현재 실행 상태를 결정하고 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 현재 실행 상태로 업데이트하도록 구성되는, 서버 시스템.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서,
    상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 관리 계층 서버는 상기 적어도 하나의 다른 역할의 현재 실행 상태를 결정하고 상기 적어도 하나의 예비 서버 중 적어도 하나의 다른 서버의 적어도 하나의 다른 역할을 상기 현재 실행 상태로 업데이트하도록 구성되는, 서버 시스템.
  8. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서,
    분석 시점과 상기 상태 정보를 수신하는 시점 간의 시간차가 미리 결정된 시간차보다 크다면, 상기 작동 상태는 장애 상태를 나타내는, 서버 시스템.
  9. 청구항 1 내지 청구항 8 중 어느 한 항에 있어서,
    상기 서버 시스템은 프록시 서버 계층(212)을 더 포함하며,
    상기 프록시 서버 계층(212)은 상기 재-할당된 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버에 재-라우팅하고 그리고 상기 재-할당된 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재-라우팅하도록 구성되는, 서버 시스템.
  10. 서버 시스템을 관리하기 위한 방법으로서,
    상기 방법은 :
    제1 서버에서 제1 역할을 실행하는 단계;
    적어도 하나의 다른 서버에서 적어도 하나의 다른 역할을 실행하는 단계;
    상기 제1 서버에 액세스할 제1 사용자 디바이스(108, 11, 112) 그룹 및 상기 적어도 하나의 다른 서버에 액세스할 적어도 하나의 다른 사용자 디바이스(114, 116, 118) 그룹을 할당하는 단계;
    제1 서버로부터의 상태 정보 및 상기 적어도 하나의 다른 서버로부터의 상태 정보를 수신하는 단계;
    상기 상태 정보를 분석함으로써, 상기 제1 서버의 작동 상태 및 상기 적어도 하나의 다른 서버의 작동 상태를 결정하는 단계;
    상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 상기 제1 역할로 업데이트하고, 그리고 상기 제1 사용자 디바이스(108, 110, 112) 그룹을 상기 적어도 하나의 예비 서버 중 상기 제1 서버에 재할당하는 단계; 및
    상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 예비 서버 중 다른 서버의 역할을 상기 적어도 하나의 다른 역할로 업데이트하고, 그리고 상기 적어도 하나의 다른 사용자 디바이스(114, 116, 118) 그룹을 상기 적어도 하나의 다른 예비 서버에 재할당하는 단계를 포함하는, 서버 시스템 관리 방법.
  11. 청구항 10에 있어서,
    상기 방법은 : 상기 제1 서버의 작동 상태가 상기 제1 서버의 장애 상태를 나타낼 때 제1 역할을 제1 프리 역할(free role)로 애드버타이징하는 단계 및 상기 적어도 하나의 다른 서버의 작동 상태가 상기 적어도 하나의 다른 서버의 장애 상태를 나타낼 때 상기 적어도 하나의 다른 역할을 적어도 하나의 다른 프리 역할로 애드버타이징하는 단계를 더 포함하는, 서버 시스템 관리 방법.
  12. 청구항 10 또는 청구항 11에 있어서,
    상기 제1 서버에서, 상기 제1 역할에 따라 제1 실행 가능한 소프트웨어를 실행하는 단계; 및
    상기 적어도 하나의 다른 서버에서, 상기 적어도 하나의 다른 역할에 따라 적어도 하나의 다른 실행 가능한 소프트웨어를 실행하는 단계를 더 포함하는, 서버 시스템 관리 방법.
  13. 청구항 12에 있어서,
    상기 제1 실행 가능 소프트웨어 및 상기 적어도 하나의 다른 실행 가능 소프트웨어는 동일한, 서버 시스템 관리 방법.
  14. 청구항 12에 있어서,
    상기 제1 실행 가능 소프트웨어 및 상기 적어도 하나의 다른 실행 가능 소프트웨어는 서로 다른, 서버 시스템 관리 방법.
  15. 청구항 10 내지 청구항 14 중 어느 한 항에 있어서,
    상기 제1 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 제1 역할의 현재 실행 상태를 결정하고, 상기 적어도 하나의 예비 서버 중 제1 서버의 역할을 현재 실행 상태로 업데이트하는, 서버 시스템 관리 방법.
  16. 청구항 10 내지 청구항 15 중 어느 한 항에 있어서,
    상기 적어도 하나의 다른 서버의 작동 상태가 장애 상태를 나타낼 때, 상기 적어도 하나의 다른 역할의 현재 실행 상태를 결정하고, 상기 적어도 하나의 예비 서버 중 적어도 하나의 다른 서버의 적어도 하나의 다른 역할을 현재 실행 상태로 업데이트하는, 서버 시스템 관리 방법.
  17. 청구항 10 내지 청구항 16 중 어느 한 항에 있어서,
    상기 방법은 :
    - 분석 시점과 상기 상태 정보를 수신하는 시점 간의 시간차를 결정하는 단계;
    - 상기 시간차가 미리 결정된 시간차보다 큰지 여부를 분석하는 단계; 및
    - 상기 시간차가 미리 결정된 시간차보다 크다면, 상기 작동 상태는 장애 상태를 나타내는 것으로 간주하는 단계를 더 포함하는, 서버 시스템 관리 방법.
  18. 청구항 10 내지 청구항 17 중 어느 한 항에 있어서,
    상기 방법은 상기 재-할당된 제1 사용자 디바이스 그룹을 상기 적어도 하나의 예비 서버에 재-라우팅하고 그리고 상기 재-할당된 적어도 하나의 다른 사용자 디바이스 그룹을 상기 적어도 하나의 다른 예비 서버에 재-라우팅하도록 프록시 서버 계층을 구성하는 단계를 더 포함하는, 서버 시스템 관리 방법.
  19. 청구항 10 내지 청구항 17 중 어느 한 항에 있어서,
    상기 방법은 상기 적어도 하나의 예비 서버가 제1 역할 또는 적어도 하나의 다른 역할로 업데이트되는 경우, 적어도 하나의 추가 예비 서버를 설정하는 단계를 더 포함하는, 서버 시스템 관리 방법.
  20. 제1 역할에 따라 제1 소프트웨어를 실행하기 위한 제1 서버, 제2 역할에 따라 적어도 하나의 다른 소프트웨어를 실행하기 위한 적어도 하나의 다른 서버, 제3 역할을 갖는 적어도 하나의 예비 서버 및 관리 계층 서버를 포함하는 서버 시스템을 관리하기 위한 방법으로서,
    상기 방법은 :
    상기 관리 계층 서버에 역할 목록을 제공하는 단계;
    상기 제1 서버에서 실행되는 실행 가능한 제1 소프트웨어에 액세스할 제1 사용자 디바이스 그룹 및 적어도 하나의 다른 서버에서 실행되는 실행 가능한 적어도 하나의 다른 소프트웨어에 액세스할 적어도 하나의 다른 사용자 디바이스 그룹을 할당하는 단계;
    상기 제1 서버 및 상기 적어도 하나의 다른 서버에 의해, 상기 관리 계층 서버에 상태 정보를 전송하는 단계;
    상기 관리 계층 서버에 의해, 상기 상태 정보를 수신하고 상기 수신된 상태 정보를 분석하여, 상기 제1 서버의 제1 작동 상태 및 상기 적어도 하나의 다른 서버의 제2 작동 상태를 결정하는 단계;
    상기 제1 작동 상태가 상기 제1 서버에서 장애를 나타낼 때, 상기 관리 계층 서버에 의해, 상기 제1 역할을 프리 역할(free role)로서 애드버타이징(advertising)하거나, 상기 제2 작동 상태가 상기 적어도 하나의 다른 서버에서 장애를 나타낼 때 상기 제2 역할을 프리 역할로서 애드버타이징하는 단계;
    상기 적어도 하나의 예비 서버의 제3 역할을 상기 애드버타이징된 프리 역할로서 업데이트하는 단계;
    적어도 하나의 예비 서버에서 상기 업데이트된 제3 역할에 따라 제3 소프트웨어를 실행하는 단계; 및
    장애가 발생한 서버에 할당되었던 사용자 디바이스 그룹을 재할당하여, 적어도 하나의 예비 서버를 실행하는 제3 실행 가능한 소프트웨어에 액세스하는 단계를 포함하는, 방법.
KR1020227032075A 2020-04-07 2021-04-01 서버 시스템 및 서버 시스템 관리 방법 KR20220159368A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/842,211 2020-04-07
US16/842,211 US11323507B2 (en) 2020-04-07 2020-04-07 Server system and method of managing server system
PCT/FI2021/050248 WO2021205070A1 (en) 2020-04-07 2021-04-01 Server system and method of managing server system

Publications (1)

Publication Number Publication Date
KR20220159368A true KR20220159368A (ko) 2022-12-02

Family

ID=75497964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227032075A KR20220159368A (ko) 2020-04-07 2021-04-01 서버 시스템 및 서버 시스템 관리 방법

Country Status (6)

Country Link
US (3) US11323507B2 (ko)
EP (1) EP4115294A1 (ko)
JP (1) JP2023522554A (ko)
KR (1) KR20220159368A (ko)
CN (1) CN115280288A (ko)
WO (1) WO2021205070A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11323507B2 (en) * 2020-04-07 2022-05-03 Supercell Oy Server system and method of managing server system
US11888928B2 (en) * 2022-04-15 2024-01-30 Avaya Management L.P. Call and media preserving failovers in a cloud environment

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657779B2 (en) 2002-09-18 2010-02-02 International Business Machines Corporation Client assisted autonomic computing
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US7657780B2 (en) 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
JP2007226400A (ja) 2006-02-22 2007-09-06 Hitachi Ltd 計算機管理方法、計算機管理プログラム、実行サーバの構成を管理する待機サーバ及び計算機システム
JP4992905B2 (ja) * 2006-09-29 2012-08-08 富士通株式会社 サーバ配備プログラム及びサーバ配備方法
JP5011073B2 (ja) * 2007-11-22 2012-08-29 株式会社日立製作所 サーバ切り替え方法、およびサーバシステム
US9141489B2 (en) 2009-07-09 2015-09-22 Uniloc Luxembourg S.A. Failover procedure for server system
JP5948345B2 (ja) * 2011-01-11 2016-07-06 エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. 仮想アプリケーションデリバリシャーシシステム
US9294342B2 (en) * 2011-03-23 2016-03-22 Hitachi, Ltd. Network node apparatus system, apparatus, and method
US20140177435A1 (en) * 2011-05-25 2014-06-26 Hiroaki Miyamoto Wireless transmission system, wireless transmission method, and wireless communication apparatus
CN102685210B (zh) * 2012-04-01 2015-06-17 华为终端有限公司 一种无线路由设备、移动终端、管理系统及方法
JP6092874B2 (ja) 2012-08-02 2017-03-08 株式会社Murakumo 負荷分散装置、情報処理システム、方法およびプログラム
WO2014080492A1 (ja) * 2012-11-22 2014-05-30 株式会社日立製作所 計算機システム、クラスタ管理方法、及び管理計算機
KR102183071B1 (ko) * 2012-12-06 2020-11-25 삼성전자주식회사 복수 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법
US10594784B2 (en) * 2013-11-11 2020-03-17 Microsoft Technology Licensing, Llc Geo-distributed disaster recovery for interactive cloud applications
US10230801B2 (en) * 2015-04-14 2019-03-12 Avaya Inc. Session reconstruction using proactive redirect
US10476773B2 (en) * 2015-10-21 2019-11-12 Microsoft Technology Licensing, Llc Substituting window endpoints using a health monitor
US9973431B2 (en) * 2015-12-11 2018-05-15 Qualcomm Incorporated Single line PMIC-host low-level control interface
US10599676B2 (en) * 2015-12-15 2020-03-24 Microsoft Technology Licensing, Llc Replication control among redundant data centers
US10729975B1 (en) * 2016-03-30 2020-08-04 Electronic Arts Inc. Network connection selection processing system
US10027744B2 (en) * 2016-04-26 2018-07-17 Servicenow, Inc. Deployment of a network resource based on a containment structure
US10091281B1 (en) * 2016-12-01 2018-10-02 Electronics Arts Inc. Multi-user application host-system selection system
US11061737B2 (en) * 2018-07-27 2021-07-13 Vmware, Inc. Methods, systems and apparatus for governance of virtual computing infrastructure resources
CN112840321A (zh) * 2018-12-03 2021-05-25 易享信息技术有限公司 用于自动化操作管理的应用程序编程接口
US10986172B2 (en) * 2019-06-24 2021-04-20 Walmart Apollo, Llc Configurable connection reset for customized load balancing
US11556895B2 (en) * 2019-08-28 2023-01-17 One Network Enterprises, Inc. System and computer program for providing high delivery performance in a value chain
US10938629B1 (en) * 2019-09-16 2021-03-02 Cisco Technology, Inc. Mitigation of wireless interference
US11403036B2 (en) * 2020-02-13 2022-08-02 EMC IP Holding Company LLC Recover time improvement mechanism after device path failure in a storage system
US11323507B2 (en) * 2020-04-07 2022-05-03 Supercell Oy Server system and method of managing server system

Also Published As

Publication number Publication date
EP4115294A1 (en) 2023-01-11
US20230231902A1 (en) 2023-07-20
US11323507B2 (en) 2022-05-03
CN115280288A (zh) 2022-11-01
US20210314390A1 (en) 2021-10-07
WO2021205070A1 (en) 2021-10-14
US11582295B2 (en) 2023-02-14
US11991241B2 (en) 2024-05-21
JP2023522554A (ja) 2023-05-31
US20220337660A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
US11489779B2 (en) Systems and methods for managing streams of packets via intermediary devices
US10104167B2 (en) Networking functions in a micro-services architecture
EP2901308B1 (en) Load distribution in data networks
US11991241B2 (en) Server system and method of managing server system
KR101914488B1 (ko) 푸시 알림 서비스를 위한 서버 클러스터 및 방법
US20130159487A1 (en) Migration of Virtual IP Addresses in a Failover Cluster
US11582118B2 (en) Real-time scalable virtual session and network analytics
US20230069240A1 (en) Dynamic cloning of application infrastructures
CN111448788A (zh) 用于基于saas的应用的ssl优化的跟踪ssl会话状态的方法
KR20120063662A (ko) 로드 밸런서 및 이를 이용한 부하 분산 관리 방법
Kang et al. A cluster-based decentralized job dispatching for the large-scale cloud
US8458702B1 (en) Method for implementing user space up-calls on java virtual machine before/after garbage collection
Shin et al. IRIS-HiSA: highly scalable and available carrier-grade SDN controller cluster
WO2023207189A1 (zh) 负载均衡方法及系统、计算机存储介质、电子设备
US11272014B2 (en) Systems and methods for reducing connection setup latency
Ivanisenko Methods and Algorithms of load balancing
US20210329542A1 (en) System and methods for multi-links sd-wan using cellular device connections
CN115516842A (zh) 编排代理服务
US10904082B1 (en) Velocity prediction for network devices
JP6478618B2 (ja) トランザクション制御システム、トランザクション制御方法及びプログラム