<4D F736F F F696E74202D A434F20B9DFC7A5C0DAB7E1202D20C7AABDC3BCADB9F62DB0D4BDC3BABB2E >

Similar documents
1부

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

( )부록

서현수

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

Microsoft PowerPoint - Mobile SW Platform And Service Talk pptx

THE TITLE

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint App Fundamentals[Part2].pptx

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

안드로이드 서비스

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

[Brochure] KOR_TunA

TTA Journal No.157_서체변경.indd

슬라이드 1

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx


학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

User Guide

Microsoft PowerPoint - 03-TCP Programming.ppt

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

제11장 프로세스와 쓰레드

모바일 안드로이드 아키텍처

PCServerMgmt7

1) 리눅스커널 메모리관리, 프로세스관리, 파일시스템관리, 네트워크스택등하드웨어지원 2) Native 라이브러리 (C, C++) 안드로이드프레임워크에서필요한 C 와 C++ 라이브러리 3) 안드로이드런타임 코어라이브러리지원, Dalvik Virtual Machine 으로

슬라이드 1

¨ìÃÊÁ¡2

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint Template

Google Maps Android API v2

PowerPoint Presentation

게시판 스팸 실시간 차단 시스템

PowerPoint 프레젠테이션

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Network seminar.key

Microsoft Word - 안드로이드_개발_매뉴얼1.docx

PowerPoint 프레젠테이션

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

슬라이드 1

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

특허청구의 범위 청구항 1 회선 아이디 접속 시스템에 있어서, 온라인을 통해 실제 사용자 고유정보의 발급이 가능한 아이디 발급 사이트를 제공하기 위한 아이디 발급 수단; 오프라인을 통한 사용자의 회선 아이디 청약에 따라 가상의 사용자 고유정보 및 가인증 정보를 생성하고

Assign an IP Address and Access the Video Stream - Installation Guide

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

4S 1차년도 평가 발표자료

Spring Boot/JDBC JdbcTemplate/CRUD 예제

보안공학연구회

50_1953.pdf

PowerPoint Presentation


Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

Microsoft PowerPoint - 안드로이드 개발 환경 구축(170411)

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Mstage.PDF

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

PowerPoint 프레젠테이션

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

Microsoft PowerPoint - Chapter_03-1_DevEnv.pptx

Interstage5 SOAP서비스 설정 가이드

rv 브로슈어 국문

PowerPoint 프레젠테이션

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

Windows 8에서 BioStar 1 설치하기

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

untitled

Gartner Day

ApeosPort-V 7080/6080, DocuCentre-V 7080/6080 User Guide (For AirPrint)

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

Voice Portal using Oracle 9i AS Wireless

1217 WebTrafMon II

PowerPoint Presentation

歯이시홍).PDF

cam_IG.book

자바 웹 프로그래밍

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

Dropbox Forensics

The Pocket Guide to TCP/IP Sockets: C Version

SMB_ICMP_UDP(huichang).PDF

F120S_(Rev1.0)_1130.indd

Portal_9iAS.ppt [읽기 전용]

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

chapter4

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

Chap7.PDF

매력적인 맥/iOS 개발 환경 그림 A-1 변경 사항 확인창 Validate Setting... 항목을 고르면 된다. 프로젝트 편집기를 선택했을 때 화면 아 래쪽에 있는 동일한 Validate Settings... 버튼을 클릭해도 된다. 이슈 내비게이터 목록에서 변경할

SNS 어플리케이션 전자통신컴퓨터공학부 조성경

Network Programming

03여준현과장_삼성SDS.PDF

Transcription:

2010 JCO Festival A 1 안드로이드기반의푸시서버기술 Android Based Push Server Technology 아첸자바커뮤니티 a java com

발표주제 안드로이드기반의푸시서버기술 Android Based Push Server Technology Jaom 2

Mobile Market Growth 모바일시장의성장 네트워크기술이모바일장비로확대 일상생활과기업의업무환경에서스마트폰의활용도가높아짐 모바일시장확장에따른전문화된개발기술과개발인력필요 스마트폰의많은보급으로 C2B, C2C, B2B, C2C, C2G 등의다양한비즈니스모델의변화 모바일환경의비즈니스모델에적용하기쉬운개방형안드로이드플랫폼 모바일장비활용시배터리의사용이슈를고려한푸시기술

Mobile Phone Trend om 모바일폰트랜드 4 출처 : www.google.com/trend g iphone BlackBerry Android

Mobile Phone SDK Trend om 모바일폰개발 SDK 트랜드 5 출처 : www.google.com/trend g Android SDK Objective C

Mobile Phone Push Notification Trend om 모바일폰 Push Notification 트랜드 6 출처 : www.google.com/trend g iphone Push Android Push

Java based Android Platform 자바기반의안드로이드플랫폼 기존자바개발자에게새로운모바일환경의개발기술 모바일환경에서필요한서버개발기술필요 7 Java Android

모바일디바이스의네트워크특성 Private Network - 주소가변경된다. - 내부 IP 주소이다. - 서버로서사용할수없다. 8 Access Point Base Station 연결불가 과징대상 Internet SMS Server Server Application s DBMSs - 폴링기술을사용해야한다. - 배터리효율이떨어진다. *need push server - 데이터를실시간으로가져오는부담이증가한다.

a C APNs (Apple Push Notification Service) 고찰하나의 Provider 가하나의클라이언트애플리케이션에게 Notification 푸시 Client Provider notification APNs notification notification Application iphone 9

10 APNs (Apple Push Notification Service) 고찰 다중 Provider 가다중클라이언트애플리케이션에게 Notification 푸시 Provider A Provider B notification APNs notification

APNs (Apple Push Notification Service) 고찰 APNs 는 Apple iphone 의 Push Notification 의주요기능 APNs 는 iphone, ipad, ipod 과같은장비에게정보를전파하기위한매우효율적인서비스이다. 각장비들은서비스와인증되고, 암호화된 IP 커넥션을구축하고, 이연결을통해서 Notification을전송받는다. 11 APNs 암호화된채널연결 (TLS) iphone

APNs (Apple Push Notification Service) 고찰 Notification이도착했을때, 애플리케이션이구동중이아니라면, 장비는사용자에게애플리케이션을대기중인데이터를가지고있음을알린다. Provider 는암호화된채널을통해 APNs 에연결한다. 12 Provider 암호화된채널연결 (TLS) APNs

APNs (Apple Push Notification Service) 고찰 APNs는클라이언트애플리케이션에게줄데이터가들어오는지모니터링한다. Provider 가보낸새로운데이터를전송받고, 애플리케이션에대한새로운데이터가도착하면, APNs는대상장비에게푸시한다. Notification 은 token 과 payload 로구성되는 2 개의조각으로구성된다. 13 Notification token payload 장비의소재를파악하기위한정보 실제데이터 : Json 프로퍼티목록

APNs (Apple Push Notification Service) 고찰 om device token 은전화번호와유사한것으로, APNs가클라이언트애플리케이션이설치된장비의소재를파악하기위한정보를포함한다. payload는장비상의애플리케이션사용자에게알리는방식을정의한 Json 프로퍼티목록이다. Notification 데이터의흐름은단방향이다. 14

APNs (Apple Push Notification Service) 고찰 Provider는클라이언트애플리케이션에대한 device token과 payload 를작성한다. 이를 APNs 에게전송하고, APNs 는장비에게 Notification 을푸시한다. Provider 15 token payload notification APNs iphone

APNs (Apple Push Notification Service) 고찰 Provider 는 APNs 에게자신을인증하기위해 topic 을준비한다 topic 은데이터를제공할애플리케이션을구분할때사용된다. topic 은 iphone OS 상의대상애플리케이션의 identifier 이다. 16 Provider topic 인증 애플리케이션의 identifier APNs

Service to Device Connection Trust APNs 는 TLS peer-to-peer 인증을통해장비와연결한다. 17 iphone OS 가연결신뢰성에대한작업을직접다룬다 APNs TLS initiation Server certificate Device certificate Validate device certificate TLS established Device Validate server certificate

TLS 개요 TLS : Transport Layer Security TLS 는암호규약이다. TLS 는 SSL 이표준화되면서바뀐이름이다. TCP/IP 네트워크을사용하는통신에적용된다. 통신과정에서전송계층종단간보안과데이터무결성을보장한다. 웹브라우징, 전자메일, 인스턴스메시지, VoIP(Voice-over-IP) 같은응용부분에적용되고있다.

TLS 개요 TLS 는 IETF 표준규약이다. TLS는클라이언트 / 서버응용프로그램이네트워크로통신하는과정에서도청 / 간섭 / 위조를방지하기위하여설계되었다. TLS 의 3 단계기본절차 1. 지원가능한알고리즘상호교환 2. 키교환, 인증 3. 대칭키암호로암호화하고, 메시지인증 첫단계에서서버와클라이언트는암호스위트를교환한다.

TLS 개요 om 이단계에서키교환과인증에사용할암호화방법, 메시지인증코드 (MAC) 가결정된다. 키교환과인증알고리즘은공개키방법을사용하거나, 사전에공유된키 (TLS-PSK) 를사용할수도있다. 메시지인증코드는 HMAC 해시함수로만든다. SSL 에서는비표준무작위함수를사용한다.

Provider to Service Connection Trust Provider와 Service 사이의연결역시 TLS peer-to-peer 인증을사용한다. 21 Provider TLS initiation Server certificate Validate server certificate Provider certificate TLS established APNs Validate provider certificate

Token 생성및분배 iphone 애플리케이션은 push notification을받기위해서등록되어야한다. 애플리케이션은장비에설치된후위방법을사용한다. iphone OS 는애플리케이션으로부터등록요청을받은후, APNs 에연결하고, 이요청을포워딩한다. APNs는유일한 device certificate 안에포함되어있는정보를사용하여 device token을생성한다. 22

Token 생성및분배 device token 은 device 에대한고유인증값을포함한다. 다음 token key 를가지고 device token 을암호화하고, 이를장비에게되돌려준다. Jav om 23

Token 생성및분배 A Jav 24 Provider Token Device Connect(Token,...) Token APNs Generate token package Generate Device ID from Device certificate Encrypt token with token key

Token 생성및분배 om 장비는 device token을요청애플리케이션에게 NSData 객체로되돌려보낸다. 다음애플리케이션은 device token 을바이너리또는헥사포맷으로 Provider에게보낸다. 25

26 Device Token 분배 1 SSL Connection device token 3 2 device token Client Application 4 device token APNs Provider A Jav om

Android chitecture Applications Home Contacts Phone Browser... Application Framework Activity Manager Window Manager Content Providers Package Manager Telephony Manager Resource Manager Notification Manager Libraries Surface Manager Media Framework SQLite OpenGL ES FreeType WebKit Linux Kernel 27 SGL SSL libc View System Location Manager Android Runtime Core Libraries Dalvik Virtual Machine Display Driver Camera Driver Flash Memory Driver Binder (IPC) Driver Keypad Driver WiFi Driver Audio Driver Power Management Java JNI C++/C C

안드로이드개발환경구축 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 환경변수설정 :P Path 에안드로이드 SDK 의 tools 디렉터리추가 Eclipse 용 ADT(Android Development Tools) 플러그인설치및설정 디버깅을위한안드로이드하드웨어설정 해당안드로이드기기에서 USB 연결을통한디버깅을활성화한다. Settings > Applications > Development > USB debugging 활성화 안드로이드장비디버깅을위한운영체제설정 28 안드로이드하드웨어에안드로이드응용프로그램을설치하고디버깅하기위해 USB 를통해운영체제가안드로이드장비에연결할수있게설정해야한다. 운영체제마다방법이다름 윈도우즈 : 안드로이드 USB 드라이버를설치

안드로이드 SDK 주요패키지 패키지 andoird.* com.google.android.maps dalvik.* java.* javax.* junit.* orgapachehttp* org.apache.http. org.json org.w3c.dom org.xml.sax.* org.xmlpull.* 29 설명안드로이드응용프로그램기본요소구글지도인터페이스디버깅등을위한 Dalvik 가상머신지원코어클래스, 네트워크, 보안등의일반유틸리티암호화지원단위검사지원 HTTP 프로토콜지원 Json 지원 DOM 코어를위한 W3C Java 바인딩 XML 지원을위한 SAX 고성능 XML 파싱

안드로이드주요개발도구 안드로이드에뮬레이터 안드로이드가상머신으로 PC 에서실행되는실제장비와흡사하게작동 안드로이드응용프로그램을에뮬레이터에설치, 실행 / 디버깅을할수있음 DDMS : Dalvik Debug Monitor Service 안드로이드플러그인 (ADT) 를통해 Eclipse에통합 안드로이드기기에직접접근하여실행프로세스와스레드관리, Heap data 조회, 프로세스를디버거에붙이는다양한작업가능 ADB : Android Debug Bridge 개발자가 Eclipse 와같은표준자바IDE를이용하여에뮬레이터나실제장비상의안드로이드코드를디버깅할수있게해주는도구 DDMS, Eclipse용안드로이드개발플러그인모두 ADB를통해장비와상호작용 AHV : Android Hierarchy Viewer 30 레이아웃구성요소들의관계를보여주는시각적도구

안드로이드 AVD 생성 om AVD : Android Virtual Device ( 안드로이드가상장비 ) 명령행에서생성 안드로이드설치디렉터리 \tools 로이동 android create avd -n myavd2.1 1-t 7-c 1024M Eclipse ADT 플러그인의 AVD Manager 를이용한방법 31

안드로이드응용프로그램구조 A 32 Activity transition Activity1 Android Application Activity Activity Activity Service Main Activity : set in AndroidManifest.xml Activity without UI startactivity(new Intent(getApplicaitonContext(), Activity2.class); Intent Activity2

안드로이드응용프로그램의수명주기 request start foreground delete from memory 33 oncreate onrestoreinstancestate onstart onresume background onsaveinstancestate onrestart background foreground onpause foreground onstop ondestroy active lifetime visible lifetime full lifetime

안드로이드응용프로그램의수명주기 oncreate() Activity i 가시작되면호출 Activity 의정적자원초기화에적합 onresume() Activity가 ActivityStack의최상위에놓이고, 전경프로세스가되면호출 Activity의실행에필요한자원준비에적합 오디오, 동영상시작에적합한곳 onpause() 다른 Activity 가 ActivityStack 최상단에놓이면, 현 Activity 는백그라운드로밀린다. 이때호출 onresume() 에서시작한자원의비활성화해야한다 ondestroy() 34 Activity 가종료되기직전에호출. ( 자발적종료, 안드로이드가종료 ) Activity 의정적데이터해제에적합

안드로이드프로젝트구성 35 Android Project AndroidManafest.xml 응용프로그램의전역설정 default.properties 빌드대상과적절한빌드시스템옵션정의 src 응용프로그램소스 xxx.xxx.main.java gen 자원관리자소스 : 수정불가 xxx.xxx.r.java res 모든자원이미지, 레이아웃, 문자열등 drawable icon.png layout main.xml values stirngs.xml

안드로이드기반푸시아키텍처구상 Android Notifica tion Service Android Mobile Device Push Notification Client Service (Android Service) notify Network Module push notification Push Server Monitoring Module monitoring Network Module om activate 36 Android Push Client Application Android Push Client Application Android Push Client Application HTTP, TCP/IP,... Content Server

안드로이드네트워크프로그래밍데모 안드로이드네트워크프로그래밍을위한구성 Android Notification Service activate 37 Android Mobile Device Push Notification Client Service Network Module Thread Handler notify Android Push Client Application Activity Handler Network Module Thread update view Push Server Java Application Network Module Thread Network Module Thread

안드로이드네트워크프로그래밍데모 om 네트워크서버구성 자바클래스 PushSvr.java SManager.java ClientInfo.java 38 네트워크메인애플리케이션 설명 클라이언트연결정보관리를위한 Vector 상속클래스 클라이언트연결정보

안드로이드네트워크프로그래밍데모 SManager.java 구성 (extends Vector) 구분이름설명 add(clientinfo) remove(clientinfo) 클라이언트정보추가 클라이언트정보삭제 메소드 findbyid(id) ID 값에해당하는클라이언트정보반환 39 findbysocket(socket) 소켓값에해당하는클라이언트정보반환 sendtodevice(id, message) ID 값을가진모든소켓에메시지전송

안드로이드네트워크프로그래밍데모 PushSvr.java 구성 구분이름설명 프로퍼티 메소드 내부클래스 40 port: int 서버의리스닝포트번호 (8999) server: ServerSocket socketmanager: SManager start() main() NetworkThread - socket - reader - writer + run() 서버용소켓객체 클라이언트연결정보 서버를시작하는작업담당클라이언트가연결될때마다쓰레드생성 메인엔트리메소드 네트워크담당쓰레드클래스. 클라이언트소켓. 입력스트림. 출력스트림. 쓰레드시작메소드

안드로이드네트워크프로그래밍데모 ClientInfo.java 구성 구분이름설명 socket: Socket 클라이언트소켓프로퍼티 id: String 애플리케이션키 Jav om 41

안드로이드네트워크프로그래밍데모 안드로이드애플리케이션구성 Main.java 액티비티 MessageBox.java PushService.java StartupIntentReceiver.java AndroidManifest.xml main.xml 42 설명 안드로이드애플리케이션메인액티비티클래스 AlertDialog Wrapper 클래스 푸시클라이언트서비스 부팅완료브로드캐스팅을받을리시버클래스 전역설정 xml 파일 안드로이드애플리케이션메인레이아웃 xml 파일

안드로이드네트워크프로그래밍데모 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/a ndroid" package="org.a.pushclient" g p android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> 43

안드로이드네트워크프로그래밍데모 AndroidManifest.xml <activity android:name=".main" android:label="@string/app_name"> <intent-filter> <action android:name ="android.intent.action.main"/> <category android:name ="android.intent.category.launcher"/> </intent-filter> </activity> 44

안드로이드네트워크프로그래밍데모 AndroidManifest.xml <receiver android:name="startupintentreceiver"> <intent-filter> <action android:name ="android.intent.action.boot_completed" /> <categoryg y android:name ="android.intent.category.home" /> </intent-filter> </receiver> 45

안드로이드네트워크프로그래밍데모 AndroidManifest.xml <service android:name="pushservice"> <intent-filter> <action android:name ="org.a.pushclient.pushservice" /> </intent-filter> </service> </application> <uses-sdk android:minsdkversion="7" /> 46

안드로이드네트워크프로그래밍데모 AndroidManifest.xml <uses-permission android:name ="android.permission.internet" /> <uses-permission android:name ="android.permission.access_network_state" /> <uses-permissionp android:name ="android.permission.access_wifi_state" /> <uses-permission android:name ="android.permission.vibrate" /> <uses-permission android:name ="android.permission.receive_boot_completed" /> </manifest> 47

48 데모시연 A Jaom