정리 2012. 10. 22. 19:31

 

1. 배경

서버-클라이언트 관계에서 지금까지는 대부분 클라이언트에서 서버에 요청하는 방식(Pull) 이 많이 사용되었다.

하지만 최근 스마트폰 같이 테블렛 기기가 많이 공급되면서 클라이언트가 서버에게 요청하고 다시 자료를 받는 식의 방법을 사용하였으나, 이방법은 패킷을 많이 소모하게 된다.

그래서 요즘의 추세는 서버에서 새로운 소식이 있을 때 클라이언트로 알려주는 Push방식이 많이 사용되고 있다.

 

2. 개요
안드로이드 폰이나 아이폰에서 사용자 기반 개별 애플리케이션에게 Push알림을 하기 위해서는 구글에서 제공하는 C2DM(안드로이드폰) 서버 또는 애플에서 제공하는 APN(아이폰) 서버에게 푸시 요청을 보내는 Third-Party 서버가 필요하다. Push 알림 서비스를 요청받기 위해서는 Push서버에 수신자의 고유 ID정보가 관리가 되며, 고유 ID는 사용자의 ID 또는 휴대폰 번호, 이메일 주소, Mac Address 등의 임의의 정보를 통해서 생성 된다. 푸시서버는 스마트폰이나 웹에서 접근 할 수 있는 Open API를 제공하며 REST/JSON 또는 REST/XML 기반 통신 Protocol을 제공 할 수 있다.

 

3. 서비스용도
Email: 메일 수신 시 알림 서비스
Calendar : 일정 고유 알림
Task: 작업 공지 알림
User Event: SNS알림, 공지사항 알림 등등


 

4. Push 서비시체계가 가져야 할 요건

- 자료전달기능 으로서 전 대상자에 전달할수있는 기능(Broadcast Data Delivery), 

- 선택적 대상에 자료을 전달 할 수 있는 기능(Multicast Data Delivery),

- 특정대상에 자료 전달 기능(Unicast Data Devlivery)

- 성능적인 문제

    얼마나 많은 사용자들에게 자료을 전달 할 수 있는가

    최소의 시스템 자원으로 최대의 접속자에게 자료을 전달

    얼마나 많은 메시지 자료를 전달 할 수 있는가 

 

3사에서 지원하는 모바일 push server

Apple Push Notification Service (APNS) for iOS devices

Cloud to Device Messaging Framework (C2DM) for Android devices

Microsoft Push Notification Service (MPNS) for Windows Phone Devices

 

 

아래 링크는 전부 테스트 해본 것이 아니라 자료 수집 및 현재 어떻게 만들어졌는지 참고 사항 일 뿐이다.


5. 적용사례

 - http://blog.naver.com/tankljh?Redirect=Log&logNo=90001585339

 - http://blog.naver.com/ospace99?Redirect=Log&logNo=70094717432 

 

6. solution 

 - PUMP  : http://www.btbsolution.co.kr/solutions/pdf/BTBSolution_PPS.pdf 

 - Kony : http://www.kony.com/push-notification-services

 

7. open source

 - Common Push Notification Service Sample (android & Ios & window통합 open sorce)

 : http://windowsphone.interoperabilitybridges.com/articles/common-push-notification-service-sample

 

 - It was made using Javascript (actually coffeescript), and requires Node.js.

Both of them supports Andoird, Windows Phone and iOS. I haven't tested them, so I can't give you more insights.

 : https://github.com/rs/pushd

 

- z-push(open sorce) : http://z-push.sourceforge.net/soswp/

 

 - open source(java, object-c, perl, php, python, ruby) : https://support.urbanairship.com/customer/portal/articles/60713-push-server-libraries

 

8. 이론 및 tecnology

http://mygony.com/archives/2535   한글포스팅(comet을 쉽게 설명)

http://en.wikipedia.org/wiki/Push_technology

http://www.slideshare.net/noloh/comet-by-pushing-server-data-we-push-the-web-forward

 

 

 여담

구글 & 안드로이드 push service : http://mobizen.pe.kr/1074

'정리' 카테고리의 다른 글

site  (0) 2012.10.30
뮤텍스와 세마포어  (0) 2012.03.12
좋은 프로그래밍 습관(경쟁력을 갖춘 전문가의 작은 차이)  (0) 2012.01.13
posted by cozyboy
: