위피 모바일 프로그래밍

22
임임임임 임임임 임임임임임 1 위위 위위위 위위위위위 위위 위위위 위위위위위 임임임임 임임임 임임임임임

Upload: sasha

Post on 22-Jan-2016

63 views

Category:

Documents


1 download

DESCRIPTION

위피 모바일 프로그래밍. 임베디드 모바일 프로그래밍. 이동 통신사마다 서로 다른 디바이스 문제로 개발한 프로그램 수정 요구. WIPI 란 무엇인가 ?. WIPI 의 탄생과 배경 WIPI(Wireless Internet Platform for Interoperability ) 한국 무선인터넷 표준화 포럼의 무선인터넷 플랫폼 표준 한국 정보통신 기술협회에 의해 TTA 단체 표준 TTA.KO-06.0036 으로 채택된 이동통신 단말기용 응용 프로그램의 실행 환경에 대한 표준 규격 각 이통사 현황. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 1

위피 모바일 프로그래밍위피 모바일 프로그래밍

임베디드 모바일 프로그래밍

Page 2: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 2

WIPI 란 무엇인가 ?

1. WIPI 의 탄생과 배경WIPI(Wireless Internet Platform for Interoperability)

한국 무선인터넷 표준화 포럼의 무선인터넷 플랫폼 표준

한국 정보통신 기술협회에 의해 TTA 단체 표준 TTA.KO-06.0036 으로 채택된 이동통신 단말기용 응용 프로그램의 실행 환경에 대한 표준 규격

각 이통사 현황

플랫폼 추진사 개발언어 수행방식SK-VM SK Telecom Java 인터프리터 (VM)

GVM SK Telecom C/C++ 인터프리터 (VM)

BREW KTF C/C++ 바이너리MAP KTF C/C++ 바이너리KVM LG Telecom Java 인터프리터 (VM)

WIPI KWISF( 이통 3 사 ), TTA Java, C/C++ 인터프리터 , 바이너리

이동 통신사마다 서로 다른 디바이스문제로 개발한 프로그램 수정 요구

Page 3: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 3

WIPI 의 탄생 배경이동업체들 간에 각기 다른 방식으로 무선 플랫폼 개발

컨텐츠 제공업체들도 같은 컨텐츠를 여러 개의 플랫폼으로 만듦

결론

; 컨텐츠와 서비스에 대한 여러 가지 불필요한 낭비 요소가 발생함으로

이러한 낭비 요소를 줄이기 위함

이동통신사의 합의 내용플랫폼과 애플리케이션 모두 하드웨어에 대해 독립적으로 운영

다양한 종류의 단말기와 애플리케이션의 호환성을 가져야 함

단말기 구동 시점부터 플랫폼이 구동

플랫폼의 UI (User Interface) 가 디스플레이를 관장

서버에서 대부분을 처리하는 ‘씬 클라이언트’로 함

Page 4: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 4

2. WIPI 규격 / 구조

WIPI 표준화 일정

일정 내용2001. 07 모바일 표준 플랫폼 특별반 kick-off 시작2001. 09 이동통신 3 사 합의 플랫폼 요구사항 발표

정보통신진흥원을 통한 플랫폼 개발과제 공모2001. 11 플랫폼 개발 과제 시작 Kick-off, Brew

2002. 02 WIPI 1.0 release

2002. 02-04 표준화 작업 수행2004. 02 WIPI 2.0 release

WIPI 표준화 일정

- 이동통신사들의 단말기에 탑재되어 응용프로그램을 수행할 수 있

는 환경을 제공하는 모바일 플랫폼 규격을 정의

Page 5: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 5

플랫폼 구조

응용 프로그램

기본 API

모바일 표준 플랫폼

HAL(Handset Adaptation Layer)

단말기 기본 소프트웨어

Handset Hardware

WIPI

단말기 기본 소프트웨어 : 플랫폼에 탑재되는 기본 소프트웨어

( 운영체제 , 통신 기본 기능 , 각종 디바이스 드라이브 )

모바일 표준 플랫폼 : 응용프로그램 다운로드 서비스를 가능하게 해주는 환경

HAL: 플랫폼 이식에 있어서 하드웨어 독립성을 지원하기 위한 계층 . 이를 통해 단말기에 대한 추상화가 이루어지고 , 하드웨어 독립적으로 플랫폼이 구성된다 .

기본 API: 응용 프로그램 개발자가 사용하는 플랫폼에서 지원하는 기본 API 모음 . Java, C API 를 제공한다 .

출력 (LCD), 입력 ( 키패드 ), 처리 (CPU),저장 ( 메모리 ), 통신장치 등

Page 6: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 6

WIPI C, WIPI Java

WIPI C WIPI JAVA J2ME

Run Time Engine

HAL

Handset Hardware & Native System Software

WIPI Application Manager

Clet Jlet Midlet

- Clet ; 모바일 표준 플랫폼 규격에 따라 작성된 C언어 응용 프로그램- Jlet ; 모바일 표준 플랫폼 규격에 따라 작성된 Java언어 응용 프로그램- Midlet ; MIDP 규격에 따라 작성된 Java 언어 응용 프로그램즉, WIPI 플랫폼 위에 Clet, Jlet, Midlet을 각각 관리하는 매니저가 존재

- let; 응용 프로그램이 적은 양의 코드로 이루어짐

Page 7: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 7

HAL (Handset Adaptation Layer)

- Handset Hardware & Native System Software 계층과 WIPI 플랫폼

사이에서 하드웨어 독립성을 지원하기 위한 계층 ( 추상화 )

- 플랫폼의 상위 계층들은 HAL API 만을 호출해서 하드웨어 자원에 접근

- 목적

; OS 에 대한 이식성 향상

즉 , 각 단말기 시스템에 근거하여 HAL API 만 구현하면 플랫폼 내부의

프로그램 코드를 변경하지 않고도 플랫폼 전체를 이식

( 개발자는 프로그램이 용이 )

Page 8: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 8

플랫폼 상세구조

App Manager

Video Streamming Group Chatting

Character / Bell MMS

GamesIM

Location Based

E-Mail OEM SPEC 확장 API 또는

Basic APIDynamic

Component

WIPI Run-Time Engine

HAL (Handset Adaptation Layer)

단말기 기본 소프트웨어Handset Hardware & Native System SoftwareApp Manager: 응용 프로그램의 다운로드 , 설치 , 삭제 등의 응용 프로그램 관리 ,

API 및 Component 들의 추가 / 갱신 -Dynamic Linking Library 로서 WIPI 의 일부

Basic API : 프로그램 개발자가 사용하는 플랫폼에서 지원하는 필수 API 모음

OEM SPEC 확장 API: App Manager 를 통하여 추가 / 갱신된 API 및 Component

(Dynamic Linking Library (DLL) 을 통해 무선망으로 추가 or 갱신 )

Page 9: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 9

Jlet API

java 패키지는 java.lang, java.io, java.util 패키지로 구성

프로파일인 org.kwis 패키지는 msf 와 msp패키지로 구성 .

Page 10: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 10

Java API 패키지

Java 패키지 java.io java.lang java.util

Msf 패키지 org.kwisf.msf.core org.kwisf.msf.io

Msp 패키지 org.kwisf.msp.db org.kwisf.msp.handset org.kwisf.msp.io org.kwisf.msp.lcdui org.kwisf.msp.lwc org.kwisf.msp.media

Page 11: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 11

MSF & MSP 패키지

MSF (Mobile Standard Foundation)- Mobile 용 디바이스를 위한 기반이 되는 API.- 입출력 기능 , 네트워크 , 보안 , 국제화 등을 지원 .

MSP (Mobile Standard Profile)- 모바일용 디바이스를 위한 Profile

Page 12: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 12

MSF (Mobile Standard Foundation) 패키지

org.kwis.msf.core- 시스템의 핵심 부분 ( 프로그램의 정보 , 실행 , 종료 , 메모리 등 ) 을 처리 하는 클래스- 이 패키지는 핵심 부분과 관련된 Kernel 과 Shared 클래스만 존재 (Kernel ; 프로그램 정보를 획득 , 프로그램의 실행 및 종료 기능 담당 )

org.kwis.msf.io- 프로토콜 , IP, 소켓 등 상당히 많은 부분을 프로그래머가 직접 제어하는 저수준 입출력 기능을 담당하는 패키지- 클래스의 구성 ; Message, Network, URL 의 네트워크와 관련된 클래스

Page 13: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 13

MSP (Mobile Standard Profile) 패키지 org.kwis.msp.db

- 데이터베이스와 관련된 클래스들로 구성 org.kwis.msp.handset

- handset hardware 와 관련된 클래스 제공 예 ) BlackLight 클래스 ; LCD 창의 화면 밝기와 관련된 클래스

Call 클래스 ; 전화 통화와 관련된 클래스 org.kwis.msp.io

- org.kwis.msf.io 와는 다른 기능 제공- 휴대폰에서 파일과 디렉터리의 읽기 , 쓰기 , 삭제 등의 기능을 담당

org.kwis.msp.lcdui- LCD 의 UI (User Interface) 부분을 담당 즉 , 유저 인터페이스 기능을 제공

org.kwis.msp.lwc- 가장 많은 클래스들이 들어있는 패키지로서 경량 컴포넌트들을 제공 예 ) CheckboxGroup, ButtonComponent, CheckboxComponent, Command, DataFieldComponent, DialogComponent, ImageComponent 등

org.kwis.msp.media- media 관련 클래스 제공 ( 비디오 , 플레이어 등의 재생을 구현하기 위한 기능 )

Page 14: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 14

단말기 최소 권장사양

종류 설명

디스플레이 화면 크기 : 9554 이상

색상 회색조 4 가지 이상 또는 천연색 256 이상

입출력 장치

입력장치 : 키패드

사운드 장치 : 진동 및 비프음

네트워크 : 무선 및 시리얼을 통한 전송

비휘발성 메모리(EPROM,

EEPROM, Flash memory)

플랫폼 라이브러리가 사용할 수 있는 비휘발성 메모리 1MB 이상

응용 프로그램 관리자 및 기본 응용 프로그램에서 사용할 수 있는 비휘발성 메모리 400KB 이상

응용 프로그램이 사용 가능한 파일 시스템 공간으로 500KB 이상

휘발성 메모리(SRAM, DRAM)

응용 프로그램에서 사용 가능한 heap 영역 300KB 이상

플랫폼 라이브러리에서 사용 가능한 영역으로 20KB 이상

- 단말기는 적은 양의 메모리를 사용하기 때문에 불필요한 코드가 없어야 함 ( 메모리 , 배터리를 이용한 파워 , 제한된 폰트와 색상 등을 고려하여 프로그래밍 )

Page 15: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 15

Jlet & Midlet

- Midlet 는 MIDP 규격에 따라 작성된 Java 응용 프로그램- Jlet 는 Java 언어를 모태로 함즉 , 혼용 시 문제가 될 수 있음

• CLDC (Connected Limited Device Configuration) - 제약된 환경에서 디바이스들이 가져야 할 최소한의 요구사항을 정의한 일종의 스팩

• MIDP (Mobile Information Device Profile) - 실제 구현과 확장을 담당 (CLDC 를 확장 , 구체화 및 변경 ) - CLDC 를 기반으로 설계된 자바 클래스 라이브러리에 대한 명세

• MSF (Mobile Standard Foundation) 은 CDLC 의 역할을 한다고 보면 됨

• MSP (Mobile Standard Profile) 은 MSF 기반의 프로파일이다 . - MIDP 와 같은 기능을 함

Page 16: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 16

WIPI 2.0 에서는 MSF/MSP 와 CDLC/MIDP API 중에서 다음 사항을 준수하는

수준에서 호환성을 보장

(1) 동일한 패키지 이름을 가지는 부분에 대해 플랫폼은 동일한 기능을 제공패키지 그룹 MSF/MSP 패키지 CLDC/MIDP 패키지IO Java.io

Language Java.lang

Utility Java.utility

(2) 같은 기능을 가지지만 구현된 내용이 달라서 독립적으로 사용되어야 하는 부분에 대해 플랫폼은 동일 패키지 그룹에 속하는 MSF/MSP 와 CLDC/MIDP

패키지 ( 하위 패키지 포함 ) 들을 혼용하지 않고 각기 독립적으로 사용한 경우 에는 호환성을 보장 예 ) org.kwis.msp.lcdui, javax.microedition.rms, org.kwis.msp.media,

javax.microedition.io 를 동시에 사용하는 것은 동일한 패키지 그룹에 속하는 것 을 혼용하지 않았으므로 사용 가능

Page 17: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 17

패키지 그룹 MSF/MSP 패키지 CDLC/MIDP 패키지Graphics org.kwis.msp.lcdui

org.kwis.msp.lwc javax.microedition.midlet javax.microedition.lcdui

DB org.kwis.msp.db javax.microedition.rms

Media

org.kwis.msp.media

javax.microedition.media javax.microdition.mediacontrol

High Level IO org.kwis.msp.io javax.microedition.io

• MSF/MSP 와 CDLC/MIDP 간의 동일한 그룹별 대응 패키지

(3) 기능이 어느 한 프로파일에만 존재하여 타 프로파일의 기능을 불러 사용해 야 하는 경우 서로 대응하는 패키지가 없으므로 플랫폼은 상호 참조하여 사용할 수 있도록 호환성을 보장

패키지 그룹 MSF/MSP 패키지 CDLC/MIDP 패키지Low Level IO org.kwis.msf.io 없음

Kernel org.kwis.msf.core 없음Devices org.kwis.msp.handset 없음

Address book org.kwis.msp.address org.kwis.msp.addressbook

없음

• MSF/MSP 와 CDLC/MIDP 간의 각각의 고유 패키지

Page 18: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 18

3. WIPI 용어정리 , 주요기능 , 특징

용어정리모바일 플랫폼 : 모바일 응용 프로그램을 실행시킬 수 있는 단말기의 실행 환경 . 이 플랫폼은 응용 프로그램과 API 관리 기능을 포함해야 한다 .

Clet: 모바일 표준 플랫폼 규격에 따라 작성된 C 언어 응용 프로그램

Jlet: 모바일 표준 플랫폼 규칙에 따라 작성된 Java 언어 응용 프로그램

ATOC(Ahead-Of-Time Compiler): Java 를 컴파일하여 생성되는 중간코드를 플랫폼에서 실행 가능한 머신 코드로 변환해 주는 컴파일러

MSF(Mobile Standard Foundation): 모바일 장치를 위한 기반이 되는 API. 입출력 기능 , 네트워크 보안 , 국제화 등을 지원

MSP(Mobile Standard Profile): MSF 기반의 모바일 장치를 위한 프로파일

CLDC(Connected Limited Device Configuration): 가상 머신 기반의 모바일 장치를 위한 구성 . 가상 머신과 핵심 API 로 이루어져 있음 .

MIDP(Mobile Information Device Profile): CLDC 기반의 단말기를 위한 프로파일

MIDlet: MIDP 규격에 따라 작성된 Java 언어 응용 프로그램

Page 19: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 19

응용 프로그램 머신 코드 규격Java 의 바이트 코드를 안전한 서버를 통해 머신 코드 ( 바이트 코드 ) 로 바꾼 뒤 다운로드 받는다 . ( 머신코드는 ATOC 를 통해 생성 )

다중 응용 프로그램 수행다중 응용 프로그램의 동시 실행 환경 ( 응용 프로그램간 실행 우선순위 ) 을 제공하며 , 다중 프로그램간 통신 기능 ( 공유 메모리 , 이벤트 ) 을 제공한다 .

플랫폼 보안한 응용 프로그램이 플랫폼의 자원을 통해 다른 엔티티에 동작에 영향을 끼치거나 , 다른 엔티티가 소유하고 있는 정보에 접근하는 경우에 대한 정책적 , 기술적 대책

일반 (public) 수준 : 보안 레벨 중 가장 신뢰할 수 없는 수준 . ( 제약사항 多 )

플랫폼은 응용 프로그램이 실행될 때 , 단말기 시스템에 영향을 줄 수 있거나 개인 정보에 접근하는 등 , 보안 문제를 야기할 소지가 있는 플랫폼 자원에 대한 접근을 허용하지 않음 .

컨텐츠 개발자 (CP) 수준 : 단말기에 심각한 영향을 주지 않는 범위에서 신뢰가 가는 CP 업체에게 접근 허용

시스템 수준 : CP 보안 수준의 부분집합으로 응용 프로그램을 완전히 신뢰 가능한 것으로 간주하고 모든 자원에 대한 접근을 자동 허용

Page 20: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 20

• WIPI 규격과 MIDP 의 보안 관계

WIPI MIDP

Public Un-Trusted

CP Trusted

System Trusted

Page 21: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 21

• API 보안 : 특정 API 그룹을 보안 대상 그룹으로 지정하여 해당 그룹별로 보안 수준을 지정

- 접근 수준 : NO ACCESS, READ ONLY, WRITE ONLY, READ/WRITE

• 디렉토리 보안

- 개인 디렉토리 : 응용 프로그램 관리자를 제외하고는 해당 응용 프로그램 자신만이 접근

할 수 있는 디렉토리

- 응용 프로그램 공유 디렉토리 : 서로 합의된 응용 프로그램 간에 공유하기 위한 디렉토리

- 시스템 공유 디렉토리 : 응용 프로그램에 관계없이 공유되는 디렉토리• 서비스 보안 : 신뢰할 수 있는 모든 응용 프로그램은 응용 프로그램 명세 파일과 실행 코드에 서명을 받도록 하는 방법

API 추가 / 갱신 지원플랫폼은 API 를 무선망을 통해 추가 / 갱신할 수 있다 . (Dynamic Linking Library)

메모리 관리자동 메모리 해제 ; 응용프로그램이 종료되면 모든 자원을 플랫폼에 반환

메모리 컴팩션 ; 동적 메모리 할당 / 해제할 때 메모리 단편화를 줄이기 위함

자바 가비지 컬렉션

자바 스택 ; 각 응용프로그램 별 스택의 크기를 동적으로 변화시킬 수 있어야 함

공유 메모리 지원

Page 22: 위피 모바일 프로그래밍

임베디드 모바일 프로그래밍 22

응용 프로그램 관리 (APM)

플랫폼에서 응용 프로그램 수행 시 날짜 제한 , 회수 제한 등 실행 여부를 판단

응용 프로그램의 강제 종료를 지원

API 추가 / 갱신 기능을 제공

응용 프로그램 다운로드 기능을 지원

다국어 지원유니코드와 로케일 설정을 지원하며 지역에 적합한 언어와 기호를 표시할 수 있다 .

CLDC (Sun CLDC 1.1) / MIDP (Sun MIDP 2.0)

CLDC 규격에서 정의하는 가상머신의 기능을 플랫폼 엔진에서 수용

필수 API 와의 상호 운용성CLDC/MIDP 는 필수 Java API 와 상호 보완적으로 사용되어야 한다 .

같은 기능을 하는 API 는 혼용하지 말아야 함

한 쪽에서만 지원되는 API 는 보완적으로 서로 사용