1. 모바일 프로그래밍 개요

Download Report

Transcript 1. 모바일 프로그래밍 개요

모바일 시스템의 이해
Lecture #1
모바일 단말기
▶
모바일 단말기(Mobile Terminal)
▷
▷
▷
▷
▷
▶
작은 액정, 적은 양의 메모리, 높지 않는 성능의 프로세서 등을 탑
재한 휴대 가능한 이동성 단말기 (휴대폰 등)
무선 네트워크를 통해 통신이 가능
하드웨어 제약으로 인해 응용프로그램의 크기 제한
키 버튼이나 터치 패드 수준의 단순한 입출력 장치
주전원인 배터리의 절약 등을 고려
모바일 시스템
▷
이동성 단말기에 모바일 응용프로그램을 실해하고 데이터를 저장
하며 견고한 무선 통신을 지원하는 제반 환경
Mobile Programming
2
모바일 단말기 소프트웨어 계층 구조
▶
모바일 단말기의 소프트웨어 계층
▷
▷
모바일 단말기 하드웨어 제약 하에 응용프로그램 개발
 모바일 단말기를 운용하는 기반 소프트웨어 계층 구조 이해 필요
4 개의 층으로 이루어진 계층적 구조
모바일 응용프로그램
(Applications or Contents)
무선 인터넷 플랫폼
(Wireless Internet Platform)
핸드셋 기본 소프트웨어
(Handset Basic Software)
핸드셋 하드웨어
(Handset Hardware)
Mobile Programming
계층 4. 게임 등의 응용프로그램들
계층 3. 인터넷이 가능하도록 하는 미들웨어
계층 4의 응용프로그램이 계층 1,2의 하드웨어와
무관하게 실행될 수 있도록 지원
계층 2. 시스템 소프트웨어 계층
운영체제, 디바이스 드라이버 등
symbian OS, Palm OS, Window Mobile, Linux 등
계층 1. 휴대폰 하드웨어
LCD, 키패드, CPU, 메모리, 저장 장치 등
3
위피(WIPI)의 개요 (1)
▶
위피의 역사
▷
▷
1994년 마크 안드레센의 웹 시스템 & 브라우저
핸드폰의 인터넷 사용에 대한 필요성 증가


▷
2001.5 KWISF(Korea Wireless Internet Standard Forum)

▷
▷
▷
▷
▷
▷
▷
휴대폰 제조사 고유 방식의 무선 인터넷 플랫폼 구축
 휴대폰 간의 상호운영성에 심각한 문제 유발
외산에 대한 잠식 우려
정보통신부, 이동통신 3사, 한국전자통신연구원(ETRI), 정보통신 기술
협회(TTA)
2002.3 모바일 표준 플랫폼, WIPI 1.0 채택
2002.5 TTA 표준으로 채택, WIPI로 명칭 확정
2003.2 WIPI 1.1 발표
2003.4 WIPI 1.2 발표
2004.2 WIPI 2.0 발표
2004.9 WIPI 2.0.1 채택
2006.11 WIPI 2.1.1 채택
Mobile Programming
4
위피(WIPI)의 개요 (2)
▶
상호운용성의 필요성
▷
상호운용성(Interoperablility)

▷
기존의 모바일 플랫폼의 문제점 : 상호운용성의 결핍



▷
응용프로그램 등 콘텐츠들이 다양한 모바일 단말기에서 상호 실행될
수 있는 호환성
이동통신사 간의 그리고 이동통신사 내의 디바이스들 사이의 하드웨
어 및 모바일 플랫폼의 다양화
프로그램 개발자는 다양한 디바이스에 맞게 프로그램 수정 필요
개발자, 콘텐츠 제공자, 이동통신사 모두에게 시간, 금전 손실을 유발
WIPI의 필요성

하나의 응용 프로그램을 타회사와 이기종에서 실행할 수 있는 상호운
용성을 지원하는 플랫폼이 필요
플랫폼
BREW
GVM
SK_VM
JavaStation
WIPI
개발사
Qualcomm
신지소프트
SKT,
XCE
LGT,AromaSoft,
VeloxSoft
AromaSoft, GeaeSoft,
GeoTel, VeloxSoft, XCE, InoAce
개발언어
C/C++
C/C++
Java
Java
C/Java
Mobile Programming
5
위피(WIPI)의 개요 (3)
▶
위피(WIPI)?
▷
휴대폰으로 무선 인터넷 사용 가능하도록 지원하는 계층 3의 무선
인터넷 플랫폼에 해당


▷
휴대폰 운영체제와 비슷한 역할

▷
계층 4의 응용 프로그램에게 모바일 단말기를 다루는 API를 지원
계층 1,2와 독립적인 응용 프로그램 개발 및 실행이 가능하도록 지원
 휴대폰 기종간의 상호운용성을 제공
휴대폰의 하드웨어와 기본 운영체제 위에서 동작하여 휴대폰의 모든
동작을 가능하도록 관련 기능을 제공하는 가상 환경을 지원
모든 모바일 컨텐츠는 위피 플랫폼을 이용하여 다운로드하도록 표
준화

벨소리, GPS, 모바일 뱅킹, 게임, 전화번호부, SMS, 영상 통화 등 모든
컨텐츠
– 무선 인터넷과 관계없는 것까지 모두 다운로드 방식


유선을 이용한 컨텐츠 탑재 불가
이통사의 수입원
Mobile Programming
6
위피(WIPI)의 개요 (4)
▶
위피 표준 제정에 대한 요구 사항들
▷
플랫폼과 애플리케이션 모두 하드웨어에 대해 독립적으로 운영되
어야 한다.
▷
다양한 종류의 단말기와 애플리케이션의 호환성을 갖추어야 한다.
▷
단말기 구동 시점부터 플랫폼이 구동되어야 한다.
▷
플랫폼의 사용자 인터페이스가 디스플레이를 관장한다.
▷
서버에서 대부분을 처리하는 씬클라이언트로 한다.
▷
VM 대신 애플리케이션을 입출력할 수 있고 모듈을 읽을 수 있는
API를 포함한다.
Mobile Programming
7
위피(WIPI)의 개요 (5)
▶
위피 2.0의 구조
▷
▷
위피 플랫폼의 소프트웨어 계층 : HAL + Runtime engine(실행엔진)
+ BASIC API
위피 표준 규격에서는 HAL과 Basic API에 대한 표준화를 제공, 실
행엔진은 표준화 대상이 아님
위피
플랫폼
Mobile Programming
8
위피(WIPI)의 개요 (6)
▶
위피 2.0 표준 플랫폼 구조도
• 위피 응용 프로그램의 실행엔진
• 링크 & 로더 기능, 메모리 관리,
리소스 관리, 가비지 컬렉션 기능
수행
•단말기용 API 정의
•하드웨어의 독립성 지원
•CDMA망에서는 Rex OS를 지칭
•간단한 단말기 운영체제 기능과
통신 기능 및 각종 디바이스 드라
이버 포함.
Mobile Programming
9
위피(WIPI)의 개요 (7)
▶
위피의 구조
▷
HAL(Handset Abstraction Layer)


▷
Runtime Engine



▷
휴대폰 하드웨어와 WIPI 플랫폼 사이의 하드웨어 독립성을 지원하기
위한 계층
플랫폼 상위 계층에서는 HAL API를 통해 하드웨어에 접근하게 되는
단말기 하드웨어에 대한 추상화 지원
위피 응용 프로그램을 실행시키는 실행 엔진
링크 & 로더 기능, 메모리 관리, 리소스 관리, 가비지 컬렉션 기능 등을
수행
바이트 코드에 대한 인터프리터 기능을 제외하고는 Java VM과 거의
동일한 기능을 제공
BASIC API

WIPI C와 WIPI Java, J2ME 지원, 응용 개발자를 위한 필수 API
Mobile Programming
10
위피(WIPI)의 개요 (8)
▶
WIPI 응용 프로그램
▷
Clet : C 언어로 작성

▷
Jlet : Java 언어로 작성

▷
WIPI java 라이브러리 사용
Midlet : Java 언어로 작성

▷
WIPI C 라이브러리 사용
J2ME를 사용
WIPI 응용 프로그램 개발환경으로 Java를 채택한 이유?
Mobile Programming
11
위피(WIPI)의 개요 (9)
▶
모바일 단말기의 무선 인터넷 플랫폼 비교 : 3 가지
응용프로그램
컴파일
VM 기반 플랫폼
Native 기반 플랫폼
WIPI 플랫폼
VM에서 작동되도록 응용
프로그램이 바이트 코드
로 컴파일 됨
응용프로그램이 단말기의
CPU에서 바로 실행되도록
CPU의 머신코드인 바이너
리 코드로 컴파일됨
응용프로그램이 바이
트 코드로 컴파일 됨
COD 서버에서 바이트
코드를 단말기의 바이
너리 코드로 변환
(AOTC)
실행 전
처리과정
없음
없음
응용프로그램
실행
VM이 바이트 코드를 번
역하여 실행(인터프리터
형식)
바이너리 코드를 바로 실
행
장점
높은 시스템 안정성 및 보
안
빠른 실행시간
단점
긴 실행시간
악의적 개발자에 의해 안
정성 취약
Mobile Programming
바이너리 코드를 바로
실행
높은 시스템 안정성 및
보안, 빠른 실행시간
12
위피(WIPI)의 개요 (10)
▶
모바일 단말기의 무선 인터넷 플랫폼 비교 : 3 가지
▷
AOTC(Ahead of Time Compiling)


자바 바이트 코드가 다운로드 전에 단말기의 바이너리 코드로 미리 컴
파일
다운로드 시에는 바이너리 직접 다운로드하여 단말기에서 바로 실행
– 실행시간을 단축
– 시스템 메모리 침범, 메모리 낭비 등의 문제점을 차단

COD(Compile-On-Demand) 서버 : ATOC를 수행하는 서버
Mobile Programming
13
위피(WIPI)의 개요 (11)
▶
위피 2.0의 주요 기능 규격
▷
▷
위피 표준안 : http://www.wipi.or.kr
주요 기능 규격

응용프로그램 머신 코드 규격
– 플랫폼은 머신 코드 형태의 응용프로그램을 다운로드받아 수행
– 자바 응용프로그램의 경우, 바이트코드를 AOTC를 통해 머신 코드를 생성
할 수 있다.

다중 응용프로그램 수행
– 플랫폼은 여러 응용프로그램을 동시에 실행할 수 있어야 한다.
– 응용 프로그램간 우선 순위를 두고 가장 높은 우선 순위의 응용 프로그램
이 실행되어야 한다.
– 플랫폼은 응용 프로그램의 생명 주기를 관리할 수 있어야 한다.

지원 프로그래밍 언어
– C 언어 지원, Java 언어 지원
Mobile Programming
14
위피(WIPI)의 개요 (12)
▶
위피 2.0의 주요 기능 규격
▷
주요 기능 규격

플랫폼 보안
– 보안의 수준 : public, cp, system
– 보안 대상, 자원 별 등

API 추가/갱신 지원
– 플랫폼은 API를 무선망을 통해서 추가/갱싱할 수 있으며, 이는 DLL을 통해
이루어져야 한다.

메모리 관리
– 응용프로그램이 종료되면 자동으로 응용프로그램과 관련된 모든 메모리
를 자동 반환된다.
– 동적으로 사용하는 메모리를 할당/해제할 때 메모리 압축(compaction)을
할 수 있다.
– 자바 언어 문맥에 따라 가비지 컬렉션을 지원해야 한다.
– 플랫폼은 자바 응용프로그래별로 스택을 할당/해제할 수 있어야 한다.
– 응용프로그램이 사용하는 메모리는 모두 독립적이고, 응용프로그램간 공
유할 수 있는 메모리를 지원하여야 한다.
Mobile Programming
15
위피(WIPI)의 개요 (13)
▶
위피 2.0의 주요 기능 규격
▷
주요 기능 규격



응용프로그램 관리
다국어 지원
CLDC/MIDP 지원
– SUN Microsystems사의 J2ME(CLDC 1.0/MIDP 2.0)를 필수 지원
– J2ME 응용 프로그램도 동작시킬 수 있어 플랫폼의 컨텐츠 수용 범위를 확
대
Mobile Programming
16
위피(WIPI)의 개요 (14)
▶
위치 응용 프로그램의 개발 및 배포 과정
Applications
Download 서버
개발자
Application 인증 서버
단말기
COD 서버
저장장치
application jar 파일,
ADF 파일
application jar 파일,
안전확인마크가 붙은
ADF 파일
바이너리 코드로
컴파일된 jar 파일,
안전확인마크가 붙은
ADF 파일
jar 및 ADF 다운로드,
applicaiton 실행
jar 및 ADF 다운로드,
applicaiton 실행
Mobile Programming
17
위피(WIPI)의 개요 (15)
▶
개발자 역할
▷
개발자

▷
위피 개발 도구





▷
단말기에 소프트웨어를 개발하는 회사(Content Provider)나 학생과 같
은 개인
소스 프로그램 편집기
위피 SDK(Software Development Kit)
이미지 편집기
사운드 편집기
ADF 편집기
개발 결과물


Application jar 파일
ADF(Application Description File) 파일
Mobile Programming
18
위피(WIPI)의 개요 (16)
▶
개발자 역할
▷
Application jar 파일



▷
위피 응용프로그램을 컴파일하여 생성된 바이트 코드 포함
이미지 동영상 등 응용프로그램이 실행되는데 필요한 리소스도 포함
배포가 가능하도록 Java 패키지 압축 형식을 압축
ADF(Application Description File) 파일


응용 프로그램에 대한 설명을 담고 있는 파일
기본정보
– 응용 프로그램의 개발 언어, 응용프로그램의 이름 및 버전, 제작자의 이름,
만기 날짜 등

추가정보
– 접근 수준, 접근할 디렉토리, 단말기의 컬러레벨, 사운드 레벨 등의 보안
사항, 프로비저닝 정보 등
▷
Application 인증 서버에 jar 파일과 ADF 파일을 전달
Mobile Programming
19
위피(WIPI)의 개요 (17)
▶
ADF 파일 예:
; 주석
Type= JAVA ; C 도 가능함
Name= MyGame
Vendor= Kitae
Version= 1.0.0
Platform_Version= 1.0.0
Access_Level= Public
Share_Access=example/game
Jar_URL= http://xxx.xxx.xxx.xxx/Example.jar
Expire_Date=2010-10-10,08:12:15
Expire_Count= 30
Main_Class= TestJlet
Max_Thread = 5
Jar_Size= 1368
Data_Size= 10
Resolution=150, 180
Color=256
Sound=16
Mobile Programming
20
위피(WIPI)의 개요 (18)
▶
Application 인증
▷
응용 프로그램의 안정성 여부 판단


▷
jar 파일과 ADF 파일 이용
인증을 통과하면 안정성 확인 마크가 붙은 ADF 파일을 생성하여 COD
서버로 이들을 전달
인증 평가 기준




규격 - 응용프로그램이 무선 표준 플랫폼에서 정한 언어 및 데이터 형
식을 유지하는지 판단
기능 - 테스트 수행 시 기능이 WIPI 플랫폼에 적합한지, 수행결과가 정
확한지 판단
안정 - 응용프로그램을 구동하여 오류 상태의 이벤트가 주어졌을 때,
정상 상태로의 상태 변이가 안정적으로 이루어지는지
효율 - 응용프로그램 동작 시에 시스템 자원 사용이 기준치를 넘지 않
는지
– CPU 점유율, 메모리 한계치, 입력에 대한 응답 시간(처리시간)
Mobile Programming
21
위피(WIPI)의 개요 (19)
▶
AOTC 변환 및 저장
▷
Jar 파일에 포함되어 있는 바이트 코드를 단말기의 기계어인 바이
너리 코드로 변환

▷
단말기에서 응용 프로그램의 빠른 실행을 지원
COD(Compile-On-Demand) 서버에서 AOTC를 수행
Mobile Programming
22
위피 탑재 의무 철폐와 위피의 미래
▶
위피 탑재 의무 철폐
▷
▷
▶
2009년 4월부터 국내 판매 휴대폰에 위피 탑재 의무 철폐됨
APPLE, Nokia, Google 등 외국계 휴대폰 한국 진출
현재 위피의 사용 수준
▷
이동통신사 모두, 거의 모든 컨텐츠(약 95%)를 위피 기반으로 개발

▷
▶
응용프로그램, 과금 등 서버 포함
최소 5년은 위피 플랫폼을 사용할 수 밖에 없을 것으로 예측
외국계 OS와 위피
▷
국내 이통사들, 외국계 휴대폰에 위피 플랫폼을 탑재 진행 중



WIPI on Symbian
WIPI on Window Mobile
WIPI on Brew
Mobile Programming
23
상용 모바일 플랫폼 비교
WIPI
iPhone
S60
Android
WM
운영체제
Any
Darwin
Symbian
Linux
Windows
Mobile
언어
자바, C
Objective-C
C/C++, 자
바
자바,
C/C++
C#,
Visual Basic,
C/C++
실행시간
라이브러리
OEM
Quartz,
OpenGL ES,
CoreAnimation
OpenGL ES,
Webkit
SGL(Skia
Graphics
Library),
WebKit,
OpenGL
ES
CoreDLL,
DirectX,
.NET CF
Mobile Programming
24
모바일 게임의 개요 (1)
▶
모바일 게임의 정의
▷
▶
각 이동 통신사의 휴대폰으로 언제 어디서나 즐길 수 있는 게임
모바일 게임의 특징
▷
▷
▷
시간과 공간의 제약을 받지 않는다.
온라인 게임에 비해 비교적 단순하다.
몰입성이 뛰어나다.
Mobile Programming
25
모바일 게임의 개요 (2)
▶
모바일 게임의 변천
▷
2001년 초반


▷
2001년 중반

▷
20kb 소용량 흑백(4gray) 미니 모바일 게임으로 처음 서비스 시작
스포츠 게임, 고스톱, 역할 수행 게임(RPG, Roll Playing Game) 등
이동통신사의 단말기별로 여러 종류의 가상머신이 탑재된 컬러 모바
일 게임 서비스
2003년 중반

3D 지원 단말기 →출시 게임 폰 등장 → 고품질, 고가의 모바일 게임
서비스
Mobile Programming
26
모바일 게임의 개요 (3)
▶
모바일 게임 장르
▷
▷
▷
▷
▷
▶
아케이드 게임
퍼즐/보드 게임
스포츠 게임
타이쿤 게임
역할 수행 게임
아케이드 게임
▷
▷
액션, 아케이드, 슈팅 장르의 게임 요소를 혼합 하고 있음.
동전쌓기, 놈, 물가에 돌튕기기, 미니게임천국 등
동전쌓기 2006
Mobile Programming
27
모바일 게임의 개요 (4)
▶
퍼즐/보드 게임
▷
▷
▶
휴대 단말기의 인터페이스에 가장 적합
고스톱, 테트리스, 고로고로춥, 푸키푸키, 부루마블 등
스포츠 게임
▷
▷
야구나 골프를 소재로 한 턴 방식이 주를 이룸.
프로야구, 팡야, 축구게임 등
IQ 무한도전
시티레이지 2008
Mobile Programming
28
모바일 게임의 개요 (5)
▶
타이쿤 게임
▷
▷
▶
아케이드 요소와 경영 시뮬레이션 요소를 혼합한 게임
붕어빵, 떡뽑기, 도시락, 짜요짜요 등
역할수행 게임
▷
▷
생과일 타이쿤3
사용자가 임무를 부여받아 캐릭터를 성장시켜, 특정 퀘스트나 전
투를 하는 구성
삼국지 무한대전, 삼국 쟁패, 영웅서기-솔티아의 바람, 창세기전
등
Mobile Programming
미스틱 사가
29
모바일 게임의 개요 (6)
▶
모바일 게임 플랫폼
▷
▶
휴대폰을 이용해 인터넷에 접속하여 모바일 게임을 다운로드받아
저장·관리· 실행하는 환경
모바일플랫폼의 변천 과정
Mobile Programming
1세대
브라우징 방식
2세대
VM과 네이티브 바이너리 방식의
모바일 플랫폼
3세대
모바일 플랫폼 표준화
30
모바일 게임의 개요 (7)
▶
▶
제1세대 브라우징 방식
▷
WAP(Wireless Application Protocol)나 ME(Mobile Explorer)를 기
반으로 유선 인터넷에 접속하여 단순한 텍스트와 이미지 위주의 콘
텐츠를 주로 이용하는 방식
▷
온라인 상태에서만 이용할 수 있어 속도가 제한되고, 통신 비용이
비싸며, 사용자 인터페이스가 불편해 많은 것을 지원하지 못함.
제2세대 VM(Virtual Machine)과 네이티브 바이너리 방식
▷
휴대폰 등 단말기와 독립적인 환경에서 게임이 수행되는 가상 플랫
폼인 VM이 탑재된 단말기는 실행 환경이 모두 똑같은데, 이곳에서
모바일 게임이 구동됨.
▷
통신사에서 제공되는 단말기별로 다양한 플랫폼을 탑재하고 있음.



SK 텔레콤: GVM, GNEX, SK-VM
KTF: 퀄컴의 브루(BREW)
LG 텔레콤: 이지자바 등
Mobile Programming
31
모바일 게임의 개요 (8)
▶
제3세대 위피 표준 플랫폼
▷
위피(WIPI)


▷
한국무선인터넷표준화 포럼(KWISF, Korea Wireless Internet
Standardization Forum)에서 만든 모바일 표준 플랫폼 규격
이동통신 단말기에 탑재되어 무선 인터넷으로 다운로드받은 응용 프
로그램이 실행되는 환경을 제공하는 데 필요한 표준 규격
위피 목적


통신사마다 서로 다른 플랫폼을 사용해 하나의 콘텐츠를 여러 버전으
로 만들어야 하는 콘텐츠 제공자의 노력을 줄이고
소프트웨어 업체의 플랫폼별 소프트웨어 중복 개발 비용을 최소화
Mobile Programming
32
모바일 프로그래밍 (1)
▶
MIDlet 기반의 모바일 프로그래밍
▷
▷
강의에서는 WIPI 플랫폼에서 실행가능한 MIDlet 기반의 모바일 프
로그램 개발 과정을 학습
개발 실습 환경



▷
Ubuntu-9.10 Linux System
Eclipse
J2ME JDK
실습 내용

MIDlet 기반의 모바일 게임 프로그램 실습
Mobile Programming
33
모바일 프로그래밍 (2)
▶
MIDlet 개발 API
Mobile Programming
34