문서번호
|
2015–F-003
|
보존기간
|
10년
|
보고일자
|
2015.03.20(금)
|
프로젝트 명 : Call Van
비트 고급반 29기 5조(Falcon)
|
조 장 김 상 환
조 원 권 태 정
박 종 현
이 상 희
장 정 환
목 차
1.시퀀스 다이어그램
1.1 가입 요청 시퀀스
1.2 탈퇴 요청 시퀀스
1.3 로그인 요청 시퀀스
1.4 로그아웃 요청 시퀀스
1.5 KeepAlive 시퀀스
1.6 KeepAlive 체크 시퀀스
1.7 계정정보전송 시퀀스
1.8 정보변경 시퀀스
1.9 유저와 드라이버간의 통신 시퀀스
1.시퀀스 다이어그램
1.1 가입 요청 시퀀스
Peer가 가입요청을 FendSVC에게 보내면 FendSVC는 RegSVC에 전달합니다. RegSVC는 DbmSVC에게 아이디 존재 여부를 묻고 DbmSVC는 DBMS에 보관한 계정 정보를 확인하여 존재 여부를 알려줍니다. RegSVC는
존재하지 않다는 응답을 받으면 DbmSVC에게 계정 정보를 추가 요청합니다. 그리고 RegSVC는
FendSVC를 통해 Peer에게 가입 요청 결과를 전달합니다.
그림 1. 가입요청 시퀀스
1.2 탈퇴 요청 시퀀스
Peer가 서비스 탈퇴를 FendSVC를 거쳐 RegSVC에게 요청하면 RegSVC는 DbmSVC에게 계정 삭제를 요청합니다.
그림 2. 탈퇴 요청 시퀀스
1.3 로그인 요청 시퀀스
Peer가 로그인 요청을 FendSVC를 거쳐 LogSVC에게
전달하면 LogSVC는 DbmSVC에게 계정이 존재하는지
확인합니다. 만약 계정이 존재하면 이미 로그인 상태인지 확인합니다. 로그인
상태가 아니면 아이디와 비밀번호의 일치 여부를 확인합니다. 그리고 일치하면 로그인 준비 상태로 전환하며
로그인 결과를 Peer측에게 알려줍니다. 참고로 Peer가 상태 서비스에게 첫 KeepAlive 메시지가 전달한 이후에 로그인 상태로 변합니다.
그림 3. 로그인 요청 시퀀스
1.4 로그아웃 요청 시퀀스
Peer의 LogOut 요청을 FendSVC를 통해 LogSVC에 전달하면 LogSVC는 DbmSVC에게
상태 변화 요청을 보냅니다. 이 때 전달하는 상태 값은 STS_REG로
로그아웃 상태를 전달합니다.
그림 4. 로그아웃 요청 시퀀스
1.5 KeepAlive 시퀀스
Peer는 로그인을 성공하면 주기적으로 KeepAlive로 보내어
STS_LOGGED 상태를 유지합니다. 로그인을 성공한 이후에 다른 계정 정보를 수신하기
위한 소켓과 위치 정보를 수신하기 위한 소켓, 위치정보에 대한 답신을 수신하기 위한 소켓을 네트워크
인터페이스와 결합한 이후에 이들 정보와 자신의 IP 정보를
KeepAlive에 실어 보냅니다. 이 후에 보내는
KeepAlive에는 포트들의 정보를 0으로 보냅니다.
StsSVC에서는 KeepAlive 메시지를 수신하였을 때 포트 정보로
처음 수신한 것인지 확인합니다. 처음 수신하였다면 DbmSVC에게 STS_LOGGED 상태로 변경할 것을 요청합니다. 그리고 StsSVC는 전달받은 계정의 정보를 자료구조에 보관합니다. 또한
이미 로그인한 Peer에게 새로 로그인한 계정의 정보를 전달하고 새로 로그인한 계정의 Peer에게 이미 로그인한 계정의 정보를 전송합니다.
그림 5. KeepAlive 시퀀스
1.6 KeepAlive 체크 시퀀스
StsSVC에서는 주기적으로 마지막 KeepAlive 메시지를 수신한 시간을 확인합니다. 만약 약속한 시간을 초과하면 DbmSVC에게 LogOutReq를 보내어 강제로 로그아웃 처리합니다. 그리고 다른
로그인 상태의 Peer들에게 강제로 로그아웃 처리한 계정의 정보를 전송합니다.
그림 6. KeepAlive 체크 시퀀스
1.7 계정 정보 전송 시퀀스
계정 정보 전송은 Peer가 로그인을 성공하여 첫 KeepAlive 메시지를 StsSVC에게 보냈을 때와 StsSVC의 주기적으로 마지막 KeepAlive 메시지를 수신한 시간을 확인하여 약속한 시간을 초과하였을 때 수행하는 시퀀스 입니다.
만약 Peer가 로그인을 성공하여 첫 KeepAlive 메시지를 StsSVC에게 보내면 StsSVC는 이미 로그인한 계정의 정보를
새로운 Peer에게 전송합니다. 그리고 이미 로그인한 계정의 Peer에게 첫 KeepAlive 메시지를 보낸 Peer의 계정 정보를 전송합니다.
그리고 StsSVC의 주기적으로 마지막 KeepAlive메시지를 수신한 시간이
약속한 시간을 초과하면 이미 로그인한 Peer들에게 시간을 초과한
Peer의 계정 정보를 전송합니다.
Peer에서는 전달받은 인자의 ip 값이 0이면 상대 Peer가 로그아웃 상태로 인식하고 그렇지 않다면 새로운
로그인 계정으로 인식합니다.
그림 7. 계정 정보 전송 시퀀스
1.8 정보변경 시퀀스
Peer가 정보변경을 FendSVC를 거처서 ModSVC에게
요청하면 ModSVC는 DbmSVC에게 정보 변경을 요청
합니다.
그림 8. 정보 변경 시퀀스
1.9 User와 Driver간의 통신 시퀀스
User가 Driver에게 지역정보를 보내면 Driver는
그 메시지에 대한 답변을 User에게 보냅니다.
그림 9. User와 Driver간의 통신 시퀀스
콜벤메신저 시퀀스 다이어그램(1차).docx