You are on page 1of 7

로직 구조도

Client Login

Games DBAgents SQL

Relays

Main Log Billings

PCRooms
BillingRelays

Backend layer Outside servers


Frontend layer

Login : 인증 기능은 Web 에서 처리함 , 게임서버에 접속하여 현재 접속자수를 관리하고


External TCP 로그인하는 유저를 가장 원할한 게임서버로 접속하게 함 , 로그인 대기열이 존재
Games : Lobby, Room 등을 관리하는 Logic server
Internal TCP
Relays : 전투 데이터를 동기화 해주는 패킷 중계 서버 (CS 처리 )
TCP & UDP DBAgents : SQL 서버와 타 서버들의 통신을 중계해주는 서버
Main : Game 서버들을 통합 관리하는 서버 ( 길드 , 아이템 거래소 등 통합 시스템 관리 )
Log : 클라이언트와 서버의 로그를 취합하여 파일 혹은 DB 에 저장하는 로그 취합서버
BillingRelays : 결제 및 PC 방 등의 외부 결제 서버들과 통신을 중계하는 서버
물리 구조도

Login server

Main server Billing relay #1

User #1
Game server #1 Log server Billing relay #2

User #2 Switch
Game server #2

DBAgent #1 DBAgent #2
User #3

Game server #3

DBAgent #3 DBAgent #4

Relay server #1

SQL #1 SQL#2

Relay server #2
서버 구동 #1 (sequence)

DBAgents Log

BillingRelays

Main

Games Relays

Login

- DBAgents : 게임 dbagent, 로그 dbagent 들로 서버 중에 가장 먼저 실행되어야 함 (N 개 실행 )


- BillingRelays : 외부 서버들과 통신하는 서버로 구동시 dbagent 와 통신함 (N 개 실행 )
- Main : DBAgent 와 BillingRelays 서버가 구동된 후 구동가능 (1 개 실행 )
- Games : 위의 세 서버군이 모두 실행된 후 구동 가능 (N 개 실행 )
- Login : 구동 시 Games 에 접속하지만 구동 순서는 상관없음 (1 개 실행 )
- Relay : 구동 시 Games 에 접속하지만 구동 순서는 상관없음 (N 개 실행 )
- Log : 총 3 가지 프로그램이 여러 개 실행됨 (N 개 실행 )

* Login, Relay, Log 의 경우 순서에 상관없이 켜져도 됨


서버 구동 #2

- 각 서버들 중 DBAgent, BillingRelays, Main, Games 그룹들은 순서를 보장하여 구동해야 하고


나머지 서버들은 구동 순서에 무관하게 실행이 가능하다 .

- DBAgent 는 다른 서버들과 SQL 서버들과의 통신 중계 역할을 하므로 가장 먼저 실행되어야 하고


서비스 운용 중 DBAgent 가 죽으면 다른 모든 서버들은 자동 종료한다 ( 데이터 동기화를 위해 )

- 게임에 관련된 서버들은 원격 관리 프로그램 (ls_launcher) 를 통해 원격으로 처리 ( 실행 , 중지 ,


갱신 등 ) 된다 .
ls_launcher 에 대한 설명은 아래 페이지 참고

- Games, Relays, BillingRelays, DBAgents 들은 확장성이 있어 N 개씩 구동 가능하다 .


서버 구동 #3 (files)

로스트사가 서버

DBAgents BillingRelays
ls_dbagent.exe ls_billingsvr.exe

Main
서버관리 PC Games ls_mainsvr.exe
ls_gamesvr.exe

ls_launcher.exe Login
ls_loginsvr.exe Log
ls_logger.exe
lslogserver.exe
Relay lslogclient.exe
ls_relaysvr.exe

ls_controller.exe

Ls_controller : 서버 컴퓨터에 설치되어 ls_launcher 의 명령을 실행하는 서비스


ls_launcher : 서버들을 원격 조정하기 위한 프로그램 . 서버 실행 , 중지 , 갱신 등의
작업들을 처리함

lslogserver.exe, lslogclient.exe 를 제외한 모든 서버들은 windows service 로 설치되어


ls_launcher 와 ls_controller 에 의해 원격 관리 됨
게임방 생성 #1
게임방 생성 #2

1. (Lobby) 전투 방 생성 요청
2. 전투 방을 생성할 서버를 선택 ( 가장 여유있는 서버를 선택 )
3. 자신의 서버가 가장 여유있을 경우 자신의 서버에서 방을 생성한다
4. 전투 방이 생성됨을 클라이언트에게 알림
5. 생성된 전투 방에 입장함
6. 다른 서버에 방을 생성할 경우 해당 서버에 방 생성을 요청함
7. 전투 방을 생성함
8. 클라이언트에게 생성된 방 정보를 알림
9. 생성된 전투 방에 입장
10. (Room) 게임 시작을 요청함
11. 중계 서버에 전투 정보를 중계할 중계 방 생성을 요청함
(UDP 를 CS 로 전달할 수 있는 network table 생성 , 클라이언트는 중계
방으로 UDP 데이터를 전송한다 )
12. 생성된 중계 방 정보를 게임서버에 알림
13. 게임서버는 게임이 시작됨과 중계 방 정보를 클라이언트에 전달함

* 게임이 시작되면 서버는 클라이언트들이 보유하고 있는 용병 정보들을 다른


클라이언트들에게 보내준다 .

You might also like