FarmServer 구조 설계

jjuiddong
Jjuiddong (토론 | 기여) 사용자의 2013년 4월 9일 (화) 09:39 판

(비교) ← 이전 판 | 최신판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기

FarmServer 구조 설계

  • SubServer Login 시 처리 할 것
    • 해당 svrType 값을 그룹을 생성한다. 이미 있다면 해당 그룹에 참여시킨다.
      • farm server config 파일에 등록되지 않은 svrType은 제외 시킨다.
    • sub server의 p2p link, input link, output link 정보를 받을 수 있는 상태를 만든다.
  • SendSubServerP2P,Input,Output link 패킷을 받아서 해당 서버정보에 저장한다.
    • 각각의 SvrType 의 접속 상태값을 대기중 상태로 초기화 한다.
  • ReqServerInfoList 패킷이 오면, serverSvrType 으로 그룹을 찾아서, 각 서브서버가 clientSvrType을 client로 받는 (output_link, p2pS 중에서) 서버정보를 찾아, ip, port 정보를 전달한다.
    • 해당 서버가 OnAir 상태가 아니라면 실패!!
  • toBindOuterPort, toBindInnerPort 패킷이 오면, farm config 정보를 통해 base port 값을 얻고, 이미 생성된 서버의 port값을 비교해 최종 bind port값을 결정한다.
  • BindComplete, ConnectComplete 패킷이 오면, 해당 서브서버의 p2p link, input link, output link 정보의 상태값을 업데이트 한다.
  • FarmServer Group 정보
    • 각각의 Remote Sub Server마다 가져야 할 정보
      • input link 정보
        • 상태 : 대기중, 접속
        • 접속 할 bindSubSvrType
        • client 상태에서 접속한 서버정보 ip, port
      • output link 정보
        • 상태 : 대기중, 접속
        • listen 한 clientSubSvrType
        • server 상태에서 bind한 ip, port 정보
      • p2p link 정보
        • 상태 : 대기중, 접속
        • p2pS 라면 bind 한 ip, port 정보
        • p2pC 라면 접속한 ip, port 정보

FarmServer 자료구조

  • CFarmServer
    • 팜서버 객체
    • SubServer를 CGroup으로 관리한다.
    • farm server config 파일을 읽어서 그룹을 관리한다.
    • toBindOuterPort, toBindInnerPort 를 config 파일을 통해 생성한다.
  • SubServer Group
    • CGroup에서 파생된다.
    • 그룹으로 맺어진 서브서버들을 관리한다.
    • 같은 svrType 으로 묶여진 서버들이다.
    • outer base port
    • inner base port
  • RemoteSubServer
    • RemoteClient에서 파생된다.
    • outer base port
    • input link 정보
      • LinkServer vector
    • output link 정보
      • LinkServer vector
    • p2p link 정보
      • LinkServer vector
  • LinkServer
    • 서브 서버가 bind 하거나 connect 중인 서버 정보를 관리
    • svrType
    • state : wait, connect
    • service type: client / server
    • ip
    • port
  • Group클래스 파생
    • factory
    • copy
    • marshaling
개인 도구
이름공간

변수
행위
둘러보기
도구모음