모바일 왕국을 꿈꾸며!!! mobizen@mobizen.pe.kr

Posted
Filed under 개발관련
SKT의 네트워크 서버를 만들다보면 SKT UAProfile 서버와 통신을 하는 일이 자주 있게 된다.
다양한 정보를 한꺼번에 보여줘야 하는 WAP 서비스의 경우는 약간 다른 이야기겠지만 VM에서 통신을 하는 경우는 대부분 min값을 통한 mdn이나 사용자 폰 모델 정보등을 받아오는게 전부이다.

의외로 많은 서버 개발자들은 네트워크 서버 자체에서 UA Profile을 직접 접속해서 값을 가져온다.
사실 이러한 개발 방법은 그리 좋은 방법이 아니다.
게임 서버마다 SKT UAProfile 서버에 접속을 해서 얻어오는 것은 비생산적일뿐 아니라 UAProfile과 같은 외부 네트워크에 접속해서 값을 얻어올 때 Thread가 Wait 한다는 것은 자칫 서비스가 전체 멈출 수 있는 위험을 가지고 있다.
UAProfile 서버에서 아주 중요한 값을 가져오는 경우라면 어쩔 수 없겠지만 당장 필요한게 mdn 값이라면 한번 정도는 틀리더라도 min값으로 mdn값을 임시로 만드는게 더 좋은 방법이지 않을까 한다.

나의 경우는 UAProfile에서 값을 얻어오는 서버가 따로 존재한다.
네트워크 서버에서 처음 접속하는 min값에 경우에는 해당 서버로 요청을 하고 mdn값은 임시로 생성한후 Thread를 계속 진행해 나간다.
UAProfile 전용 서버는 요청하는 값에 따라 SKT의 UAProfile 서버에 접속해서 값을 얻어오고 그 값을 DB에 저장한다.

이때, 일반 네트워크 서버와 UAProifle 전용 서버는 통신이 필요하게 되는데, 통신하는 방법은 여러 방법이 있다. Unix와 Linux의 경우는 공유메모리나 파이프 등을 사용할 것이고, 윈도우즈 경우에는 윈도우즈 핸들을 얻어와 메시지 이벤트를 넘겨주는 방법이나 가장 간단한 소켓을 사용하는 방법이 있을 것이다.
나의 경우에는 파일을 사용한다.
이런 무식하고 오래된 방법을 사용하는 것에 대해 약간은 놀라는 사람이 있을 수 있으나 일반적인 IPC(Inter Process Communication) 방법에 비해 오버헤드도 없고 훨씬 안정적이다. 즉시 값을 얻어와야 하는 경우가 아니면 가장 오래됐지만 가장 좋은 방법이라고 강력히 추천한다.
그래서, UAProfile 전용 서버는 정해진 시간마다 정해진 폴더에 파일이 생성되었는지 확인을 하고 파일이 생성되면 그값에 따라 DB에 값을 저장한다.
SKUAProf_Service.zip

USProfile 전용 샘플 서버


셈플 소스를 올리니 관심이 있는 분은 받아보기를 바란다.
샘플 소스라고는 하나 실제 서비스 하는데 거의 문제가 없으리라 본다.
윈도우즈 서비스 형태로 만들었으므로 서비스에 등록시켜서 사용하기를 바란다.

이런류의 포스트는 개발자가 아니면 관심이 없을거고, 개발자들은 소스 있으면 설명보다는 소스만 보는 아주 독특한(!!) 성향이 있으므로 더이상의 자세한 설명보다는 궁금한 점이 있으면 리플로 답변해주는 방법으로 하겠다.
2006/09/01 12:42 2006/09/01 12:42
min

안녕하세요.
SKT UAProfile 서버 개발과 관련된 간단한
모듈구성자료래도 있는지 궁금합니다.
아니면 프로그램 구성에 대한 간단한 설명을 듣고싶습니다^^

mobizen

딴지는 아니고 정말로 죄송합니다.
min님께서 요구하시는 내용이 뭔지 잘 이해가 가지 않습니다.

1.SKT에서 배포한 UAProfile 서버에 대한 일반적인 개발 Reference 자료를 말씀하시는건가요? CP시라면 쉽게 구하실테니 저한테 요구하지 않으셨을 것 같은데..
그렇다면 받으실 연락처를 적어주시든 하셔야 할 것 같네요.
SKT의 자료를 제가 공개적으로 재배포를 할 수는 없으니깐요.

2.제가 개발하여 올려드린 소스에 대한 설명을 말씀하시는건가요?
그렇다면 어느 부분이 이해가 안가시는지요? 제가 처음부터 전부 다 설명을 해 드릴 수는 없으니깐요~

^^

climcity

윈도우즈 서비스생성에 필요한 정보를 찾던중이었는데요... 감사합니다.^^

mobizen

도움이 되셨기를 바랍니다. ^^