KR101616085B1 - 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법 - Google Patents

대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법 Download PDF

Info

Publication number
KR101616085B1
KR101616085B1 KR1020140065481A KR20140065481A KR101616085B1 KR 101616085 B1 KR101616085 B1 KR 101616085B1 KR 1020140065481 A KR1020140065481 A KR 1020140065481A KR 20140065481 A KR20140065481 A KR 20140065481A KR 101616085 B1 KR101616085 B1 KR 101616085B1
Authority
KR
South Korea
Prior art keywords
client
game
data
handler
gateway
Prior art date
Application number
KR1020140065481A
Other languages
English (en)
Other versions
KR20150138871A (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 KR1020140065481A priority Critical patent/KR101616085B1/ko
Publication of KR20150138871A publication Critical patent/KR20150138871A/ko
Application granted granted Critical
Publication of KR101616085B1 publication Critical patent/KR101616085B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Abstract

본 발명은, 하나 이상의 사용자 단말기와 게임 서버가 네트워크로 연결된 시스템에 있어서, 상기 사용자 단말기는, 각 게임방을 생성하는 상위 클라이언트와 상기 상위 클라이언트가 형성한 각 게임방에 입장하여 게임 데이터를 생성하는 하위 클라이언트로 분류되고; 상기 하위 클라이언트에서 생성된 게임 데이터는 상기 상위 클라이언트를 거쳐 게이트웨이를 통해 상기 게임 서버로 순차적으로 전송되거나 그 역으로 상기 게임 데이터가 전송되고; 상기 하위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 상위 클라이언트에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 상위 클라이언트에서 관리가능한 게임 데이터이면 상기 게이트웨이로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게이트웨이로 상기 게임 데이터를 전송하고; 상기 상위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 게이트웨이에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 게이트웨이에서 관리가능한 게임 데이터이면 상기 게임 서버로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게임 서버로 상기 게임 데이터가 전송되는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템을 제공한다.

Description

대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법{The network-based balancing load screen golf system for large-scale multi-user and method at the same}
본 발명은 서버 클라이언트 시스템에 관한 것으로, 더욱 상세하게는 게임 서비스를 제공하는 서버의 부하를 하위의 게이트웨이 및 클라이언트들에게 분산하여, 메인 서버의 부하를 줄이면서도 동일한 서비스를 제공할 수 있는 스크린 골프 시스템에 관한 것이다.
다양한 형태의 IT 기술을 활용하여 시공간의 제약 없이 건강관리를 제공할 수 있는 지속적이고 체계적인 운동 관리 방안이 요구되고 있고, 소득 수준의 향상과 주 5일 근무 확대 등으로 여가 시간이 늘어남에 따라 생활 체육 또는 아마추어 스포츠를 즐기는 인구가 늘어나고 있으며, 특히 야구나 테니스, 골프 등의 스포츠는 이미 대중적인 스포츠가 되었다.
이러한 스포츠 게임을 즐기기 위해서는 야구장이나 테니스장 또는 골프장 등의 공간적인 제약과 이동거리에 따른 시간적인 제약이 있었으나, 이에 대한 대안으로 스크린 골프 등 다양한 형태의 스포츠 게임이 활성화 되고 있다.
이와 같은 스포츠 게임은 갑자기 게임 사용자가 폭발적으로 증가하거나 특정 그룹 또는 특정 영역에서 사용자가 집중되는 경우에는 게임 서비스의 장애가 발생하므로 증가되는 부하를 분산시킬 필요가 있다.
또한, 일반적인 서버-클라이언트 모델에서는 대규모의 사용자들에게 서비스를 제공하기 위해 서버는 사용자들의 수에 비례하는 성능을 가져야 하며, 서버 성능의 향상을 위해 많은 비용이 소요되는 문제점이 있다.
이를 해결하기 위해, 선행기술1로서 한국공개특허 10-2011-0136079는 다수의 게임서버에 대한 부하값을 측정하여 최대 부하값을 가지는 게임서버에 접속된 단말기 중 일부의 단말기를 최소 부하값을 갖는 게임서버로 이동하여 게임서버의 부하를 분산시키는 방법이 있다.
다른 선행기술로서 한국등록특허 10-0469826호는 인접하는 게임 존 경계의 소정 부분을 버퍼 섹터로 정의하고 표시 영역이 상기 버퍼 섹터를 포함하는 양태에 따라 클라이언트와 접속되는 존 서버가 유연하게 제어되도록 하여 게임 서버의 데이터를 분산하는 방법이 있다.
그러나, 선행기술1과 같이 부하값을 비교하는 수단의 구비에 따른 비용 증가의 부분이 있고, 선행기술2와 같이 표시영역에 버퍼 섹터의 일부 영역이 포함시키는 것은 온라인 게임의 캐릭터 정보에 국한되는 제한적인 요소가 있다.
대한민국 특허공개특허 제10-2011-0136079호 대한민국 특허등록특허 10-0469826호
본 발명은 전술한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 서버가 제공하는 서비스를 하위의 서브 서버들이 제공함으로써, 메인 서버에 가해지는 부하를 감소시키고 메인 서버에 연결된 세션의 수를 줄여줌으로써 대규모 다중 사용자를 위한 네트워크 기반 시스템을 제공하는 것을 목적으로 한다.
이를 위해, 본 발명의 일측면에 따르면, 하나 이상의 사용자 단말기와 게임 서버가 네트워크로 연결된 시스템에 있어서, 상기 사용자 단말기는, 각 게임방을 생성하는 상위 클라이언트와 상기 상위 클라이언트가 형성한 각 게임방에 입장하여 게임 데이터를 생성하는 하위 클라이언트로 분류되고; 상기 하위 클라이언트에서 생성된 게임 데이터는 상기 상위 클라이언트를 거쳐 게이트웨이를 통해 상기 게임 서버로 순차적으로 전송되거나 그 역으로 상기 게임 데이터가 전송되고; 상기 하위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 상위 클라이언트에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 상위 클라이언트에서 관리가능한 게임 데이터이면 상기 게이트웨이로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게이트웨이로 상기 게임 데이터를 전송하고; 상기 상위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 게이트웨이에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 게이트웨이에서 관리가능한 게임 데이터이면 상기 게임 서버로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게임 서버로 상기 게임 데이터가 전송되는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템을 제공한다.
또한, 상기 서버 클라이언트 시스템은, 상기 하위 클라이언트는 PC 콘솔 클라이언트이며, 상기 상위 클라이언트는 PC 콘솔 P2P 호스트이며, 상기 게이트웨이는 프록시 서버로 구성되는 스크린 골프 시스템인 것이 바람직하다.
또한, 상기 하위 클라이언트는, 상기 상위 클라이언트와 연결을 담당하는 제1 세션 핸들러와, 프로토콜 변환을 수행하는 제1 메시지 핸들러와, 상기 게임 데이터를 수신받거나 상기 제1 메시지 핸들러에 의해 변환된 프로토콜 형태의 게임 데이터를 상위 클라이언트로 전송하는 제1 네트워크 모듈과, 상기 제1 세션 핸들러, 상기 제1 메시지 핸들러 및 상기 제1 네트워크 모듈을 관리하는 제1 PC 콘솔 매니저를 포함할 수 있다.
여기서, 상기 제1 메시지 핸들러는 상기 1 네트워크 모듈을 통해 수신된 게임 데이터를 XML 형태의 프로토콜로 변환하거나, 역으로 상기 XML 형태의 프로토콜 데이터를 바이트 형태의 데이터로 변환하는 것을 특징으로 한다.
또한, 상기 게임 데이터는 게임 플레이어 정보, 게임 정보, 채팅 정보, 로비 정보, 사용자 인증 정보 중의 어느 하나를 포함할 수 있다.
또한, 상기 상위 클라이언트는, 상기 하위 클라이언트 및 상기 게이트웨이와 연결을 담당하는 제2 세션 핸들러와, 상기 게이트웨이 및 상기 하위 클라이언트 간의 데이터 프로토콜 변환을 수행하는 제2 메시지 핸들러와, 상기 제1 네트워크 모듈로부터 변환된 프로토콜 형태의 게임 데이터를 전송받거나 상기 제2 메시지 핸들러에 의해 변환된 프로토콜 형태의 게임 데이터를 상기 게이트웨이로 전송하는 제2 네트워크 모듈과, 상기 제2 세션 핸들러, 상기 제2 메시지 핸들러 및 상기 제2 네트워크 모듈을 관리하는 제2 PC 콘솔 매니저를 포함할 수 있다.
또한, 상기 게이트웨이는, 상기 상위 클라이언트 및 상기 게임 서버와 연결을 담당하는 제3 세션 핸들러와, 상기 상위 클라이언트로부터 전송되는 게임 데이터에 대해 중요도에 따라 즉각 전송할 메시지 인지 혹은 통합하여 일괄 전송할 멀티캐스트 그룹 메시지 여부를 판단하거나, 그 역으로 상기 상위 클라이언트로 전송할 게임 데이터에 대해 중요도에 따라 즉각 전송할 메시지 인지 혹은 통합하여 일괄 전송할 멀티캐스트 그룹 메시지 여부를 판단하는 제3 메시지 핸들러와, 상기 제3 메시지 핸들러에 의해 판단된 상기 멀티캐스트 그룹 메시지를 관리하여 전체 송신하는 제1 멀티캐스트 핸들러와, 채팅 메시지 그룹 리스트를 생성하고 상기 채팅 메시지 그룹을 관리하는 채트 핸들러를 포함할 수 있다.
여기서, 전체 공지 메시지는 상기 멀티캐스트 그룹 리스트에 해당되는 것을 특징으로 한다.
또한, 상기 게임 서버는, 상기 게이트웨이와 연결을 담당하는 제4 세션 핸들러와, 상기 게이트웨이에서 수신된 게임 데이터를 데이터베이스에 저장할 수 있는 형태의 데이터로 변환하거나 그 역으로 상기 데이터베이스에 저장된 데이터를 상기 게이트웨이로 전송하는 데이터로 변환하는 제4 메시지 핸들러와, 상기 상위 클라이언트의 요청으로 생성된 로비 정보를 관리하는 로비 매니저와, 멀티캐스트 그룹 메시지를 관리하여 상기 게이트웨이로 전체 송신하는 제2 멀티캐스트 핸들러와, 상기 제4 메시지 핸들러를 통해 SQL 형태로 변환된 데이터를 데이터베이스에 저장하거나 상기 게이트웨이의 요청에 따라 데이터베이스에 저장된 데이터를 불러오는 데이터베이스 핸들러를 포함할 수 있다.
여기서, 상기 제4 메시지 핸들러는, 상기 게이트웨이에서 수신된 게임 데이터를 데이터베이스에 저장할 수 있는 SQL 형태의 데이터로 변환하거나 그 역으로 상기 SQL 형태의 데이터를 XML 형태의 데이터로 변환하는 것을 특징으로 한다.
본 발명의 다른 측면에 따르면, 하나 이상의 사용자 단말기와 게임 서버가 네트워크로 연결된 시스템에 있어서의 부하 분산 방법에 있어서, (a) 상기 사용자 단말기는, 각 게임방을 생성하는 상위 클라이언트와 상기 상위 클라이언트가 형성한 각 게임방에 입장하여 게임 데이터를 생성하는 하위 클라이언트로 분류되는 단계; (b) 상기 하위 클라이언트에서 생성된 게임 데이터는 상기 상위 클라이언트를 거쳐 게이트웨이를 통해 상기 게임 서버로 순차적으로 전송되거나 그 역으로 상기 게임 데이터가 전송되는 단계; (c) 상기 하위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 상위 클라이언트에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 상위 클라이언트에서 관리가능한 게임 데이터이면 상기 게이트웨이로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게이트웨이로 상기 게임 데이터를 전송하는 단계; (d) 상기 상위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 게이트웨이에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 게이트웨이에서 관리가능한 게임 데이터이면 상기 게임 서버로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게임 서버로 상기 게임 데이터가 전송되는 단계를 포함하는 부하 분산 방법을 제공한다.
또한, 상기 게임 데이터로서 채팅 메시지는, 상기 (d) 단계에서 상기 게이트웨이에서 관리가능한 게임 데이터로서 상기 게임 서버로 전송하지 않는 것이 바람직하다.
또한, 상기 게임 데이터로서 사용자 인증 정보는 상기 (d) 단계에서 상기 게이트웨이에서 관리가능한 게임 데이터가 아니므로 상기 게임 서버로 전송하나 상기 게임 서버에서 상기 사용자 인증 정보를 저장하면 다음 번의 인증 요청시에는 상기 게이트웨이에서 관리가능한 게임 데이터로 판단하여 상기 게임 서버로 전송하지 않는 것이 바람직하다.
또한, 상기 (b) 단계에서 상기 게임 데이터로서 전체 공지 메시지는 상기 멀티캐스트 그룹 리스트에 해당되어 전체 전송되는 것이 바람직하다.
상기한 본 발명은, 게임 서비스를 제공하는 서버의 부하를 하위의 게이트웨이 및 클라이언트들에게 분산하여, 메인 서버의 부하를 줄이면서도 동일한 서비스를 제공할 수 있다.
또한, 게임 서비스 제공자에게 발생되는 서비스 제공 비용을 감소시켜 줌으로써, 이윤을 극대화시키는 기대효과가 있다.
게다가 본 발명의 부하분산형 서버 클라이언트 시스템에 포함되는 클라이언트 및 게이트웨이 자원을 사용함으로써 시스템의 효율성을 극대화시킬 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 부하분산형 서버 클라이언트 시스템의 구성도,
도 2는 본 발명의 바람직한 실시예에 따른 스크린 골프 시스템의 구성도,
도 3은 도 2의 스크린 골프 시스템에서 하위 클라이언트의 구성도,
도 4는 도 2의 스크린 골프 시스템에서 상위 클라이언트의 구성도,
도 5는 도 2의 스크린 골프 시스템에서 게이트웨이의 구성도,
도 6은 도 2의 스크린 골프 시스템에서 게임 콘텐츠 서버의 구성도,
도 7은 도 2의 스크린 골프 시스템에서 상, 하위 클라이언트의 동작과정을 나타낸 다이어그램,
도 8은 도 2의 스크린 골프 시스템에서 게이트웨이의 동작과정을 나타낸 다이어그램,
도 9는 도 2의 스크린 골프 시스템에서 게임 콘텐트 서버의 동작과정을 나타낸 다이어그램이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나, 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 "포함한다" 또는 "포함하는"으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
본 발명은 대규모 다중사용자를 위한 네트워크 기반의 서버-클라이언트 시스템으로, 계층적으로 부하(load)를 분산시킴으로써 집중되는 부하를 줄일 수 있도록 고안된 시스템이다.
즉, 본 발명의 바람직한 실시예에 따른 대규모 다중사용자를 위한 네트워크 기반 서버 클라이언트 시스템의 구성을 도 1을 참조하여 상세히 설명한다.
도 1에 도시된 바와 같이, 네트워크 기반 부하 분산형 서버-클라이언트 시스템은, 분산을 목적으로 하는 프록시 서버(Proxy serve)를 두는 다른 시스템과 달리, 클라이언트 레벨에 하위 클라이언트 및 상위 클라이언트와 같이 계층을 둠으로써, 분산 목적의 프록시 서버 또는 게이트웨이 장비의 추가 없이 클라이언트가 이를 수행하여 메시지를 통합하여 부하의 크기를 줄일 수 있다.
도 2는 도 1의 네트워크 기반 부하 분산형 서버-클라이언트 시스템이 스크린 골프 시스템에 적용된 예를 나타낸 도면이다.
도 2에 도시된 바와 같이, 본 발명의 바람직한 실시예에 따른 스크린 골프 시스템(100)은, PC 콘솔 클라이언트(200)와, PC 콘솔 P2P 호스트(300)와, 프록시 서버(400) 및 게임 콘텐츠 서버(500)로 구성된다.
여기서, 각 스크린 골프 게임방으로서 로비(Lobby)를 형성하는데, 상기 골프 게임방을 생성하는 유저를 상위 클라이언트(오너)라고 하며, 해당 골프 게임방에 입장하는 유저를 하위 클라이언트(게스트)라고 한다. 이때, 상위 클라이언트는 PC 콘솔 P2P 호스트(300)가 해당되고, 하위 클라이언트는 PC 콘솔 클라이언트(200)가 해당된다.
또한, 하위 클라이언트인 PC 콘솔 클라이언트(200)에서 생성된 데이터는 상위 클라이언트인 PC 콘솔 P2P 호스트(300)를 거쳐 상위 게이트웨이 또는 프록시서버(400)로 전송되며, 전송된 데이터는 게이트웨이 또는 프록시 서버(400)를 거쳐 최종적으로 게임 콘텐츠 서버(500)로 전송된다.
상기의 과정에서 송신된 데이터들은 폐기되지 않으며, 다음번 다른 하위 클라이언트의 해당 데이터 요청이 수신될 경우 상위 클라이언트에서 해당 서비스를 제공한다.
이때, 일측 하위 클라이언트의 채팅 시스템은 다른 방에 입장중인 타측 하위 클라이언트들(게스트들)에게 송신될 필요가 없으며 해당 상위 클라이언트(오너)에 의해 관리될 수 있는 서비스이다. 이에 따라, 해당 채팅은 프록시 서버(게이트웨이)에 요청되지 않은 채, 상위 클라이언트에 의해 서비스가 제공된다.
반면, 다른 방의 유저(타측 하위클라이언트)들에게도 송신되어야 하는 채팅의 경우는 프록시서버(게이트웨이)까지 게임정보 요청이 송신되어 서비스를 제공받을 수 있다. 가령, 3일 전의 스크린 골프 플레이 내용과 같은 데이터의 경우는 프록시서버(게이트웨이) 또는 상위 클라이언트가 제공할 수 없는 서비스이므로, 게임 콘텐츠 서버(500)가 제공하는 서비스를 받아야 한다. 이 경우에는 상위 클라이언트, 프록시 서버를 거쳐 게임 콘텐츠 서버로 데이터 요청이 송신되고, 요청된 서비스는 서버에 의해 제공되며, 이후 다시 프록시 서버, 상위 클라이언트의 역순으로 요청한 서비스가 하위 클라이언트로 제공된다.
또한, 상위 클라이언트는 하위 클라이언트로부터 수신된 데이터 중 실시간으로 반영될 필요가 없는 데이터를 수납하여, 하나의 데이터로 만들어 송신할 수 있다. 이때, 상기 하나의 데이터로 만들어진 데이터는 메시지 개수에 비례하여 크기가 늘어나지 않으며, 헤더에 포함되어야하는 정보는 공통적이며, 해당 내용의 중복이 필요하지 않으므로 메시지 크기는 축소되며, 전송시 각각의 개별적인 메시지를 송신하는 경우보다 빠른 속도로 처리될 수 있다.
<하위 클라이언트(200)>
상기 스크린 골프 시스템의 하위 클라이언트로서 PC 콘솔 클라이언트(200)는, 도 3에 도시한 바와 같이, 제1 세션 핸들러(210)와, 제1 메시지 핸들러(220)와, 제1 네트워크 모듈(230)과, 제1 PC 콘솔 매니저(240)를 포함한다.
상기 제1 세션 핸들러(Session Handler)(210)는, 상위 클라이언트(PC Console P2P Host)와 연결을 담당하는 모듈이며, 처음 접속 시에 기기 정보(컴퓨터 사양, 운영체제 정보, 클라이언트 버전 등) 및 사용자 정보(사용자 이름, 사용자 아이디, 패스워드, 이전 게임 기록 등)의 데이터를 전송한다.
또한, 상기 기기 정보 및 사용자 정보는 상위 클라이언트(PC Console P2P Host)에서 게이트웨이(Proxy Server)로 송신되며, 최종적으로 서버(Game Contents Server)에 도착한다.
또한, 도착한 메시지는 서버에 의해 해독되며, 데이터베이스에 플레이어정보, 게임 정보(남은 거리, 현재 홀 번호, 현재 스코어, 현재 홀 티샷 비거리, 페어웨이 위에서 타수, 그린 위에서의 타수, 퍼팅 횟수, 벙커 샷 횟수, 평균 티샷 비거리, 전체 퍼팅 수 등)를 저장한다. 이후의 데이터 송수신 역할 또한 제1 세션 핸들러(210)가 담당하는데, 수신된 게임 데이터를 메시지 핸들러를 이용해 상위 클라이언트로 보낼 수 있는 형태로 변환 한 후, 네트워크 모듈을 이용해 상위 클라이언트(PC Console P2P Host)로 송신한다.
상기 제1 메시지 핸들러(Message Handler)(220)는, 프로토콜 변환의 역할을 담당하는 모듈이다. 가령, 스크린 골프 게임에서 생성되는 데이터는 바이트 형태의 프리미티브(Primitive) 데이터이며, 이를 내부적으로 사용하는 XML 형태의 프로토콜로 변환하는 역할을 수행한다. 또한, 위와는 반대로 XML 형태의 데이터를 바이트 형태의 데이터로 변환하는 역할을 수행한다. 또한, 위의 XML 형태 및 바이트 형태의 데이터 종류에는 로그인, 새로운 게임 생성(싱글 플레이), 홀 시작, 타구 정보, 홀 종료, 게임 종료, 로비(방) 생성(멀티 플레이), 로비 입장, 로비 게임 시작, 로비 게임 종료, 채팅, 로비 리스트 등이 있다.
상기 제1 네트워크 모듈(Network Module)(230)은 직접적으로 상위 클라이언트(PC Console P2P Host)와 통신을 수행하는 모듈로서, 단순 데이터의 송수신 역할을 수행한다.
상기 PC 콘솔 클라이언트(200)와 PC 콘솔 P2P 호스트 동일한 프로그램으로 구현될 수 있으며, 상황에 따라 상이한 역할을 수행한다. 이때, 상기 제1 PC 콘솔 매니저(240)는 상이한 상황을 구분하는 역할을 수행한다. 가령, 방(로비)를 생성하고, 생성한 방의 소유주(owner)가 된 경우, 생성된 방은 소유주를 통해 모든 통신이 관리되며, 소유주는 PC 콘솔 P2P 호스트의 역할을 수행한다. 반면에, 이미 생성되어 있는 방(로비)에 입장을 원하는 경우, PC 콘솔 클라이언트의 역할을 수행한다.
<상위 클라이언트(300)>
상기 스크린 골프 시스템의 상위 클라이언트로서 PC 콘솔 P2P 호스트(300)는, 도 4에 도시한 바와 같이, 제2 세션 핸들러(310)와, 제2 메시지 핸들러(320)와, 제2 네트워크 모듈(330)과, 제2 PC 콘솔 매니저(340)를 포함한다.
상기 제2 세션 핸들러(Session Handler)(310)는, 게이트웨이(Proxy Server) 및 하위 클라이언트(PC Console Client)와 연결을 담당하는 모듈이다.
가령, 처음 방(로비)의 생성을 요청하는 경우, 로비 명, 로비 입장 패스워드, 로비 최대 인원수, 현재 인원수, 선택된 홀 정보, 홀의 배경 등의 정보를 송신한다.
이후, 해당 방(로비)에서 생성되는 데이터 일체는 제2 세션 핸들러(310)를 경유하여, 제2 네트워크 모듈(330)을 통해 게이트웨이(Proxy Server)로 송신된다. 이어, 게이트웨이(Proxy Server)에서 하위 클라이언트(PC Console Client)로 전송되는 데이터 또한 상기 제2 세션 핸들러(310)를 경유하여 제2 네트워크 모듈(330)을 통해 하위 클라이언트(PC Console Client)로 전송된다.
상기 제2 메시지 핸들러(Message Handler)(320)는, 상위 게이트웨이(Proxy Server) 및 하위 클라이언트(PC Console Client) 간의 데이터 프로토콜 변환의 역할을 수행한다. 또한, 상기 제2 메시지 핸들러(320)는 PC 콘솔 클라이언트(200)의 제1 메시지 핸들러(210)의 기능을 모두 포함하며, 동일한 역할을 수행한다.
상기 제2 네트워크 모듈(Network Module)(330)은 상기 제1 네트워크 모듈(230)의 기능을 모두 포함하며, 동일한 역할을 수행한다. 또한, 하위 클라이언트와 통신하는 네트워크 모듈과 게이트웨이와 통신하는 네트워크 모듈로 각각 분리될 수 있으나, 하나의 제2 네트워크 모듈(330)에서 하위클라이언트 및 게이트웨이와의 통신이 처리될 수 있다.
상기 PC 콘솔 매니저(PC Console Manager)(340)는, 상기 PC 콘솔 매니저(240)의 기능을 모두 포함하며, 동일한 역할을 수행한다.
<게이트웨이>
상기 스크린 골프 시스템의 게이트웨이로서 프록시 서버(400)는, 도 5에 도시한 바와 같이, 제3 세션 핸들러(410)와, 제3 메시지 핸들러(420)와, 멀티캐스트 핸들러(430)과, 메모리 핸들러(440)와, 채트 핸들러(450)를 포함한다.
상기 제3 세션 핸들러(Session Handler)(410)는, 상위 클라이언트(PC Console P2P Host)(300)와 서버(Game Contents Server)(500) 간의 연결을 유지하고 관리하는 역할을 수행한다. 가령, 프록시 서버(Proxy Server)(400)는 처음 로그인 시 서버(Game Contents Server)(500)로 전송되어 데이터를 수신받은 후, 인증에 대한 정보를 저장한다. 이후, 위에서 저장된 정보를 이용하여, 다음 번 인증 요청 시 서버의 인증 역할을 대행하여 서버의 부하를 분산한다. 또한, 게임 진행 중 생성되는 데이터를 저장하고 있으며, 추후 해당 데이터에 대한 요청이 있을 시, 서버로 요청하지 않은 채 서비스를 제공함으로써 서버의 부하를 분산한다.
상기 멀티캐스트 핸들러(430)는, 메시지에 대한 일괄 송신이 필요한 멀티캐스트(Multicast) 그룹 리스트를 생성하고, 이러한 멀티캐스트 그룹을 관리하는 역할을 수행한다. 또한, 전체 공지와 같이 일부 특수한 메시지는 전체 송신을 요구한다. 또한, 이러한 전체 일괄 송신의 그룹 단위를 관리한다.
상기 채트 핸들러(450)는, 채팅 메시지 그룹 리스트를 생성하고 이러한 채팅 메시지를 관리하는 역할을 수행한다. 이때, 채팅 메시지는 서버까지 전달될 필요가 없는 대표적인 메시지이다. 이를 프록시 서버 레벨에서 처리함으로써, 서버의 부하를 줄일 수 있다.
상기 제3 메시지 핸들러(420)는 수신되는 메시지에 대한 판별 및 송신되는 메시지에 대한 생성을 담당한다. 가령, PC 콘솔 P2P 호스트(300)로부터 전송되는 메시지 중요도에 따라 즉각 전송 혹은 통합 후 전송이 된다. 이때, 위의 통합을 통해 메시지 송신의 빈도를 줄일 수 있으며, 크기 또한 줄어들어 통신 비용을 줄이는 효과를 가져온다. 또한, 하위의 PC 콘솔 P2P 호스트(300)로 송신하는 데이터 또한 위와 동일하게 중요도에 따라 즉각 전송 혹은 통합 후 전송이 이루어진다.
상기 메모리 핸들러(440)는 세션 ID를 생성하거나 부가하거나 제거할 서브 세션 리스트를 생성하며, 서브 세션 리스트에는 전송할 메시지 또는 세션 제어 명령이 해당될 수 있다.
<게임 콘텐츠 서버>
상기 스크린 골프 시스템의 메인서버로서 게임 콘텐츠 서버(500)는, 도 6에 도시한 바와 같이, 제4 세션 핸들러(510)와, 제4 메시지 핸들러(520)와, 제2 멀티캐스트 핸들러(530)과, 로비 핸들러(540)와, 데이터베이스 핸들러(550)를 포함한다.
상기 제4 세션 핸들러(510)는, 프록시 서버(400)와 연결을 유지하고 관리하는 역할을 수행한다. 또한, 요청에 대해 응답하는 역할을 수행하며, 최상단에 위치하여 상위로의 연결은 필요하지 않다. 또한, 송수신되는 데이터는 로그인, 새로운 게임 생성(싱글 플레이), 홀 시작, 타구 정보, 홀 종료, 게임 종료, 로비(방) 생성(멀티 플레이), 로비 입장, 로비 게임 시작, 로비 게임 종료, 채팅, 로비 리스트 등이 있다.
상기 제4 메시지 핸들러(520)는, 프록시 서버(400)에서 수신된 데이터를 데이터베이스(DB)에 저장할 수 있는 형태(SQL)로 변환하는 역할을 수행한다. 또한, 프록시 서버로부터 데이터베이스의 데이터에 대한 요청이 수신되면, 해당 데이터를 XML 형태의 데이터로 변환하여, 즉각 송신할 수 있는 상태로 만드는 역할을 수행한다.
상기 로비 매니저(540)는, PC 콘솔 P2P 호스트(300)의 요청으로 생성된 로비에 대한 정보를 유지하고 관리하는 역할을 수행한다.
상기 제2 멀티캐스트 핸들러(530)는, 프록시 서버(400)의 제1 멀티캐스트 핸들러(430)의 기능을 모두 포함하며, 동일한 역할을 수행한다.
상기 데이터베이스 핸들러(550)는, 송신된 데이터를 상기 제4 메시지 핸들러(420)를 이용해 파싱한 뒤, 파싱된 데이터를 데이터베이스에 저장할 수 있는 데이터형태로 변환하고 이를 저장하는 역할을 수행한다.
<스크린 골프 시스템의 동작>
이제 상기한 바와 같이 구성되는 스크린 골프 시스템의 동작을 도 7 내지 도 9를 참조하여 상세히 설명한다.
도 7은 본 발명의 바람직한 실시예에 따른 스크린 골프 시스템에서 상, 하위 클라이언트의 동작과정을 나타낸 다이어그램이며, 도 8은 본 발명의 바람직한 실시예에 따른 스크린 골프 시스템에서 게이트웨이의 동작과정을 나타낸 다이어그램이며, 도 9는 본 발명의 바람직한 실시예에 따른 스크린 골프 시스템에서 게임 콘텐트 서버의 동작과정을 나타낸 다이어그램이다.
도 7을 참조하면, 상기 하위 클라이언트(PC 콘솔 클라이언트)는 스크린 골프 게임방의 게임 데이터를 실시간으로 수신받는데, 상위 클라이언트(P2P 호스트)와 연결되면 수신받은 게임 데이터를 상위 클라이언트로 송신하게 된다. 가령, 상기 게임 데이터는 골프채 등의 운동기구에 활동 모니터를 부착하거나 스크린 골프 게임방에 설치된 다양한 형태의 센서 모듈에 의해 생성될 수 있다. 또한, 활동 모니터 또는 다수의 센서 모듈은 3축 가속도 및 각속도를 센싱하고, 그 센싱값을 이용하여 물체(골프채 또는 골프공 등)의 움직임 전부터 움직임 종료까지의 미리 정해둔 수의 센싱 데이터 셋인 물체 움직임 정보를 구성하고, 그 물체 움직임 정보를 통해 게임 데이터를 생성하여 상, 하위 클라이언트로 전송한다. 한편, 상위 클라이언트와 연결이 되지 않으면, 상위 클라이언트의 요청에 따라 네트워크 모듈을 통해 소정 주기를 두고 연결 유무를 체크하고 다시 상위 클라이언트와 연결되면, 상기 하위 클라이언트의 게임 데이터를 전송한다. 이때, 하위 클라이언트 또는 상위 클라이언트는 상기 게임 데이터를 표시하여 사용자에게 안내할 수 있다.
또한, 하위 클라이언트와 상위 클라이언트의 처음 접속 시에는 클라이언트(사용자 단말기)의 기기 정보 및 사용자 정보의 데이터가 전송된다. 이어 상기 기기 정보 및 사용자 정보, 게임 데이터는 상위 클라이언트에서 게이트웨이로 송신되어, 최종적으로 게임 콘텐츠 서버에 도착한다.
특히, 수신된 게임 데이터는 게임 콘텐츠 서버에 의해 해독되며, 상기 게임서버의 데이터베이스에 게임 데이터가 저장된다. 이때, 게임 데이터로는 게임 플레이어정보와 게임 정보가 포함된다. 또한, 게임 정보로는, 가령, 남은 거리, 현재 홀 번호, 현재 스코어, 현재 홀 티샷 비거리, 페어웨이 위에서 타수, 그린 위에서의 타수, 퍼팅 횟수, 벙커 샷 횟수, 평균 티샷 비거리, 전체 퍼팅 수 등이 해당될 수 있다.
이와 같이, 하위 클라이언트는 수신된 게임 데이터를 제1 메시지 핸들러를 이용해 상위 클라이언트로 송신할 때 적합한 프로토콜 형태로 변환하고, 제1 네트워크 모듈을 통해 변환된 프로토콜 형태로 상위 클라이언트(PC Console P2P Host)로 송신한다. 가령, 스크린 골프 게임방에서 생성되는 게임 데이터는 바이트 형태의 원시(Primitive) 데이터이므로, 제1 메시지 핸들러 통해 이를 내부적으로 사용하는 XML 형태의 프로토콜로 변환하거나, 역으로 XML 형태의 데이터를 바이트 형태의 데이터로 변환할 수 있다. 또한, 상기 XML 형태 및 바이트 형태의 데이터 종류에는 로그인, 새로운 게임 생성(싱글 플레이), 홀 시작, 타구 정보, 홀 종료, 게임 종료, 로비(방) 생성(멀티 플레이), 로비 입장, 로비 게임 시작, 로비 게임 종료, 채팅, 로비 리스트 등이 있다. 또한, 제2 메시지 핸들러도 제1 메지 핸들러와 유사한 방식으로 상위 게이트웨이 및 하위 클라이언트 간의 데이터 프로토콜 변환의 역할을 수행한다.
이에 따라, 상위 클라이언트의 제2 세션 핸들러가 처음 게임방(로비)을 생성할 경우, 로비 정보를 게이트웨이 및 하위 클라이언트로 전송한다. 예를 들어, 로비 정보로는 로비 명, 로비 입장 패스워드, 로비 최대 인원수, 현재 인원수, 선택된 홀 정보, 홀의 배경 등이 해당될 수 있다.
또한, 상기 하위 클라이언트(PC 콘솔 클라이언트)와 상위 클라이언트(PC 콘솔 P2P 호스트)는 동일한 프로그램으로 구현될 수 있다. 이때, 제2 콘솔 매니저는 방을 생성하여 모든 통신을 관리하며, 소유주로서 PC 콘솔 P2P 호스트의 역할을 수행한다. 반면에, 제1 콘솔 매니저는 이미 생성되어 있는 방(로비)에 입장을 원하는 경우로서, PC 콘솔 클라이언트의 역할을 수행한다.
도 8을 참조하면, 프록시 서버 처음 로그인 시 게임 콘텐츠 서버로 전송되어 데이터를 수신받은 후, 사용자 인증에 대한 정보를 저장한다. 이후, 저장된 사용자 인증 정보를 이용하여, 다음번 인증 요청 시 서버의 인증 역할을 대행하여 서버의 부하를 분산할 수 있다. 또한, 게임 진행 중 생성되어 수신되는 게임 데이터를 저장하고 있으며, 추후 해당 데이터에 대한 요청이 있을 시, 서버로 요청하지 않은 채 서비스를 제공함으로써 서버의 부하를 분산할 수 있다.
또한, 제1 멀티캐스트 핸들러를 통해 게임 데이터 중에서 일괄 송신이 필요한 멀티캐스트(Multicast) 그룹 리스트를 생성하여, 상기 멀티캐스트 그룹을 관리한다. 가령, 전체 공지와 같이 일부 특수한 메시지는 일괄 송신이 필요하므로 멀티캐스트 그룹으로 생성되고, 이를 통해 전체 일괄 송신의 그룹 단위를 관리한다.
또한, 상기 채트 핸들러를 통해 채팅 메시지 그룹 리스트를 생성하고 상기 채팅 메시지 그룹을 관리한다. 이때, 클라이언트 상호 간의 채팅(chatting) 메시지는 콘텐츠 서버까지 전송될 필요가 없는 대표적인 데이터이므로, 이를 통해 프록시 서버 레벨차원에서 처리함으로써, 서버의 부하를 줄일 수 있다.
또한, 제3 메시지 핸들러를 통해 상기 PC 콘솔 P2P 호스트로부터 전송되는 게임 데이터에 대해 중요도에 따라 즉각 전송할 메시지 인지 혹은 통합하여 일괄 전송할 멀티캐스트 그룹 메시지 여부를 판단하고, 멀티캐스트 그룹 메시지일 경우에는 통합 후 서버로 전송한다. 이때, 전송할 메시지의 통합을 통해 데이터 송신의 빈도를 줄일 수 있으며, 크기 또한 줄어들어 통신 비용을 줄이는 효과를 줄일 수 있다. 또한, 역으로 하위의 PC 콘솔 P2P 호스트로 송신하는 데이터 또한 전술한 바와 같이 중요도에 따라 즉각 전송 혹은 통합 후 전송할 지 여부를 판단하고 그 판단결과에 따라 전송한다.
도 9을 참조하면, 상기 게임 콘텐츠 서버는, 상기 제4 세션 핸들러를 통해 프록시 서버와 연결을 유지하고 관리하는데, 송수신되는 데이터는 게임 데이터와 로비 정보이다. 즉, 로그인, 새로운 게임 생성(싱글 플레이), 홀 시작, 타구 정보, 홀 종료, 게임 종료, 로비(방) 생성(멀티 플레이), 로비 입장, 로비 게임 시작, 로비 게임 종료, 채팅, 로비 리스트 등이 해당될 수 있다.
또한, 상기 제4 메시지 핸들러를 통해 상기 프록시 서버에서 수신된 데이터를 데이터베이스(DB)에 저장할 수 있는 SQL 형태의 데이터로 변환할 수 있다. 그 역으로도, 프록시 서버로부터 데이터베이스의 데이터에 대한 요청이 수신되면, 해당 데이터를 XML 형태의 데이터로 변환하여 즉각 송신할 수 있는 상태로 만든다.
또한, 상기 로비 매니저를 통해 PC 콘솔 P2P 호스트의 요청으로 생성된 로비데이터를 유지하고 관리할 수 있다.
또한, 서버는 요청에 대해 응답하는 역할만 수행하므로 상위로의 연결은 필요하지 않으므로, 제2 멀티캐스트 핸들러를 통해 상기 프록시 서버로 상기 멀티캐스트 그룹 메시지일 경우에는 통합 후 서버로 전송하고 그렇지 않으면 즉각 전송한다.
또한, 상기 데이터베이스 핸들러는 상기 제4 메시지 핸들러를 통해 SQL 형태로 변환된 데이터를 데이터베이스에 저장하거나 프록시 서버의 요청에 따라 데이터베이스에 저장된 데이터를 불러올 수 있다.
이상의 설명에서 본 발명은 특정의 실시 예와 관련하여 도시 및 설명하였지만, 특허청구범위에 의해 나타난 발명의 사상 및 영역으로부터 벗어나지 않는 한도 내에서 다양한 개조 및 변화가 가능 하다는 것을 당 업계에서 통상의 지식을 가진 자라면 누구나 쉽게 알 수 있을 것이다.
100 : 부하분산형 스크린 골프 시스템
200: PC 콘솔 클라이언트
300: PC 콘솔 P2P 호스트
400: 프록시 서버(게이트웨이)
500: 게임 콘텐츠 서버
210, 310, 410, 510: 세션 핸들러
220, 320, 420, 520: 메시지 핸들러
230, 330: 네트워크 모듈
240, 340: PC 콘솔 매니저
430, 530: 멀티캐스트 핸들러
440: 메모리 핸들러
450: 채트 핸들러
540: 로비 매니저
550; 데이터베이스 핸들러

Claims (14)

  1. 하나 이상의 사용자 단말기와 게임 서버가 네트워크로 연결된 시스템에 있어서,
    상기 사용자 단말기는, 각 게임방을 생성하는 상위 클라이언트와 상기 상위 클라이언트가 형성한 각 게임방에 입장하여 게임 데이터를 생성하는 하위 클라이언트로 분류되고;
    상기 하위 클라이언트에서 생성된 게임 데이터는 상기 상위 클라이언트를 거쳐 게이트웨이를 통해 상기 게임 서버로 순차적으로 전송되거나 그 역으로 상기 게임 데이터가 전송되고;
    상기 하위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 상위 클라이언트에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 상위 클라이언트에서 관리가능한 게임 데이터이면 상기 게이트웨이로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게이트웨이로 상기 게임 데이터를 전송하고;
    상기 상위 클라이언트에서 전송되는 상기 게임 데이터 중에서 상기 게이트웨이에서 관리가능한지 여부를 판단하여, 판단 결과에 따라 상기 게이트웨이에서 관리가능한 게임 데이터이면 상기 게임 서버로 상기 게임 데이터를 전송하지 않고, 그렇지 않으면 상기 게임 서버로 상기 게임 데이터가 전송되고;
    상기 게이트웨이는,
    상기 상위 클라이언트 및 상기 게임 서버와 연결을 담당하는 제3 세션 핸들러와,
    상기 상위 클라이언트로부터 전송되는 게임 데이터에 대해 중요도에 따라 즉각 전송할 메시지 인지 혹은 통합하여 일괄 전송할 멀티캐스트 그룹 메시지 여부를 판단하거나, 그 역으로 상기 상위 클라이언트로 전송할 게임 데이터에 대해 중요도에 따라 즉각 전송할 메시지 인지 혹은 통합하여 일괄 전송할 멀티캐스트 그룹 메시지 여부를 판단하는 제3 메시지 핸들러와,
    상기 제3 메시지 핸들러에 의해 판단된 상기 멀티캐스트 그룹 메시지를 관리하여 전체 송신하는 제1 멀티캐스트 핸들러와,
    채팅 메시지 그룹 리스트를 생성하고 상기 채팅 메시지 그룹을 관리하는 채트 핸들러를 포함하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  2. 제1항에 있어서,
    상기 서버 클라이언트 시스템은, 상기 하위 클라이언트는 PC 콘솔 클라이언트이며, 상기 상위 클라이언트는 PC 콘솔 P2P 호스트이며, 상기 게이트웨이는 프록시 서버로 구성되는 스크린 골프 시스템인 것을 특징으로 하는 부하분산형 서버 클라이언트 시스템.
  3. 제1항에 있어서,
    상기 하위 클라이언트는,
    상기 상위 클라이언트와 연결을 담당하는 제1 세션 핸들러와,
    프로토콜 변환을 수행하는 제1 메시지 핸들러와,
    상기 게임 데이터를 수신받거나 상기 제1 메시지 핸들러에 의해 변환된 프로토콜 형태의 게임 데이터를 상위 클라이언트로 전송하는 제1 네트워크 모듈과,
    상기 제1 세션 핸들러, 상기 제1 메시지 핸들러 및 상기 제1 네트워크 모듈을 관리하는 제1 PC 콘솔 매니저를 포함하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  4. 제3항에 있어서,
    상기 제1 메시지 핸들러는 상기 1 네트워크 모듈을 통해 수신된 게임 데이터를 XML 형태의 프로토콜로 변환하거나, 역으로 상기 XML 형태의 프로토콜 데이터를 바이트 형태의 데이터로 변환하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  5. 제1항에 있어서,
    상기 게임 데이터는 게임 플레이어 정보, 게임 정보, 채팅 정보, 로비 정보, 사용자 인증 정보 중의 어느 하나를 포함하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  6. 제1항에 있어서,
    상기 상위 클라이언트는,
    상기 하위 클라이언트 및 상기 게이트웨이와 연결을 담당하는 제2 세션 핸들러와,
    상기 게이트웨이 및 상기 하위 클라이언트 간의 데이터 프로토콜 변환을 수행하는 제2 메시지 핸들러와,
    상기 제1 네트워크 모듈로부터 변환된 프로토콜 형태의 게임 데이터를 전송받거나 상기 제2 메시지 핸들러에 의해 변환된 프로토콜 형태의 게임 데이터를 상기 게이트웨이로 전송하는 제2 네트워크 모듈과,
    상기 제2 세션 핸들러, 상기 제2 메시지 핸들러 및 상기 제2 네트워크 모듈을 관리하는 제2 PC 콘솔 매니저를 포함하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  7. 삭제
  8. 제1항에 있어서,
    전체 공지 메시지는 상기 멀티캐스트 그룹 리스트에 해당되는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  9. 제1항에 있어서,
    상기 게임 서버는,
    상기 게이트웨이와 연결을 담당하는 제4 세션 핸들러와,
    상기 게이트웨이에서 수신된 게임 데이터를 데이터베이스에 저장할 수 있는 형태의 데이터로 변환하거나 그 역으로 상기 데이터베이스에 저장된 데이터를 상기 게이트웨이로 전송하는 데이터로 변환하는 제4 메시지 핸들러와,
    상기 상위 클라이언트의 요청으로 생성된 로비 정보를 관리하는 로비 매니저와,
    멀티캐스트 그룹 메시지를 관리하여 상기 게이트웨이로 전체 송신하는 제2 멀티캐스트 핸들러와,
    상기 제4 메시지 핸들러를 통해 SQL 형태로 변환된 데이터를 데이터베이스에 저장하거나 상기 게이트웨이의 요청에 따라 데이터베이스에 저장된 데이터를 불러오는 데이터베이스 핸들러를 포함하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  10. 제9항에 있어서,
    상기 제4 메시지 핸들러는, 상기 게이트웨이에서 수신된 게임 데이터를 데이터베이스에 저장할 수 있는 SQL 형태의 데이터로 변환하거나 그 역으로 상기 SQL 형태의 데이터를 XML 형태의 데이터로 변환하는 것을 특징으로 하는 부하 분산형 서버 클라이언트 시스템.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020140065481A 2014-05-29 2014-05-29 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법 KR101616085B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140065481A KR101616085B1 (ko) 2014-05-29 2014-05-29 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140065481A KR101616085B1 (ko) 2014-05-29 2014-05-29 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20150138871A KR20150138871A (ko) 2015-12-11
KR101616085B1 true KR101616085B1 (ko) 2016-04-29

Family

ID=55020134

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140065481A KR101616085B1 (ko) 2014-05-29 2014-05-29 대규모 다중사용자를 위한 네트워크 기반 부하 분산형 스크린 골프 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101616085B1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100469826B1 (ko) 2004-02-05 2005-02-03 엔에이치엔(주) 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템
KR100883907B1 (ko) * 2006-09-15 2009-02-17 엔에이치엔(주) 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템
KR100981381B1 (ko) * 2008-03-20 2010-09-10 계명대학교 산학협력단 단말기 관리 에이전트 및 방법
KR20110105195A (ko) * 2010-03-18 2011-09-26 (주)엔터플레이 유디피 기반 온라인 게임 데이터 처리방법
KR20110136079A (ko) 2010-06-14 2011-12-21 에스케이플래닛 주식회사 게임서버의 부하 분산 방법 및 그의 시스템
US9667713B2 (en) * 2011-03-21 2017-05-30 Apple Inc. Apparatus and method for managing peer-to-peer connections between different service providers

Also Published As

Publication number Publication date
KR20150138871A (ko) 2015-12-11

Similar Documents

Publication Publication Date Title
KR100638071B1 (ko) 다중-사용자 애플리케이션 프로그램 인터페이스
US10201755B2 (en) System and method for providing a platform for real time interactive game participation
US8894494B2 (en) System for remote game access
US8449396B2 (en) Finding friends for multiuser online games
US20090325712A1 (en) Player character matchmaking with distributed peer-to-peer functionality
US8562438B2 (en) System and method for television-based services
US9662589B2 (en) Communicating messages within network games
US20110136577A1 (en) Game manager with multi-platform api components
US20150209617A1 (en) Fitness equipment combining with a cloud service system
US20130182186A1 (en) Image processing system, image processing method, dynamic image transmission device, dynamic image reception device, information storage medium, and program
US20070063999A1 (en) Systems and methods for providing an online lobby
US20090176557A1 (en) Leaderboard event notification
US20120144311A1 (en) Computerized system and method for commenting on sub-events within a main event
CN1852754A (zh) 基于网络的游戏系统
CN100534056C (zh) 一种在网络游戏中用户登录的方法及系统
US9993737B2 (en) Constructing social networks using monitored game play
CN103259715B (zh) 一种管理多人会话的方法、装置及系统
KR20090100628A (ko) 게임 매치 방법 및 그 방법을 이용하는 전자 장치
CN106850789A (zh) 基于服务器负载检测的游戏玩家动态分配系统和方法
CN106422324A (zh) 多终端的实时通讯方法、装置及系统
US11458404B2 (en) Systems and methods for verifying activity associated with a play of a game
CN108521576A (zh) 媒体资源的显示方法、装置、存储介质和电子装置
US8016677B2 (en) System and method for configuring game data about players
US10380330B2 (en) Smart gamepad
CN104353235A (zh) 一种基于云计算实现比赛现场比分显示系统及方法

Legal Events

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

Payment date: 20190418

Year of fee payment: 4