2010년 3월 3일 수요일

Push Notification이란?

원문참조

iPhone 이나 iPod 터치의 애플리케이션은 종종 클라이언트-서버 모델 기반에 중점을 두기도 한다.
애플리케이션의 클래이언트 부는 장치에 설치된다.; 애플리케이션의 서버 사이드는 다수의 클라이언트 애플리케이션들에 데이터를 제공하는 것을 주 기능으로 한다. (그래서 이걸 "Provider(공급자)" 라고 한다.)
하나의 클라이언트 애플리케이션은 때때로 그 애플리케이션의 프로바이더와 연결해서 원했던 데이터를 다운로드 한다. 이메일과   SN 어플리케이션들은 이런 클라이언트 - 서버 모델의 예이다.

하지만 프로바이더가 다운로드할 새로운 데이터를 가지고 있을 때 애플리케이션이 그의 프로바이더에 연결되지 않았거나 장치에서 실행조차 되지 않은 경우라면?  이 대기중인 데이터에 대해서 어떻게 알 수 있을까? 푸시 노티피케이션들은 이런 딜레마에 대한 해결책이 된다.  하나의 푸시 노티피케이션은 프로바이터가 디바이스에 넘겨주는 짧은 메시지이다.; 이 디바이스는, 변화에 대해, 다운로드 될 데이터가 있는 클라이언트 애플리케이션의 사용자를 알려준다.  만약 이 사용자가 이 기능을 사용할 수 있고 애플리케이션이 완전하게 등록되어 있으면, 노티피케이션은 디바이스와 애플리케이션에 전달된다.

"Apple Push Notification Service" 에서 설명하는 APNS(Apple Push Notification Service) 는, 리모트-노티피케이션 기능을 위한 일차적인 기술이다.

사용자 관점에서 본 푸시 노티피케이션

당신이 iPhone을 사용하고 있다고 가정해 보자: 전화를 하고, 웹서핑을 하고, 음악을 듣는다. 당신의 아이폰에는  체스 애플리케이션이 설치되어 있다.  그리고 원격에서 플레이 하고 있는 친구와 함께 게임을 시작한다. 당신은 첫번째로 말을 움직였고(이것은 서버 애플리케이션에 기록되었다.), 이메일을 읽기 위해서 클라이언트 애플리케이션을 종료했다. 그 동안에, 당신의 친구는 당신의 움직임을 계산한다. 체스 애플리케이션의 서버는 이 움직임에 대해서 인지하고 당신의 디바이스가 더이상 연결되어 있지 않다는 것을 알고 APNS에 푸시 노티피케이션을 보낸다.
당신의 디바이스 - 엄밀히 말하자면 당신의 디바이스에서 돌아가고 있는 iPhone OS - 는 APNS 로 부터 노티피케이션을 받는다.
당신의 체스 어플리케이션이 지금 동작하고 있지 않기 때문에 iPhone OS 는 그림 1-1 과 같은 Alert 창을 보여주게 된다.

   그림 1-1 Push Notification Alert

여기에서 View 버튼을 누르면, 체스 애플리케이션이 실행되며, 프로바이더에 연결해서 새로운 데이터를 다운로드 받은 후 체스 판 UI를 친구의 움직임을 반영하여 조정하게 된다.(Close 버튼을 누르면 단순히 Alert 창을 닫는다.)

Alert 메시지를 나타내는 대신에 - 또는 Alert 메시지와 함께 - iPhone OS 에서는 타겟 애플리케이션의 아이콘 우측 상단에 그림 1-2와 같이 배지(badge) 번호를 표시할 수 있다.

그림 1-2 배지 넘버를 표시한 애플리케이션 아이콘

배지 넘버는 종종 그 애플리케이션을 위해 서버에서 가지고 있는 대기중인 아이템의 수를 반영하지만, 다른 의미로도 쓰일 수 있습니다.
배지 넘버는 그 애플리케이션의 특정된 그 어떤 숫자라도 나타낼 수 있습니다.
예를 들자면, 다운로드할 데이터 아이템의 수라던지, 읽지 않은(하지만 다운로드는 된) 이메일의 갯수라던지 하는것입니다.

Alert메시지나 배지 넘버와 함께 iPhone OS는 노티피케이션이 들어올때 특정 소리를 이용해서 사용자에게 알려줄수 있습니다.

댓글 없음:

댓글 쓰기

내 블로그 목록

관심 사용자