KR100709747B1 - 게임 서버 시스템 및 게임 시스템 운영 방법 - Google Patents

게임 서버 시스템 및 게임 시스템 운영 방법 Download PDF

Info

Publication number
KR100709747B1
KR100709747B1 KR1020050078043A KR20050078043A KR100709747B1 KR 100709747 B1 KR100709747 B1 KR 100709747B1 KR 1020050078043 A KR1020050078043 A KR 1020050078043A KR 20050078043 A KR20050078043 A KR 20050078043A KR 100709747 B1 KR100709747 B1 KR 100709747B1
Authority
KR
South Korea
Prior art keywords
information
server
space
game
game room
Prior art date
Application number
KR1020050078043A
Other languages
English (en)
Other versions
KR20070023456A (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 KR1020050078043A priority Critical patent/KR100709747B1/ko
Publication of KR20070023456A publication Critical patent/KR20070023456A/ko
Application granted granted Critical
Publication of KR100709747B1 publication Critical patent/KR100709747B1/ko

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)

Abstract

본 발명은 게임 서버 시스템 및 게임 시스템 운영 방법에 관한 것으로서, 본 발명에 의한 시스템은 사용자들이 접속하며 사용자들의 접속 및 상태 변화 정보를 감지하고 사용자의 요청에 응답하여 스페이스를 생성하는 프론트 서버군; 상기 프론트 서버군에서 스페이스를 생성할 경우, 생성되는 각각의 스페이스에 고유의 주소 정보를 할당하고 할당한 주소 정보를 관리하는 허브 서버; 상기 프론트 서버군으로부터 사용자들의 접속 및 상태 변화 정보와 스페이스의 생성 및 상태 변화 정보를 수신하여 관리하며, 스페이스 생성과 관련한 제어 정보를 제공하는 백-엔드 서버군을 포함하되, 상기 허브 서버는 프론트 서버군 및 백-엔드 서버군에 포함되는 모든 서버들과의 통신을 위한 소켓을 구비하고 있으며, 상기 프론트 서버군 및 백-엔드 서버군 사이의 통신은 상기 허브 서버를 경유하여 이루어진다. 본 발명에 의하면, 사용자들이 접속한 채널에 구속받지 않고 게임 시스템에 생성된 게임 룸들에 자유롭게 참여할 수 있으며, 물리적으로 다른 서버에 접속한 사용자들간의 메시지 송수신이 가능한 장점이 있다.
게임, 서버, 채널

Description

게임 서버 시스템 및 게임 시스템 운영 방법{Game Server System and Methdo for Managing Game System}
도 1은 종래의 온라인 게임 서버 시스템의 일례를 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 게임 서비스 시스템의 개략적인 구성을 도시한 블록도.
도 3은 본 발명의 바람직한 일 실시예에 따른 게임 서버 시스템의 상세 구성을 도시한 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 허브 서버의 모듈 구성을 도시한 블록도.
도 5는 본 발명의 바람직한 일 실시예에 따른 사용자 매니저 서버의 모듈 구성을 도시한 블록도.
도 6은 본 발명의 바람직한 일 실시예에 따른 게임 룸 매니저 서버의 모듈 구성을 도시한 블록도.
도 7은 본 발명의 바람직한 일 실시예에 따른 채팅 매니저 서버의 모듈 구성을 도시한 블록도.
도 8은 본 발명의 바람직한 일 실시예에 따른 게임 서버 시스템에서 스페이 스가 생성되는 절차에 대한 순서도.
도 9는 본 발명의 바람직한 일 실시예에 따른 생성된 스페이스에 상태 변화가 있을 경우 상태 변화 정보를 백-엔드 서버군에 제공하는 과정에 대한 순서도.
본 발명은 게임 서버 시스템에 관한 것으로서, 더욱 상세하게는 다수의 사용자가 게임 서버에 접속하여 게임을 플레이하는 온라인 게임의 게임 서버 시스템에 관한 것이다.
최근, 네트워크 기술의 발달로 대용량 멀티미디어 데이터의 고속 전송이 가능해지고, 네트워크에 접속 가능한 사용자 단말기의 보편적인 보급에 따라 사용자에게 다양한 종류의 컨텐츠를 제공하는 컨텐츠 제공업체(Contents Provider: CP)가 급속도로 증가하고 있는 추세이다.
컨텐츠 제공업체는 검색, 쇼핑, 게임 및 채팅 서비스와 같은 다양한 종류의 컨텐츠를 제공하고 있으며, 특히, 온라인 게임 서비스는 유료 서비스인 경우에도 많은 수요자 층을 확보할 수 있다는 점에서 컨텐츠 제공업체의 큰 수익원으로 자리 잡고 있다.
컨텐츠 제공 업체에서 제공하는 온라인 게임은 고스톱, 포커와 같은 보드 게임과 헥사 등의 블록 게임 등 종류가 다양하다.
도 1은 종래의 온라인 게임 서버 시스템의 일례를 도시한 도면이다.
도 1에 도시된 바와 같이, 종래의 온라인 게임 서버 시스템은 다수의 채널 서버(100)로 이루어져 있으며, 각각의 채널 서버마다 독립적으로 게임이 진행되었다.
사용자 클라이언트들(100)은 게임을 제공하는 채널 서버에 접속하기 전에 별도의 게임 접속 서버(미도시)에서 제공하는 웹페이지를 통해 채널을 선택하며, 선택된 채널의 서버에서 게임을 플레이하였다.
종래의 경우, 채널은 사용자들의 게임 레벨, 나이, 성별 등을 기준으로 분류되었으며, 사용자들의 레벨을 기준으로 채널을 분류하는 것이 가장 일반적이었다. 또한, 종래의 시스템은 각 채널마다 별도의 서버가 준비되어 게임 룸은 각각의 채널별로 생성되었었다.
이와 같은 종래의 시스템에 의하면, 사용자들은 특정 채널을 선택한 경우 다른 채널에서 생성된 게임 룸에 참여할 수 없었으며 해당 채널에 접속한 사용자들간에만 채팅 및 게임이 가능한 문제점이 있었다. 특히, 각 채널 별로 독립적으로 게임이 진행되기 때문에 사용자가 많은 채널에는 계속 사용자가 몰리고 그렇지 않은 채널에서는 원활한 게임 진행이 어려워 채널 서버의 부하 분산이 효율적으로 이루어지지 못하였다.
또한, 서비스 프로바이더는 각 채널 서버에 형성된 게임 룸 및 각 채널 서버에 접속한 사용자들의 정보를 효율적으로 관리할 수 없었다.
아울러, 근래에는 길드와 같이 다수의 사용자가 모임을 형성하여 게임을 즐 기는 경우가 많은데, 종래의 게임 시스템에 의하면, 같은 길드에 속하는 사용자라도 채널이 다른 경우 같은 길드원간의 채팅 및 게임이 불가능한 문제점이 있다.
본 발명에서는 상기한 바와 같은 종래 기술의 문제점을 해결하기 위해, 사용자들이 접속한 채널에 구속받지 않고 게임 시스템에 생성된 게임 룸들에 자유롭게 참여할 수 있는 게임 서버 시스템을 제안하고자 한다.
본 발명의 다른 목적은 사용자들이 접속한 채널에 구속받지 않고 게임 시스템에 접속한 사용자들간의 채팅 및 게임 진행이 가능한 게임 서버 시스템을 제안하는 것이다.
본 발명의 또 다른 목적은 게임 서버 시스템을 구성하는 서버들간의 효율적인 통신을 통해 게임 시스템에 생성된 스페이스 및 게임 시스템에 접속한 사용자를 관리할 수 있는 게임 서버 시스템을 제안하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 측면에 따르면, 사용자들이 접속하며 사용자들의 접속 및 상태 변화 정보를 감지하고 사용자의 요청에 응답하여 스페이스를 생성하는 프론트 서버군; 상기 프론트 서버군에서 스페이스를 생성할 경우, 생성되는 각각의 스페이스에 고유의 주소 정보를 할당하고 할당한 주소 정보를 관리하는 허브 서버; 상기 프론트 서버군으로부터 사용자들의 접속 및 상태 변화 정보와 스페이스의 생성 및 상태 변화 정보를 수신하여 관리하며, 스페이스 생성과 관련한 제어 정보를 제공하는 백-엔드 서버군을 포함하되, 상기 허브 서버는 프론트 서버군 및 백-엔드 서버군에 포함되는 모든 서버들과의 통신을 위한 소켓을 구비하고 있으며, 상기 프론트 서버군 및 백-엔드 서버군 사이의 통신은 상기 허브 서버를 경유하여 이루어지는 게임 서버 시스템이 제공된다.
사용자들이 생성된 스페이스에 대한 참여 요청 정보를 전송할 경우, 상기 백엔드 서버군은 해당 스페이스의 주소 정보를 제공함으로써 스페이스로의 접속을 가능하게 하는 것이 바람직하다.
상기 프론트 서버군은 사용자들의 로그인 요청 정보를 수신하고 상기 백-엔드 서버군과의 통신을 통해 사용자 로그인 요청을 처리하는 적어도 하나의 로비 서버; 사용자들간의 채팅 기능을 제공하고 사용자들이 다른 서버들에 생성된 스페이스들에 대한 정보를 조회하고 참여 요청을 할 수 있는 웹페이지를 제공하는 적어도 하나의 채팅 서버; 상기 프론트 서버군과의 통신을 통해 게임 룸을 생성하고, 게임 룸에 참여한 사용자들에게 게임 서비스를 제공하는 적어도 하나의 게임 룸 서버를 포함할 수 있다.
상기 백-엔드 서버군은, 상기 프론트 서버군으로부터 사용자의 접속 정보 및 상태 변화 정보를 수신하여 관리하는 사용자 매니저 서버; 상기 프론트 서버군으로부터 게임 룸 스페이스 생성 정보 및 게임 룸 스페이스의 상태 변화 정보를 수신하여 관리하는 게임 룸 매니저 서버; 및 상기 채팅 서버로부터 채팅 서버에 참여한 사용자 정보 및 채팅 서버에 개설된 채팅 룸 스페이스 정보를 수신하여 관리하는 채팅 매니저 서버를 포함할 수 있다.
상기 게임 룸 매니저 서버는 게임 룸 생성 요청 정보를 수신할 경우 게임 룸을 생성할 게임 룸 서버 정보 지정 정보를 제공하며, 상기 게임 룸 서버가 지정한 서버 게임 룸 서버에 게임 룸이 생성되는 것이 바람직하다.
상기 게임 룸 서버는 게임 룸 생성 시 상기 허브 서버로부터 게임 룸에 대한 고유 주소 정보를 제공받는 것이 바람직하다.
상기 사용자 매니저 서버는 접속한 사용자들이 속한 스페이스 정보를 관리하며, 특정 사용자로의 메시지 요청 정보를 수신할 경우 해당 사용자의 스페이스 주소 정보를 메시지에 포함시키며, 상기 허브 서버는 상기 스페이스 주소 정보를 이용하여 메시지를 해당 사용자에게 전송하는 것이 바람직하다.
상기 허브 서버는, 프론트 서버군의 요청에 응답하여 프론트 서버군에 생성될 스페이스의 고유 주소를 생성하여 할당하는 스페이스 주소 생성부; 상기 스페이스 주소 생성부에 의해 생성된 각 스페이스의 주소 정보를 관리하는 스페이스 주소 관리부; 상기 프론트 서버군 및 백-엔드 서버군에 속하는 각각의 서버들과의 통신을 위한 복수의 통신 소켓; 및 상기 프론트 서버군 및 백-엔드 서버군에 속하는 서버들로부터 메시지 패킷을 수신할 경우 메시지 패킷의 목적지 주소 정보를 이용하여 패킷을 전송할 소켓을 결정하는 메시지 전달부를 포함할 수 있다.
상기 사용자 매니저 서버는, 프론트 서버군으로부터 사용자들의 접속 정보 및 사용자들의 상태 변화 정보를 수신하는 사용자 정보 수신부; 상기 사용자 정보 수신부에서 수신한 정보를 관리하는 사용자 정보 관리부; 각 사용자들의 친구 리스 트를 관리하고, 미리 설정된 친구 관련 이벤트가 발생할 경우 이벤트 발생 정보를 관련된 사용자에게 전송하는 친구 정보 관리부; 특정 사용자의 정보를 요청받을 경우 상기 사용자 정보 관리부의 정보를 이용하여 해당 사용자의 정보를 제공하는 사용자 정보 전송부를 포함할 수 있다.
상기 게임 룸 매니저 서버는 게임 룸 생성 시 게임룸 서버들의 부하를 모니터링하고 생성될 게임 룸 서버를 지정하는 게임 룸 생성 제어부; 게임 룸 생성 정보 및 생성된 게임 룸들의 상태 변화 정보를 수신하는 게임 룸 정보 수신부; 상기 게임 룸 정보 수신부에 의해 수신된 게임 룸 정보들을 관리하는 게임 룸 정보 관리부; 게임 룸에 대한 정보 요청을 수신할 경우, 상기 게임 룸 정보 관리부에 저자오딘 게임 룸들에 대한 정보를 제공하는 게임 룸 정보 제공부; 및 사용자의 특성 정보를 이용하여 사용자의 특성에 맞는 게임 룸을 선택하고 해당 게임룸에 참여하기 위한 게임 룸 스페이스 주소 정보를 제공하는 게임 룸 참여 매칭부를 포함할 수 있다.
본 발명의 다른 측면에 따르면, 프론트 서버군과 백-엔드 서버군을 포함하는 게임 시스템에서 상기 프론트 서버군과 백-엔드 서버군의 속하는 서버들간의 통신을 중계하기하기 위한 허브 서버로서, 상기 프론트 서버군의 요청에 응답하여 프론트 서버군에 생성될 스페이스의 고유 주소를 생성하여 할당하는 스페이스 주소 생성부; 상기 스페이스 주소 생성부에 의해 생성된 각 스페이스의 주소 정보를 관리하는 스페이스 주소 관리부; 상기 프론트 서버군 및 백-엔드 서버군에 속하는 각각의 서버들과의 통신을 위한 복수의 통신 소켓; 및 상기 프론트 서버군 및 백-엔드 서버군에 속하는 서버들로부터 메시지 패킷을 수신할 경우 메시지 패킷의 목적지 주소 정보를 이용하여 패킷을 전송할 소켓을 결정하는 메시지 전달부를 포함하는 게임 서버가 제공된다.
본 발명의 또 다른 측면에 따르면, 프론트 서버군, 백-엔드 서버군 및 허브 서버를 포함하는 시스템에서 게임 시스템 운영을 위해 상기 허브 서버에서 실행되는 방법으로서, 스페이스가 생성될 경우 생성될 스페이스의 고유의 주소 정보를 생성하여 상기 프론트 서버군 또는 백-엔드 서버군에 전송하는 단계(a); 상기 생성된 스페이스의 고유 주소 정보를 저장하는 단계(b); 프론트 서버군 또는 백-엔드 서버군으로부터 패킷 전달 요청정보를 수신할 경우, 패킷의 목적지 주소 정보를 이용하여 패킷을 전달할 소켓을 결정하는 단계(c); 및 상기 단계(c)에서 결정된 소켓을 이용하여 수신된 패킷을 전달하는 단계(d)를 포함하는 게임 시스템 운영 방법이 제공된다.
이하에서, 첨부된 도면을 참조하여 본 발명에 의한 게임 서버 시스템 및 게임 시스템 운영 방법의 바람직한 실시예를 상세하게 설명한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 게임 서비스 시스템의 개략적인 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 게임 서버 시스템은 백-엔드(back-end) 서버군(200), 허브 서버(202) 및 프론트 서버군(204)을 포함할 수 있다.
본 발명의 게임 서버 시스템은 고스톱, 포커, 테트리스 등과 같은 독립된 게임 룸에서 복수의 사용자가 게임을 즐길 수 있는 온라인 보드 게임 및 블록 게임에 모두 적용될 수 있다. 보드 게임 및 블록 게임과 같이 명시적인 게임 룸이 제공되지 않더라도 일정 숫자의 사용자가 특정한 논리적인 공간에서 게임을 수행하는 어떠한 종류의 게임도 본 발명에 적용될 수 있을 것이다.
도 2에서, 프론트 서버군(204)은 사용자들이 네트워크를 통해 직접 연결하는 서버군 을 의미한다. 프론트 서버군(204)은 사용자들이 게임 시스템 접속 요청 정보를 처리하고 게임을 진행하기 위한 게임 룸을 제공하는 기능을 한다. 프론트 서버군(204)은 사용자 인증 처리, 게임 룸 제공, 채널 제공 등의 기능을 제공하는 복수의 서버로 이루어질 수 있으며 상술한 기능은 하나 또는 그 이상의 서버에서 통합적으로 제공할 수도 있고, 각각의 기능을 위한 독립적인 서버가 존재할 수도 있다.
사용자가 프론트 서버군(204)을 통해 게임 시스템에 접속한 경우 사용자는 게임 룸 참여, 채팅, 게임 룸 생성 등과 같은 다양한 요청 정보를 프론트 서버군(204)에 전송할 수 있다.
프론트 서버군(204)은 사용자의 요청이 채팅 룸 또는 게임 룸과 같이 일정한 스페이스를 생성하는 것일 경우 프론트 서버군(204)은 허브 서버(202)에 생성될 스페이스에 대한 주소 정보의 생성을 요청한다. 본 발명의 바람직한 실시예에 따르면, 프론트 서버군에서 생성되는 모드 스페이스에는 고유의 주소 정보가 할당되며, 사용자로부터 스페이스 생성 요청 정보를 수신할 경우, 프론트 서버군은 생성될 스 페이스에 대한 주소 정보의 생성을 허브 서버(302)에 요청한 후 수신한 주소에 상응하여 스페이스를 생성한다.
사용자로부터의 요청 정보가 스페이스 생성이 아닌 생성된 스페이스로의 참여 정보일 경우, 프론트 서버군(204)은 허브 서버(202)와의 통신을 통해 생성된 스페이스에 대한 주소 정보를 사용자 클라이언트에 제공하여 해당 스페이스에 사용자가 참여할 수 있도록 한다.
또한, 프론트 서버군(204)의 서버들은 생성된 스페이스에 상태 변화가 있을 경우 상태 변화 정보를 허브 서버(202)에 전송한다. 예를 들어, 프론트 서버군(204)은 생성된 스페이스가 없어지거나 생성된 스페이스에 참가하는 인원이 변동될 경우 상태 변화 정보를 허브 서버(202)에 전송한다. 즉, 프론트 서버군(204)은 게임 룸 또는 채팅 룸 등에 참여하고 있는 사용자 정보 및 기타 생성된 스페이스에 관한 상태를 계속적으로 모니터링하며 변화가 발생할 때마다 이를 감지하여 허브 서버(202)에 전송한다.
허브 서버(202)는 프론트 서버군(204)의 특정 서버에서 스페이스가 생성될 경우 해당 스페이스의 주소를 할당하며, 프론트 서버군(204)에 생성된 각 스페이스의 주소 정보를 관리하는 기능을 한다. 허브 서버(202)는, 프론트 서버군(204)의 특정 서버가 스페이스 생성 요청을 받을 경우, 프론트 서버군(204)의 해당 서버로부터 주소 할당 요청을 받게 되며 생성될 스페이스에 상응하는 주소 정보를 해당 서버에 제공한다.
또한, 허브 서버(202)는 프론트 서버군(204)과 백-엔드 서버군(200) 사이의 통신을 중계하는 기능을 한다. 프론트 서버군(204)은 이벤트가 발생할 때마다 이벤트 발생 정보를 백-엔드 서버군(200)에 전송하여 백-엔드 서버군(200)이 프론트 서버군(204)의 상태를 관리할 수 있도록 한다.
프론트 서버군(204)의 서버들과 백-엔드 서버군(200)의 서버들 사이의 패킷 중계를 위해, 허브 서버(202)는 프론트 서버군(204)의 각 서버들 및 백-엔드 서버군(200)의 각 서버들과의 통신을 위한 복수의 소켓을 구비하고 있다. 프론트 서버군(204)의 각 서버들 및 백-엔드 서버군(200)의 각 서버는 다른 서버들과의 통신을 위한 다수의 소켓을 구비할 필요가 없으며, 허브 서버(202)에 패킷을 전달하면 허브 서버(202)에 의해 패킷의 중계가 수행된다.
본 발명은 허브 서버(202)가 프론트 서버군(204)의 서버들에서 생성되는 스페이스들에 대해 고유의 주소를 할당하고 할당한 주소 정보를 관리함으로써 물리적으로 다른 서버들의 스페이스에 대한 정보를 백-엔드 서버군(200)에서 용이하게 관리하고 서로 서버들에 접속한 사용자들간에 메시지 전송 및 정보 교환이 가능한 장점이 있다.
백-엔드 서버군(200)은 프론트 서버군(204)의 정보를 관리하고 프론트 서버군의 각 서버들의 동작을 제어하는 기능을 한다. 구체적으로 백-엔드 서버군(200)은 프론트 서버군(204)에 접속한 사용자들의 정보, 프론트 서버군(204)에 생성된 스페이스들의 정보를 관리하며, 관리되는 사용자 및 스페이스 정보 등을 이용하여 사용자들의 프론트 서버군 접속 및 스페이스 생성을 제어한다.
백-엔드 서버군(200)은 접속한 사용자의 정보 또는 스페이스의 상태가 변화 될 때마다 상태 변화 정보를 허브 서버(202)를 통해 프론트 서버군(204)으로부터 수신하며, 수신된 정보에 상응하여 관리하는 정보를 갱신한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 게임 서버 시스템의 상세 구성을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 게임 서버 시스템은 사용자 매니저 서버(300), 룸 매니저 서버(302), 대기자 매니저 서버(304), 로비 서버(306), 대기자 서버(308), 게임 룸 서버(310), 싱글 모드 서버(312) 및 허브 서버(314)를 포함할 수 있다.
도 3에서, 사용자 매니저 서버(300), 룸 매니저 서버(302), 대기자 매니저 서버(304)는 백-엔드 서버군(200)에 속하며, 로비 서버(306), 대기자 서버(308), 게임 룸 서버(310) 및 싱글 모드 서버(312)는 프론트 서버군(204)에 속한다. 또한, 도 3에 도시된 각각의 서버들은 복수개가 존재할 수 있다.
로비 서버(306)는 사용자들이 본 발명에 의한 게임 서버 시스템에 초기에 접속하는 서버이다. 로비 서버(306)는 사용자 매니저 서버(300)와의 통신을 통해 사용자 인증을 처리하고 캐릭터가 필요한 게임일 경우 캐릭터 생성을 지원한다.
로비 서버(306)는 사용자가 로그인 요청을 할 경우 사용자로부터 수신한 아이디 및 비밀 번호 정보를 허브 서버(314)를 통해 사용자 매니저 서버에 전송하며 사용자 매니저 서버로부터의 응답 정보에 따라 사용자의 접속을 허락한다.
대기자 서버(308)는 사용자들간의 채팅 기능을 제공하고 사용자들이 게임에 앞서 참여할 게임 룸을 선택하거나 게임 룸을 생성할 수 있는 공간을 제공한다. 대 기자 서버(308)는 대기자 매니저 서버(304)와의 통신을 통해 채팅 룸 스페이스를 생성하며 채팅 룸 스페이스에 상태 변화가 생길 때마다 상태 변화 정보를 허브 서버(314)를 통해 대기자 매니저 서버에 전송하나.
또한, 대기자 서버(308)는 사용자가 개설된 게임 룸에 대한 정보를 제공 받고 게임 룸 참여를 요청하거나 게임 룸 생성을 요청할 수 있는 인터페이스가 구비된 웹페이지를 제공한다. 물론, 대기자 서버는 채팅 기능만을 제공하고 게임 룸 참여 및 게임 룸 생성을 요청할 수 있는 인터페이스를 제공하는 기능은 별도의 서버에 의해 제공될 수도 있다는 것은 당업자에게 있어 자명할 것이다.
게임 룸 서버(310)는 복수의 사용자들이 참여하여 게임을 즐길 수 있는 게임 룸 스페이스를 제공하는 기능을 한다. 게임 룸 서버(310)는 게임 룸 매니저 서버(302)와의 통신을 통해 게임 룸 매니저 서버(302)의 제어 정보에 따라 게임 룸을 생성한다. 또한, 게임 룸 서버(310)는 게임 룸 스페이스에 상태 변화가 생길 경우 허브 서버(314)를 통해 상태 변화 정보를 전송한다.
싱글 모드 서버(312)는 사용자가 혼자서 게임을 즐기는 싱글 모드의 게임을 제공하는 기능을 한다. 예를 들어, 싱글 모드 서버(312)는 사용자가 게임에 쉽게 적응하도록 연습 모드의 게임 등을 제공할 수 있을 것이다.
사용자 매니저 서버(300)는 게임 서버 시스템에 접속한 사용자들의 정보를 관리하는 기능을 한다. 사용자 매니저 서버는 사용자 로그인, 로그아웃 또는 스페이스 이동과 같이 사용자 상태 변화가 있을 경우 해당 정보를 프론트 서버군의 서버들로부터 수신하여 관리한다. 특히, 사용자 매니저 서버(300)는 사용자가 스페이 스를 이동할 때마다 이동한 주소 정보(허브 서버에 의해 할당됨)를 저장함으로써 게임 서버 시스템에 접속한 사용자들의 위치 정보를 계속적으로 관리하여 물리적으로 다른 서버에 접속한 사용자들간의 통신이 가능하도록 한다.
또한, 사용자 매니저 서버(300)는 사용자들이 등록한 친구 정보를 관리하며, 특정 사용자의 친구가 접속할 경우 해당 사용자에게 접속 정보를 제공한다. 사용자 매니저 서버(300)가 게임 시스템에 접속한 모든 사용자의 정보를 관리하고 각 사용자가 존재하는 스페이스의 위치 정보를 관리하므로 사용자가 접속해 있는 물리적인 서버에 구속되지 않고 친구 관련 메시지 전송이 가능하다. 종래의 경우, 사용자들이 서로 다른 채널 서버에 접속할 경우 다른 채널 서버에 접속한 사용자의 상태 정보를 확인하거나 다른 채널 서버에 접속한 사용자와이 메시지 송수신이 불가능하였다. 그러나, 본 발명에 의하면, 허브 서버가 사용자들이 존재하는 모든 스페이스에 고유의 주소 정보를 할당하고 각 스페이스의 사용자 정보를 사용자 매니저 서버(300)가 관리하므로 다른 서버에 접속한 사용자들 간의 통신이 가능하다. 사용자 매니저 서버는 특정 사용자에게로의 메시지 전송을 요청받을 경우, 해당 사용자가 속한 스페이스 주소를 목적지 주소로 하는 메시지 패킷을 생성하여 허브 서버에 제공하며, 허브 서버는 메시지 패킷을 해당 스페이스로 전송한다.
게임 룸 매니저 서버(302)는 게임 룸 서버에 생성된 게임 룸들에 대한 정보를 관리하고 사용자가 게임 룸 생성을 요청할 경우 게임 룸 생성을 위한 제어 정보를 게임 룸 서버에 제공한다.
전술한 바와 같이, 게임 룸 서버는 복수개가 존재할 수 있으며, 게임 룸 매 니저 서버는 게임 룸 생성 요청 정보를 수신할 경우 복수의 게임 룸 서버 중 하나를 선택하여 선택된 게임 룸 서버에 게임 룸이 생성되도록 제어 정보를 제공한다.
또한, 게임 룸 매니저 서버(304)는 허브 서버(314)를 통해 게임 룸 서버(310)로부터 게임 룸의 상태 변화 정보를 수신하며, 수신된 정보를 반영하여 게임 룸 서버에 생성된 게임 룸들에 대한 정보를 관리한다.
대기자 매니저 서버(304)는 대기자 서버에 접속한 사용자 정보 및 대기자 서버에 생성된 채팅룸을 관리하는 기능을 한다. 또한, 룸 매니저 서버(302)와 같이, 대기자 매니저 서버(304)는 대기자 서버에서의 채팅 룸 생성을 제어한다.
대기자 매니저 서버(304)는 허브 서버(314)를 통해 대기자 서버에 접속한 사용자들의 변화 정보(대기자 서버 접속 및 대기자 서버와의 접속 해제 등) 및 채팅룸 변화 정보(채팅룸의 생성 및 생성된 채팅룸에 참여한 사용자 정보 등)를 수신하여 수신된 정보를 관리한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 허브 서버의 모듈 구성을 도시한 블록도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 허브 서버는 스페이스 주소 생성부(400), 스페이스 주소 관리부(402), 메시지 전달부(404) 및 서버 연결 소켓(406)을 포함할 수 있다.
스페이스 주소 생성부(400)는 프론트 서버군 또는 백-엔드 서버군의 서버들에 생성되는 각 스페이스의 주소를 생성하여 할당하는 기능을 한다. 프론트 서버군에 생성되는 스페이스에는 복수의 사용자들이 협력 또는 경쟁을 통해 게임을 즐기 는 공간인 게임 룸 스페이스, 사용자들간의 채팅을 위한 공간인 채팅 룸 스페이스 등이 포함될 수 있으며, 상술한 사용자에 의해 생성되는 스페이스 이외에도 로비서버 및 싱글 모드 서버와 같이 사용자가 접속하여 있는 공간은 모두 스페이스에 포함된다. 예를 들어, 로비 서버가 복수개인 경우 각각의 로비 서버는 동일한 기능을 수행하더라도 서로 다른 스페이스로 처리된다.
스페이스 주소 생성부(400)는 초기에 시스템이 시작할 때 도 3의 각 서버들과의 연결을 설정하고 각 서버들에 스페이스의 주소를 할당한다. 또한, 스페이스 주소 생성부(400)는 게임 룸 또는 채팅 룸과 같이 사용자에 의해 생성되는 스페이스의 생성 요청 정보가 있을 경우 생성될 스페이스의 주소 정보를 생성하여 제공한다.
스페이스 주소 생성부(400)에서 생성하는 주소는 각 스페이스에 대해 고유한 것이며 관리의 용이성을 위해 URL과 같이 계층적인 구조를 가질 수 있을 것이다.
스페이스 주소 관리부(402)는 스페이스 주소 생성부(400)에 의해 생성된 각 스페이스의 주소 정보를 관리한다. 스페이스 주소 생성부(400)가 주소를 할당한 경우 할당된 주소 정보는 스페이스 주소 관리부(402)에 저장되며, 또한 주소가 할당된 스페이스가 없어질 경우 스페이스 주소 관리부(402)는 해당 스페이스에 대한 주소 정보를 삭제한다.
허브 서버가 특정 스페이스로 패킷을 전송할 것을 요청받을 경우, 허브 서버는 스페이스 주소 관리부(402)에 저장된 주소 정보를 이용하여 패킷 전달을 수행한다.
통신 소켓(406)은 허브 서버와 연결된 복수의 서버들과의 통신을 소켓을 의미하며, 허브 서버는 각각의 서버와의 통신을 위한 소켓을 복수개 구비하고 있다. 즉, 도 3의 경우, 허브 서버는 사용자 매니저 서버, 게임 룸 매니저 서버, 대기자 매니저 서버, 로비 서버, 대기자 서버, 게임 룸 서버 및 싱글 모드 서버 각각과의 통신을 위한 소켓을 모두 구비하고 있다. 전술한 바와 같이, 모든 메시지는 허브 서버를 통해 전달되므로 허브 서버 이외의 서버는 허브 서버와의 소켓만을 구비하면 되고 다른 서버와의 통신을 위한 소켓을 구비할 필요가 없다.
각각의 서버와의 통신 소켓은, 통상적인 소켓과 같이, 리스너, 리더, 큐, 라이터, 핸들러 등을 포함할 수 있으며, 리스너를 통해 패킷을 수신하고 라이터를 통해 패킷을 다른 서버로 전송한다.
메시지 전달부(404)는 허브 서버와 연결된 복수의 서버들간의 메시지 중계를 수행하는 기능을 한다. 메시지 전달부(404)는 특정 서버로부터 패킷 전달을 요청받을 경우 해당 패킷이 어떠한 서버로 전달되어야 할지 여부를 판단하고 판단된 서버에 상응하는 소켓을 이용하여 패킷을 전달한다. 메시지 전달부(404)는 패킷에 포함된 목적지 주소 정보를 이용하여 어떠한 소켓을 통해 패킷을 전달할지 여부를 판단할 수 있을 것이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 사용자 매니저 서버의 모듈 구성을 도시한 블록도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 사용자 매니저 서버는 사용자 정보 수신부(500), 사용자 정보 관리부(502), 친구 정보 관리부(504), 사용자 정보 송신부(506) 및 인증 처리부(508)를 포함할 수 있다.
사용자 정보 수신부(500)는 사용자 로그인, 사용자 로그아웃 등과 같은 사용자 접속 정보와 사용자의 스페이스 이동 또는 사용자의 레벨 변화와 같은 사용자의 상태 변화 정보를 프론트 서버군의 서버들로부터 수신하는 기능을 한다. 프론트 서버군의 서버들은 위와 같이 사용자들이 게임 룸 참여 등으로 인해 접속하고 있는 스페이스를 변동하거나 게임 머니, 레벨 등과 같은 상태 정보가 변환될 경우 이를 감지하여 사용자 매니저 서버로 전송하며, 사용자 정보 수신부(500)는 허브 서버를 통해 프론트 서버군의 서버들이 전송한 정보를 수신한다.
사용자 정보 관리부(502)는 사용자 정보 수신부(500)가 수신한 정보를 반영하는 데이터베이스로서의 기능을 한다. 사용자 정보 관리부(502)는 사용자 정보 수신부(500)가 수신한 데이터를 미리 설정된 알고리즘에 따라 데이터베이스에 저장할 수 있는 형태로 변환하고 변환된 정보를 저장한다.
친구 정보 관리부(504)는 각각의 사용자들이 설정한 친구 정보를 관리하는 기능을 한다. 사용자들은 프론트 서버군에서 제공하는 웹페이지 또는 전용 프로그램 등을 이용하여 자신의 친구를 등록할 수 있으며, 친구 정보 관리부(504)는 사용자들의 친구 등록 정보를 수신하여 관리한다.
사용자 정보 송신부(506)는 사용자 정보 관리부에서 관리하는 사용자의 상태 정보를 제공하는 기능을 한다. 예를 들어, 사용자 정보 송신부(506)는 사용자 A가 사용자 B가 위치한 스페이스를 문의할 경우 B의 스페이스 및 주소 정보를 제공한다. 또한, 사용자 정보 송신부(506)는 각 사용자들의 친구 관련 정보를 제공하는 기능을 한다. 예를 들어, 특정 사용자가 로그인하였다는 정보가 사용자 정보 수신부(500)에 수신된 경우, 사용자 정보 송신부(506)는 로그인한 사용자를 친구로 등록하고 있고 현재 온라인 상태인 사용자들에게 친구가 로그인하였다는 정보를 제공한다.
인증 처리부(508)는 로그인 요청 정보가 로비 서버로부터 전송될 경우, 로그인 요청 정보에 포함된 아이디 및 비밀 번호가 등록된 아이디 및 비밀번호와 일치하는지 여부를 판단하는 사용자 인증 과정을 수행한다. 인증 처리부(508)는 별도의 계정 데이터베이스와의 통신을 통해 사용자 인증을 수행할 수도 있으며 자체적으로 저장하고 있는 사용자 계정 정보를 이용하여 사용자 인증을 수행할 수도 있다.
도 6은 본 발명의 바람직한 일 실시예에 따른 게임 룸 매니저 서버의 모듈 구성을 도시한 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 게임 룸 매니저 서버는 게임 룸 생성 제어부(600), 게임 룸 정보 수신부(602), 게임 룸 정보 관리부(604), 게임 룸 정보 제공부(606) 및 게임 룸 참여 매칭부(608)를 포함할 수 있다.
게임 룸 생성 제어부(600)는 게임 룸 생성 요청 정보를 수신할 경우 어떠한 룸 서버에 게임 룸을 생성할 것인가에 대한 제어 정보를 제공한다. 전술한 바와 같이, 게임 룸 서버는 복수개가 존재할 수 있으며, 게임 룸 생성 제어부(600)는 복수의 게임 룸 서버 중 룸을 생성할 게임 룸 서버 정보를 제공한다.
본 발명의 바람직한 실시예에 따르면, 게임 룸 생성 제어부(600)는 각각의 게임 룸 서버에 고르게 게임 룸이 생성될 수 있도록 제어 정보를 제공한다. 예를 들어, A, B, C 세 개의 게임 룸 서버가 존재하고, A 서버에 20개의 룸이 생성되어 있고, B 서버에 20개의 룸이 생성되어 있으며, C 서버에 18개의 룸이 생성되어 있을 경우, 게임 룸 생성 제어부(600)는 C 서버에 새로운 게임 룸이 생성되도록 제어 정보를 제공한다.
종래의 게임 시스템의 경우, 각각의 채널 마다 독립된 서버가 존재하고 사용자들이 채널을 선택하므로 사람이 많은 채널 서버에 사용자들이 편중되는 문제점이 있었다. 그러나, 본 발명에 의하면, 게임 룸 매니저 서버가 방이 생성될 게임 룸 서버를 선택하므로 부하 분산이 용이하게 이루어질 수 있다.
게임 룸 정보 수신부(602)는 게임 룸 서버의 게임 룸에 상태 변화가 생길 경우(예를 들어, 룸이 없어지거나 룸에 참여하는 사용자들이 변경됨), 상태 변화 정보를 게임 룸 서버로부터 수신하는 기능을 한다. 게임 룸 서버는 상태 변화가 생길 경우 변동된 정보만을 게임 룸 정보 수신부(602)에 제공할 수도 있으며, 전체 게임 룸 정보를 다시 보낼 수도 있다.
게임 룸 정보 관리부(604)는 게임 룸 정보 수신부(602)가 수신한 정보를 반영하는 데이터베이스로서의 기능을 한다. 게임 룸 정보 관리부(604)는 게임 룸 정보 수신부(602)가 수신한 데이터를 미리 설정된 알고리즘에 따라 데이터베이스에 저장할 수 있는 형태로 변환하고 변환된 정보를 저장한다.
게임 룸 정보 제공부(606)는 게임 룸 정보 요청이 있을 경우 룸 정보 관리부(604)에 저장된 룸 정보를 제공하는 기능을 한다. 프론트 서버군에 접속한 사용자는 게임 룸 매니저 서버에 현재 생성된 게임 룸들에 대한 정보를 요청할 수 있으 며, 게임 룸 정보 제공부(606)는 해당 요청 정보에 응답하여 개설된 게임 룸들에 대한 정보를 제공한다.
사용자들은 게임 룸 생성 시 게임 룸의 속성 정보(예를 들어, 참여하는 사용자들의 레벨, 나이, 성별 등)를 입력할 수 있으며, 게임 룸 정보 제공부(606)는 개설된 게임 룸들의 리스트뿐만 아니라 상기의 속성 정보를 이용하여 보다 상세한 게임 룸 정보를 제공하는 것이 가능하다. 예를 들어, 사용자가 10레벨 이상의 사용자들이 참여하는 게임 룸 정보를 요청한 경우, 룸 정보 제공부(606)는 상기 속성 정보를 분석하여 개설된 게임 룸들 중 10레벨 이상의 참여하는 게임 룸 정보만을 제공하는 것이 가능하다.
게임 룸 참여 매칭부(608)는 사용자들이 보다 빠르게 게임 룸에 참여할 수 있는 기능을 제공한다. 게임 룸 참여 매칭부(608)는 사용자가 빠른 룸 참여를 요청할 경우 사용자의 특성(예를 들어, 레벨, 나이 등)에 맞는 게임 룸을 자동적으로 매칭시키는 기능을 한다.
게임 룸 참여 매칭부(608)는 상기한 게임 룸의 속성 정보를 이용하여 사용자의 특성에 맞는 게임 룸을 선택하며, 선택된 게임 룸의 주소 정보를 빠른 룸 참여를 요청한 사용자에 전송함으로써 사용자가 해당 게임 룸 스페이스에 바로 접속할 수 있도록 한다.
도 7은 본 발명의 바람직한 일 실시예에 따른 대기자 매니저 서버의 모듈 구성을 도시한 블록도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 대기자 매니저 서버는 채팅 룸 생성 제어부(700), 채팅룸/대기자 정보 수신부(702), 채팅룸/대기자 정보 관리부(704) 및 대기자 할당 제어부(706)를 포함할 수 있다.
채팅 룸 생성 제어부(700)는 채팅룸 생성 요청 정보를 수신할 경우 어떠한 대기자 서버에 채팅 룸을 생성할 것인가에 대한 제어 정보를 제공한다. 전술한 게임룸 서버와 마찬가지로, 대기자 서버는 복수개가 존재할 수 있으며, 채팅 룸 생성 제어부는 복수의 대기자 서버 중 채팅룸을 생성할 대기자 서버 정보를 제공한다.
게임 룸 생성 제어부의 경우와 마찬가지로, 채팅 룸 생성 제어부(700)는 복수의 대기자 서버에 고르게 채팅 룸이 분배될 수 있도록 제어 정보를 제공하는 것이 바람직하다.
채팅 룸/대기자 정보 수신부(702)는 게임 룸 참여 또는 채팅 참여를 위해 대기자 서버에 접속한 사용자들의 상태 변화 정보를 대기자 서버로부터 수신하고, 대기자 서버에 개설된 채팅 룸의 상태 변화 정보를 대기자 서버로부터 수신한다.
전술한 바와 같이, 사용자들은 대기자 서버에 접속하여 게임 룸 생성 및 참여를 요청하거나 채팅 룸 생성 및 참여를 요청할 수 있으며 사용자들이 게임 룸 참여 인해 대기자 서버와 접속을 해제하는 등의 상태 변화가 있을 경우, 채팅 룸/대기자 정보 수신부(702)는 해당 변화 정보를 대기자 서버로부터 수신한다.
채팅 룸/대기자 정보 관리부(704)는 채팅 룸/대기자 정보 수신부(702)가 수신한 정보를 반영하는 데이터베이스로서의 기능을 한다.
대기자 할당 제어부(706)는 특정 사용자가 대기자 서버로의 접속을 요청할 경우 복수의 대기자 서버 중 해당 사용자가 접속할 대기자 서버에 대한 제어 정보 를 제공하는 기능을 한다. 채팅 룸 생성 제어부(700)의 경우와 마찬가지로, 복수의 대기자 서버의 고르게 사용자가 접속할 수 있도록 제어 정보를 제공하는 것이 바람직하다.
도 8은 본 발명의 바람직한 일 실시예에 따른 게임 서버 시스템에서 스페이스가 생성되는 절차에 대한 순서도이다.
본 발명에 의한 게임 서버 시스템에서는 다양한 종류의 스페이스가 생성될 수 있을 것이나, 설명의 편의를 위해 이하에서는 게임 룸 스페이스가 생성되는 절차를 예로 하여 설명하기로 한다.
도 8을 참조하면, 프론트 서버군에 접속한 사용자는 게임 룸 생성을 요청하며, 프론트 서버군의 서버는 해당 요청 정보를 수신한다(단계 800).
게임 룸 생성 요청 정보를 수신한 프론트 서버군의 서버는 게임 룸 생성 제어 정보를 요청하는 패킷을 생성하여 허브 서버에 전달한다.
생성된 패킷에는 게임 룸 매니저 서버의 주소 정보가 포함되어 있으며, 허브 서버는 게임 룸 매니저 서버의 주소 정보를 통해 게임 룸 매니저 서버로 전송될 패킷임을 판단하고, 해당 패킷을 게임 룸 매니저 서버에 전송한다(단계 802).
게임 룸 매니저 서버는 관리하고 있는 게임 룸 서버 및 게임 룸 상태 정보를 이용하여 게임 룸을 생성할 게임 룸 서버를 선택한다(단계 804). 전술한 바와 같이, 게임 룸 매니저 서버는 다수의 게임 룸 서버에 게임 룸이 고르게 생성될 수 있도록 게임 룸 서버를 선택하는 것이 바람직하다.
게임 룸 서버 선택 정보는 우선 허브 서버로 전송되며(단계 806), 허브 서버 는 게임 룸 서버 선택 정보를 게임 룸 생성을 요청한 사용자에게 전송한다(단계 808). 게임 룸 서버 선택 정보에는 사용자가 게임 룸을 생성할 게임 룸 서버의 주소 정보(예를 들어, IP 주소 및 포트 번호)가 포함되어 있다.
프론트 서버군의 특정 서버에 접속해있던 사용자는 상기 게임 룸 서버 선택 정보에 포함된 게임 룸 서버의 주소 정보를 이용하여 해당 게임 룸 서버로 접속한다(단계 810).
해당 게임 룸 서버로 접속한 사용자의 클라이언트 프로그램은 허브 서버에 생성할 게임 룸의 주소 정보를 요청하고(단계 812), 허브 서버는 생성될 게임 룸의 고유 주소 정보를 사용자에게 전송한다(단계 814). 또한, 허브 서버는 생성한 주소 정보를 저장하여 계속적으로 관리한다(단계 816).
허브 서버가 전송한 주소 정보에 따라 게임 룸 서버에 게임 룸이 생성되며(단계 818), 게임 룸 서버는 생성된 게임 룸 정보(게임 룸 제목, 생성자, 게임 룸 속성 정보, 게임 룸 주소 정보 등을 포함함)를 허브 서버로 전송하며(단계 820), 허브 서버는 게임 룸 정보를 게임 룸 매니저 서버로 전송한다(단계 824). 게임 룸 매니저 서버는 게임 룸 서버로부터 전송된 게임 룸 정보를 저장한다(단계 826).
도 9는 본 발명의 바람직한 일 실시예에 따른 생성된 스페이스에 상태 변화가 있을 경우 상태 변화 정보를 백-엔드 서버군에 제공하는 과정에 대한 순서도이다.
프론트 서버군의 게임 룸 또는 채팅 룸과 같은 스페이스는 새로운 사용자가 참여하거나 기존의 참여자가 나가는 등 다양한 상태 변화가 있을 수 있으며, 이러 한 정보는 백-엔드 서버에 전송되어 관리된다.
도 9를 참조하면, 프론트 서버군의 서버들(예를 들어, 게임 룸 서버)은 자신의 서버에 생성된 스페이스들에 상태 변화가 있는지 여부를 모니터링한다(단계 900). 스페이스가 없어지거나 스페이스의 참여하는 사용자가 변경되는 등의 상태 변화가 있을 경우, 프론트 서버군의 서버는 상태 정보 패킷을 생성한다(단계 902). 상기 상태 정보 패킷에는 패킷을 전송하는 서버 및 상태 변화가 발생한 스페이스의 주소 정보와 상세한 상태 변화 정보 및 패킷이 수신될 목적지 주소 정보가 포함될 수 있다. 예를 들어, 게임 룸 스페이스의 상태가 변경된 경우, 상태 정보 패킷의 목적지 주소는 게임 룸 매니저 서버의 주소가 될 것이다. 본 발명의 일 실시예에 의하면, 허브 서버에 의해 모든 서버들의 스페이스 주소가 할당되기 때문에 목적지 주소는 게임 룸 매니저 서버의 미리 설정된 스페이스 주소가 될 것이며, 일반적인 네트워크 통신에서의 IP 주소보다 세부적인 주소 정보가 목적지 주소로 포함될 수 있는 바, 서버간 통신이 보다 효율적으로 이루어질 수 있다.
프론트 서버군의 특정 서버에서 생성된 상태 정보 패킷은 허브 서버로 전송되며, 허브 서버는 패킷의 목적지 주소를 이용하여 패킷 전송을 수행할 소켓을 판단한다(단계 906).
허브 서버는 상태 정보 패킷을 판단된 소켓을 통해 전송하며, 예를 들어, 게임 룸 매니저 서버로 전송될 패킷일 경우 게임 룸 매니저 서버와의 통신 소켓을 통해 상태 정보 패킷을 전송한다(단계 908).
백-엔드 서버군의 서버는 수신된 상태 정보 패킷을 분석하고 상태 변화 정보 를 데이터베이스에 반영한다(단계 910).
이상에서 설명한 바와 같이, 본 발명에 의한 게임 서버 시스템에 의하면, 사용자들이 접속한 채널에 구속받지 않고 게임 시스템에 생성된 게임 룸들에 자유롭게 참여할 수 있으며, 물리적으로 다른 서버에 접속한 사용자들간의 메시지 송수신이 가능한 장점이 있다.
또한, 본 발명에 의하면, 게임 서버들을 프론트 서버와 백-엔드 서버로 분리하고 허브 서버를 이용하여 게임 서버들간의 패킷을 중계하고 허브 서버에 의해 할당된 주소를 이용하여 서버들간의 통신이 이루어지므로 서버들간의 효율적인 통신이 가능하고 게임 시스템에 생성된 스페이스 및 게임 시스템에 접속한 사용자를 효율적으로 관리할 수 있는 장점이 있다.

Claims (17)

  1. 사용자들이 접속하며 사용자들의 접속 및 상태 변화 정보를 감지하고 사용자의 요청에 응답하여 스페이스를 생성하는 프론트 서버군-상기 스페이스는 사용자들이 접속하는 논리적 공간이며 게임 룸 스페이스 및 채팅 룸 스페이스를 포함함-;
    상기 프론트 서버군에서 스페이스를 생성할 경우, 생성되는 각각의 스페이스에 고유의 주소 정보를 할당하고 할당한 주소 정보를 관리하는 허브 서버;
    상기 프론트 서버군으로부터 사용자들의 접속 및 상태 변화 정보와 스페이스의 생성 및 상태 변화 정보를 상기 허브 서버를 경유하여 수신하여 관리하며, 스페이스 생성과 관련한 제어 정보를 제공하는 백-엔드 서버군-상기 스페이스의 생성 및 상태 변화 정보는 적어도 게임 룸 스페이스의 생성 및 상태 변화 정보를 포함함-을 포함하되,
    상기 허브 서버는 프론트 서버군 및 백-엔드 서버군에 포함되는 모든 서버들과의 통신을 위한 소켓을 구비하고 있으며, 상기 프론트 서버군 및 백-엔드 서버군 사이의 통신은 상기 허브 서버를 경유하여 이루어지고 상기 프론트 서버군 및 백-엔드 서버군 사이에서 통신되는 패킷에는 상기 허브 서버가 할당한 스페이스 고유의 주소 정보가 포함되는 것을 특징으로 하는 게임 서버 시스템.
  2. 제1항에 있어서,
    사용자들이 생성된 스페이스에 대한 참여 요청 정보를 전송할 경우, 상기 백엔드 서버군은 해당 스페이스의 주소 정보를 제공함으로써 해당 스페이스로의 접속을 가능하게 하는 것을 특징으로 하는 게임 서버 시스템.
  3. 제1항에 있어서,
    상기 프론트 서버군은 사용자들의 로그인 요청 정보를 수신하고 상기 백-엔드 서버군과의 통신을 통해 사용자 로그인 요청을 처리하는 적어도 하나의 로비 서버;
    사용자들이 다른 서버들에 생성된 스페이스들에 대한 정보를 조회하고 참여 요청을 할 수 있는 웹페이지를 제공하는 적어도 하나의 대기자 서버;
    상기 프론트 서버군과의 통신을 통해 게임 룸을 생성하고, 게임 룸에 참여한 사용자들에게 게임 서비스를 제공하는 적어도 하나의 게임 룸 서버를 포함하는 것을 특징으로 하는 게임 서버 시스템.
  4. 제3항에 있어서,
    상기 백-엔드 서버군은,
    상기 프론트 서버군으로부터 사용자의 접속 정보 및 상태 변화 정보를 수신하여 관리하는 사용자 매니저 서버;
    상기 프론트 서버군으로부터 게임 룸 스페이스 생성 정보 및 게임 룸 스페이스의 상태 변화 정보를 수신하여 관리하는 게임 룸 매니저 서버; 및
    상기 대기자 서버로부터 대기자 서버에 참여한 사용자 정보 및 대기자 서버에 개설된 채팅 룸 스페이스 정보를 수신하여 관리하는 대기자 매니저 서버를 포함하는 것을 특징으로 하는 게임 서버 시스템.
  5. 제4항에 있어서,
    상기 게임 룸 매니저 서버는 게임 룸 생성 요청 정보를 수신할 경우 게임 룸을 생성할 게임 룸 서버 정보 지정 정보를 제공하며, 상기 게임 룸 서버가 지정한 게임 룸 서버에 게임 룸이 생성되는 것을 특징으로 하는 게임 서버 시스템.
  6. 제5항에 있어서,
    상기 게임 룸 서버는 게임 룸 생성 시 상기 허브 서버로부터 게임 룸에 대한 고유 주소 정보를 제공받는 것을 특징으로 하는 게임 서버 시스템.
  7. 제4항에 있어서,
    상기 사용자 매니저 서버는 접속한 사용자들이 속한 스페이스 정보를 관리하며, 특정 사용자로의 메시지 요청 정보를 수신할 경우 해당 사용자의 스페이스 주소 정보를 메시지에 포함시키며, 상기 허브 서버는 상기 스페이스 주소 정보를 이용하여 메시지를 해당 사용자에게 전송하는 것을 특징으로 하는 게임 서버 시스템.
  8. 제1항에 있어서,
    상기 허브 서버는,
    프론트 서버군의 요청에 응답하여 프론트 서버군에 생성될 스페이스의 고유 주소를 생성하여 할당하는 스페이스 주소 생성부;
    상기 스페이스 주소 생성부에 의해 생성된 각 스페이스의 주소 정보를 관리하는 스페이스 주소 관리부;
    상기 프론트 서버군 및 백-엔드 서버군에 속하는 각각의 서버들과의 통신을 위한 복수의 통신 소켓; 및
    상기 프론트 서버군 및 백-엔드 서버군에 속하는 서버들로부터 메시지 패킷을 수신할 경우 메시지 패킷의 목적지 주소 정보를 이용하여 패킷을 전송할 소켓을 결정하는 메시지 전달부를 포함하는 것을 특징으로 하는 게임 서버 시스템.
  9. 제4항에 있어서,
    상기 사용자 매니저 서버는,
    프론트 서버군으로부터 사용자들의 접속 정보 및 사용자들의 상태 변화 정보를 수신하는 사용자 정보 수신부;
    상기 사용자 정보 수신부에서 수신한 정보를 관리하는 사용자 정보 관리부;
    각 사용자들의 친구 리스트를 관리하고, 미리 설정된 친구 관련 이벤트가 발생할 경우 이벤트 발생 정보를 관련된 사용자에게 전송하는 친구 정보 관리부;
    특정 사용자의 정보를 요청받을 경우 상기 사용자 정보 관리부의 정보를 이용하여 해당 사용자의 정보를 제공하는 사용자 정보 전송부를 포함하는 것을 특징으로 하는 게임 서버 시스템.
  10. 제4항에 있어서,
    상기 게임 룸 매니저 서버는 게임 룸 생성 시 게임룸 서버들의 부하를 모니터링하고 생성될 게임 룸 서버를 지정하는 게임 룸 생성 제어부;
    게임 룸 생성 정보 및 생성된 게임 룸들의 상태 변화 정보를 수신하는 게임 룸 정보 수신부;
    상기 게임 룸 정보 수신부에 의해 수신된 게임 룸 정보들을 관리하는 게임 룸 정보 관리부;
    게임 룸에 대한 정보 요청을 수신할 경우, 상기 게임 룸 정보 관리부에 저장된 게임 룸들에 대한 정보를 제공하는 게임 룸 정보 제공부; 및
    사용자의 특성 정보를 이용하여 사용자의 특성에 맞는 게임 룸을 선택하고 해당 게임룸에 참여하기 위한 게임 룸 스페이스 주소 정보를 제공하는 게임 룸 참여 매칭부를 포함하는 것을 특징으로 하는 게임 서버 시스템.
  11. 프론트 서버군과 백-엔드 서버군을 포함하는 게임 시스템에서 상기 프론트 서버군과 백-엔드 서버군의 속하는 서버들간의 통신을 중계하기하기 위한 허브 서버로서,
    상기 프론트 서버군의 요청에 응답하여 프론트 서버군에 생성될 스페이스의 고유 주소를 생성하여 할당하는 스페이스 주소 생성부-상기 스페이스는 사용자들이 접속하는 논리적인 공간이며 게임 룸 스페이스 및 채팅 룸 스페이스를 포함함-;
    상기 스페이스 주소 생성부에 의해 생성된 각 스페이스의 주소 정보를 관리하는 스페이스 주소 관리부;
    상기 프론트 서버군 및 백-엔드 서버군에 속하는 각각의 서버들과의 통신을 위한 복수의 통신 소켓; 및
    상기 프론트 서버군 및 백-엔드 서버군이 생성하는 메시지 패킷에는 상기 허브 서버가 할당한 스페이스 고유의 주소 정보가 포함되며, 상기 프론트 서버군 및 백-엔드 서버군에 속하는 서버들로부터 메시지 패킷을 수신할 경우 메시지 패킷에 포함된 스페이스 고유 주소 정보를 이용하여 패킷을 전송할 소켓을 결정하는 메시지 전달부를 포함하는 것을 특징으로 하는 게임 서버.
  12. 제11항에 있어서,
    상기 프론트 서버군은 상기 허브 서버로부터 수신한 스페이스 주소 정보에 따라 스페이스를 생성하며 생성된 스페이스의 주소 정보를 상기 허브 서버를 통해 상기 백-엔드 서버군에 전송하는 것을 특징으로 하는 게임 서버.
  13. 제11항에 있어서,
    상기 메시지 전달부가 중계하는 메시지가 사용자들간의 채팅을 위한 텍스트 메시지일 경우, 상기 텍스트 메시지에는 메시지 수신자가 속한 스페이스의 주소 정보가 포함되며, 상기 메시지 전달부는 상기 스페이스 주소 정보에 상응하는 소켓을 통해 메시지를 전달하는 것을 특징으로 하는 게임 서버.
  14. 프론트 서버군, 백-엔드 서버군 및 허브 서버를 포함하는 시스템에서 게임 시스템 운영을 위해 상기 허브 서버에서 실행되는 방법에 있어서,
    스페이스가 생성될 경우 생성될 스페이스의 고유의 주소 정보를 생성하여 상기 프론트 서버군 또는 백-엔드 서버군에 전송하는 단계(a)-상기 스페이스는 사용자들이 접속하는 논리적인 공간이며 게임 룸 스페이스 및 채팅 룸 스페이스를 포함함-;
    상기 생성된 스페이스의 고유 주소 정보를 저장하는 단계(b);
    프론트 서버군 또는 백-엔드 서버군으로부터 패킷 전달 요청정보를 수신할 경우, 패킷의 목적지 스페이스 주소 정보를 이용하여 패킷을 전달할 소켓을 결정하는 단계(c)-상기 프론트 서버군은 사용자들의 접속 및 상태 변화 정보와 스페이스의 생성 및 상태 변화 정보에 대한 패킷을 전송하며, 상기 백-엔드 서버군은 스페이스 생성과 관련한 제어 정보에 대하 패킷을 전송하고, 상기 패킷에는 목적지 스페이스 주소 정보가 포함됨-; 및
    상기 단계(c)에서 결정된 소켓을 이용하여 수신된 패킷을 전달하는 단계(d)를 포함하는 것을 특징으로 하는 게임 시스템 운영 방법.
  15. 삭제
  16. 제14항에 있어서,
    상기 프론트 서버군은 상기 스페이스 주소 정보에 따라 게임 룸 스페이스 또는 채팅 룸 스페이스를 생성하며, 스페이스 생성 정보를 상기 허브 서버를 통해 상기 백-엔드 서버군에 전송하는 것을 특징으로 하는 게임 시스템 운영 방법.
  17. 제14항에 있어서,
    상기 백-엔드 서버군은 사용자가 속한 스페이스의 주소 정보를 이용하여 사용자의 위치 정보를 관리하며, 특정 사용자에게로의 메시지 전달을 요청받을 경우, 메시지 전달 패킷에 해당 사용자의 스페이스 위치 정보를 헤더 정보로 포함시키는 것을 특징으로 하는 게임 시스템 운영 방법.
KR1020050078043A 2005-08-24 2005-08-24 게임 서버 시스템 및 게임 시스템 운영 방법 KR100709747B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050078043A KR100709747B1 (ko) 2005-08-24 2005-08-24 게임 서버 시스템 및 게임 시스템 운영 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050078043A KR100709747B1 (ko) 2005-08-24 2005-08-24 게임 서버 시스템 및 게임 시스템 운영 방법

Publications (2)

Publication Number Publication Date
KR20070023456A KR20070023456A (ko) 2007-02-28
KR100709747B1 true KR100709747B1 (ko) 2007-04-19

Family

ID=41624176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050078043A KR100709747B1 (ko) 2005-08-24 2005-08-24 게임 서버 시스템 및 게임 시스템 운영 방법

Country Status (1)

Country Link
KR (1) KR100709747B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068180B (zh) * 2007-06-15 2010-04-07 腾讯科技(深圳)有限公司 网络游戏的主控系统、管理系统及管理方法
KR100965157B1 (ko) * 2009-02-06 2010-06-23 주식회사 노리아 실시간 서버 관리 솔루션
US10449457B2 (en) * 2011-04-20 2019-10-22 Disney Enterprises, Inc. System and method for dynamic matchmaking population herding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100493821B1 (ko) * 2004-11-05 2005-06-08 엔에이치엔(주) 멀티 플레이 게임 시스템 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100493821B1 (ko) * 2004-11-05 2005-06-08 엔에이치엔(주) 멀티 플레이 게임 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20070023456A (ko) 2007-02-28

Similar Documents

Publication Publication Date Title
KR101194502B1 (ko) 분리 가능 유알엘〔url〕 인터넷브라우저 기반게임시스템
AU2001296186B2 (en) Communication infrastructure arrangement for multiuser
CN101068180B (zh) 网络游戏的主控系统、管理系统及管理方法
US8745138B2 (en) Method, apparatus and system for joining online game
US6041343A (en) Method and system for a hybrid peer-server communications structure
US20100317430A1 (en) Discovery and Distribution of Game Session Information
EP1194876B1 (en) Method and apparatus in a communication network
AU2001296186A1 (en) Communication infrastructure arrangement for multiuser
KR101633506B1 (ko) 소셜 그룹 커뮤니티 기능을 이용하여 서비스를 제공하는 시스템 및 방법
CN112769837B (zh) 基于WebSocket的通信传输方法、装置、设备、系统及存储介质
CN111787079B (zh) 基于通信群组的通信方法、装置、服务器、系统及介质
US20220258041A1 (en) Account connecting method and apparatus, storage medium, and electronic device
US9137047B2 (en) Instant messaging system, component and method for additional service
KR100709747B1 (ko) 게임 서버 시스템 및 게임 시스템 운영 방법
JP4781942B2 (ja) ゲームルーム及びゲームチャンネル管理システム
TWI827854B (zh) 聊天服務提供方法及裝置
JP2002132712A (ja) ユーザ管理システム
US20100146081A1 (en) Method and system for managing high-bandwidth data sharing
KR20120050367A (ko) 개인 네트워크를 이용한 서비스 제공 방법 및 장치
KR100710436B1 (ko) 게임 룸 관리 시스템
KR100644393B1 (ko) 온라인 게임에서 사용자 정보 관리 시스템
KR100644395B1 (ko) 계층적 주소 체계를 이용한 게임 서버 시스템 및 게임시스템 운영 방법
KR100710456B1 (ko) 온라인 게임 채널 관리 시스템 및 방법
EP1806904B1 (en) Method for managing electronic information, the related user terminal and the related information source
CN101410822A (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: 20100331

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120329

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190325

Year of fee payment: 13