WIPI 플랫폼 구조 - 산업기술대학교 원격교육연수원

Download Report

Transcript WIPI 플랫폼 구조 - 산업기술대학교 원격교육연수원

차세대 모바일 디지털 컨텐츠
이번 시간에는...
37. 모바일 표준 플랫폼 WIPI - II
지난 시간에는 모바일 표준 플랫폼 WIPI의 첫번째 시간으로, 무선 인터넷 플랫폼의 표준화 목적
과 배경, 표준화 요구사항 및 WIPI 구성 및 기술 요구사항, WIPI 표준화 및 상용화 일정과 WIPI
애플리케이션 Launching 과정, 그리고 WIPI를 보는 각 Player의 입장에 대해 알아보았습니다.
이번 시간에는 모바일 표준 플랫폼 WIPI 기술, 그 두번째 시간으로, WIPI 기능에 대해서 학습해
보도록 하겠습니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
학습 목표
37. 모바일 표준 플랫폼 WIPI - II
37 회차 강의에서 다루게 되는 내용은 다음과 같습니다.
모바일 표준 플랫폼 WIPI - II
이번 장의 학습 목표
한국산업기술대학교
1)
WIPI 플랫폼의 구조에 대해 알 수 있다.
2)
WIPI 플랫폼의 기능에 대해 알 수 있다.
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 구조
37. 모바일 표준 플랫폼 WIPI - II
 WIPI 플랫폼 구조
Basic API (and Extended API)

Group Chatting
IM
MMS

Video Streaming
Character/Bell
Games
App.
Manager
Email
응용프로그
램의
Download,
설치, 삭제,
등의 응용프
로그램 관리.
API 및
Component
들의 추가/갱
신–
Dynamic
Linking
Library 로서
WIPI의 일부
가 됨.
Location Based
 HAL, WIPI 실행 엔진, 기본 API, Application Manager, Dynamic Component,
및 각종 부가 기능으로 구성
Dynamic
Component
WIPI Run-time Engine
App. Manager를
통하여 추가/갱신
된 API 및
Component들.
HAL (Handset Adaptation Layer)
Handset Hardware & Native System Software
플랫폼의 하드웨어 독립성을 유지하기 위한 추상화
계층으로 상위 Layer들은 HAL위에서 Native System
과 무관하게 동작하도록 지원한다.
한국산업기술대학교
응용프로그램 개발자를 위한 API로서 C와
Java 언어를 모두 지원한다.
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 구조
37. 모바일 표준 플랫폼 WIPI - II
 WIPI 플랫폼 구조
 HAL(Handset Adaptation Layer)
 WIPI 플랫폼 이식(Porting) 시, 하드웨어 독립성을 지원하기 위한 계층
 이를 통해 단말기에 대한 추상화가 이뤄지고, 하드웨어 독립적으로 플랫폼 구성 가능
 예) 국내 CDMA 단말기의 경우 퀄컴 OS(REX)위에 HAL만을 포팅하면 단말기용 플랫폼이 되고,
HAL만을 윈도우 환경에 포팅하면 윈도우용 에물레이터가 됨  따라서 단말기 제조사가 한번만
HAL API에 따라 구현하면 다양한 플랫폼 구현이 빠른 시간 내에 포팅되는 장점
 기본 API
 응용 프로그램 개발자가 사용하는 기본 API 모음
 C 및 자바 API로 구성  C 및 자바 API는 기능면에서 동등한 API를 제공
 플랫폼 규격에서는 자바 언어용 응용 프로그램도 C 언어 응용 프로그램과 마찬가지로 바이너리로
수행하도록 하기 때문에 개발자는 선호하는 언어로 개발 가능
 일반적으로 자바 언어로 대부분의 응용 프로그램을 제작 할 수 있고, C 언어로는 속도에 아주 민감
한 각종 멀티미디어 코덱이나 보안 모듈등을 제작할 것으로 기대
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 WIPI 플랫폼 특징
 응용프로그램 및 API 관리 기능
 응용프로그램의 조회, 다운로드, 설치, 실행, 삭제, 보안 관리
 다운로드 된 동적 추가 / 갱신용 API들을 관리 (선택 규격)
 안정화된 플랫폼 보안 관리 기능
 보안수준에 따른 수행 중 API 보안 기능 지원
 보안수준에 따른 파일시스템 보안 지원
 다국어 지원
 유니코드 지원 (JavaTM )
 로케일(locale) 지원 (C/C++)
 C/C++ 및 Java 언어로 작성된 응용프로그램의 실행 환경 제공
 Java 언어로 작성된 프로그램에 대해 고속의 바이너리 코드 실행 환경 제공
 다중 응용프로그램의 동시 실행 환경을 제공하며, 다중 응용프로그램간 통신 기능 제공
 다운로드에 의한 동적 공유 라이브러리를 지원함에 따라, 동적으로 API를 추가/갱신하는 기
능 제공 (선택 규격)
 고효율적인 메모리 관리
 메모리 압축(Memory Compaction) 기능과 함께 자동 메모리 정리(Garbage
Collection) 기능 제공
 응용프로그램 종료시 자동으로 메모리 해제 기능 제공
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 복수 개발 언어 지원
 응용프로그램 개발 언어로 C/C++과 Java를 모두 지원
 Basic API에 C/C++언어와 자바언어의 API와 문맥 모두 지원
C 언어
#include "MCApp.h"
unsigned char *bpl;
int clip[] = {0, 0, 120, 160};
void handleCletEvent(int type,int parm1,int parm2)
{
if(type == MH_KEY_PRESSEVENT){
stage = (stage + 1) % 5;
MC_grpInitContext(&cxt);
MC_grpFillRect(bpl, 0, 0, width, height, &cxt);
MC_grpFlushLcd(0, bpl, 0, 0, width, height);
}
}
한국산업기술대학교
Java 언어
import org.kwismsp.lcdui.*;
abstract public class Canvas extends Card
{
public boolean keyNotify(int type, int key)
{
Display dis = Display.getDefaultDisplay();
dis.removeCard(this);
return true;
}
}
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 COD 서비스 구조
 바이너리 형식의 응용 프로그램 성능 우수 - 자바 언어에 적용
 세부 머신 코드규격 정의 안함 - 플랫폼 구현 업체의 자유 경쟁으로 표준 채택
Java to C/C++ Transcoder
자바
클래스
파일
자바
클래스
분석기
다운로드
이미지
한국산업기술대학교
C/C++
소스
생성기
자바
분석
정보
C/C++ Header &
Source Files
Additional Header &
Source Files
Makefile
생성기
패키징
플랫폼용
실행
이미지
Makefile
Target
Compiler
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 자바 성능 향상 기법
 인터프리터 방식

자바 바이트 코드를 소프트웨어 인터프리터로 수행하는 방식으로, 초기의 JVM에서 사용되었으며, 속도가 느린 단점

인터프리터 부분을 CPU칩에 최적화하도록 엔지니어링하면 어느 정도 빠른 속도를 낼 수 있지만, 바이너리 플랫폼과의 격차를
해소하기에는 역부족
 하드웨어 가속기 사용 방식

소프트웨어 인터프리터를 하드웨어 가속기로 대처하는 방식으로, 하드웨어 가속기가 JVM의 모든 기능을 수행하는 것이 아니
라, 자주 사용되는 일부 명령외의 복잡한 명령은 트랩(trap)이 발생되어 소프트웨어가 수행하는 방식

상당한 속도 개선이 있으나 트랩으로 인한 수행상의 손실이 발생하고, 부가적인 하드웨어로 인한 비용과 전원 소모 고려 필요
 JITC(Just In Time Compiler) 방식

수행 중에 바이트 코드를 컴파일해 CPU에 맞는 바이너리 코드를 생성하는 방식으로, 컴파일 속도가 중요하기 때문에 최소한의
최적화만 수행

메모리 요구량이 커서 메모리 제약이 많은 단말기에서 적절한 방식은 아니며, 최근 Sun에서 몬티라는 이름으로 J2SE에서 사용
하던 핫스팟 기술을 최적화해 스마트 폰과 같은 하이엔드 J2ME에 적용 시도 중  많은 리소스를 필요로 한다는 점과 기술 사
용에 대한 추가 로열티를 지불해야 하는 부담
 AOTC(Ahead Of Time Compiler) 방식

바이트 코드 형태로 되어 있는 자바 애플리케이션을 수행되기 전에 미리 컴파일해 단말기 CPU에 최적화된 바이너리 코드를 생
성하는 방식으로, JIT 컴파일러에 비해 충분한 최적화 시간 보장

J2SE에서는 많은 연구 프로젝트가 있었으나 하드웨어 성능이 빠른 속도로 발전해 감에 따라 적절한 시장을 찾지 못하고 있으
며, 자바 바이트 코드를 바이너리 코드로 변환하면서 코드 크기가 커지는 문제도 해결해야 하는 과제
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 자바 바이너리 코드 실행 성능
속도 10배 이상 향상
Java VM Normal
Java class file
Memory
Java VM
i
CPU
Java
Bytecode
Java VM
For Java
Chip
Very
Fast
Relocatable
Binary file
Memory
Java
Bytecode
Machine Code
Reference
Fetch
10% reduction
in code size
Java
Binary
Java class file
Memory
Microprocessor
Architecture Core
한국산업기술대학교
Java
Accelerator Fast
CPU
Micro
-processor
Architecture
Core
Trap
Java
Coprocessor
CPU
Microprocessor
Architecture Core
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 다국어 지원
 유니코드 지원 (JavaTM )
 WIPI 플랫폼은 자바 응용 프로그램을 위해 유니코드를 지원해야 하며, 입출력시 문자열은 지역 특성에 맞
게 해당 문자 코드로 변환
 한국의 경우는 유니코드 문자열과 EUC-KR 문자셋 문자열로 서로 변환
 로케일 (locale) 지원 (C/C++)
 WIPI 플랫폼은 C 응용 프로그램에 대해 지역 정보를 참조하여 지원하는 문자셋 인식  한국의 경우는
EUC-KR 문자셋
 WIPI 플랫폼의 C 응용 프로그램에서는 유니 코드를 지역 문자셋으로 상호 변환하는 API 제공
 확장 유니 코드
 EUC-KR 문자셋에는 유니코드에 대응되지 않는 그래픽 문자 존재  이를 지원하기 위해 유니코드 사양
에서 Private Use (0xE000 – 0xF8FFF) 영역을 이용하는 확장 유니코드 사용
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 보안 기능
 위피 보안  플랫폼 수준의 보안, API 수준의 보안, 디렉터리 수준의 보안, 서비스 수준의 보안
 플랫폼 보안
 단말기에는 보호해야 할 개인 정보 데이터가 있으며, 항상 통화 대기 상태를 유지해야 하므로 응용 프로그
램이 사용하는 플랫폼 API와 단말기 내의 데이터에 대한 접근 권한을 명확히 해야 함
 시스템 (System) 수준 - 완전히 신뢰할 수 있는 것으로 보고 모든 접근 허용
 컨텐츠 개발자 (CP) 수준 - 이미 알려진 CP들은 어느 정도 신뢰할 수 있다고 보고, 단말기에 심각한
영향을 미치지 않는 범위 내에서 접근 허용
 일반 (Public) 수준 – 가장 낮은 수준의 보안 Level로, 보통 신뢰할 수 없는 일반 개발자가 제공하는
응용프로그램에 적용, 단말기에 영향을 미칠 수 있는 영역이나, 개인정보 등에 접근 제한
 API 보안
 API 별 보안 지원을 위해 특정 API 그룹을 보안 대상 그룹으로 구분, 해당 그룹별로 보안 수준 지정
 API 보안 그룹의 접근 수준과 보안 수준 설정은 플랫폼 이식(Porting) 시점에 적용
 No ACCESS : 허용 하지 않음
 READ ONLY : 읽기만 허용
 WRITE ONLY : 쓰기만 허용
 READ/WRITE : 읽기, 쓰기 모두 허용
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 보안 기능
 디렉터리 보안
 WIPI 플랫폼은 다음 세가지의 디렉터리 접근 방식을 지원
 개인 디렉터리(Private Directory)  다른 모든 응용프로그램들은 특정 응용프로그램에서 할당 받
아 사용하는 데이터 영역에 접근할 수 없음
 응용 프로그램 공유 디렉터리 (Application Shared Directory)  미리 약속된 응용 프로그램들은
특정 응용프로그램에서 할당 받아 사용하는 데이터 영역에 접근 가능
 시스템 공유 디렉터리 (System Shared Directory) - 접근 권한을 갖는 모든 응용 프로그램들이 접
근할 수 있는 데이터 영역
 서비스 보안
 서비스 시, 보안을 위해 자바 언어로 개발된 응용 프로그램들의 Code-Level 안정성 및 보안성을 확인할
수 있는 방법 적용
 신뢰 할 수 있는 모든 응용 프로그램은 응용 프로그램 명세 파일과 실행 코드에 서명을 받도록 하는 방법
적용
 응용 프로그램 서명
 응용 프로그램의 Descriptor File 및 실행코드에 서명
 유능하고 신뢰할 수 있는 기관에서 인증을 하여야 함
 한국에서는 TTA가 인증기관 역할을 함
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 메모리 관리
 WIPI 플랫폼은 제한된 메모리를 갖고 있고, 기타 다른 플랫폼과 달리 다중 응용 프로그램이 수행 되고 있으므로
효율적인 메모리 관리 기능이 요구
 메모리 압축 (Memory Compaction) 기능
 플랫폼에서 동적으로 사용하는 메모리를 할당/해제할 때 메모리 단편화를 줄이기 위해 메모리 압축
 메모리 압축 기능은 호출하는 것이 아니라 플랫폼에서 자동 수행
 자동 메모리 정리 (Garbage Collection) 기능
 자바 언어 문맥에 따라 Garbage Collection지원
 즉 컨텐츠 개발자는 메모리 관리를 신경 쓰지 않아도 되므로 매우 편리한 기능이지만, 빠른 메모리 확보를
위해 개발자가 가비지 컬렉션을 호출할 수 있음
 자바 스택
 플랫폼은 자바 응용 프로그램 별로 스택을 할당/해제할 수 있어야 하고, 각 응용 프로그램별 스택 크기를
동적으로 변환 가능
 자바 응용 프로그램이 메모리 한계를 넘는 스택 할당 요청 경우, 플랫폼은 예외 상황을 응용 프로그램에
전달하며, 예외상황 발생 후 플랫폼은 정상 동작하도록 구성
 공유 메모리 관리 기능
 응용 프로그램이 사용하는 메모리는 서로 독립적이어야 하고, 플랫폼은 응용 프로그램간에 공유할 수 있
는 메모리 지원, C 언어의 경우 언어의 특성상 포인터를 사용하므로 예외로 처리
 응용프로그램 종료 시, 자동 메모리 해제 기능
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 다중 응용 프로그램 실행
 다중 응용프로그램의 동시 실행 환경을 제공하며, 다중 응용 프로그램 간 통신 기능을 제공.
 동시에 여러 응용 프로그램이 메모리에 적재, 동시 수행
 실행 시 실행 우선 순위 부여
 프로그램간 통신 지원을 위해 공유 메모리와 이벤트 상호 전달 방법 제공
 PC상의 <Alt+Tab> 기능과 유사
 다중 응용프로그램 기능
 애플리케이션 호출 : 다른 애플리케이션을 구동할 수 있는 기능
 애플리케이션 간 통신 : 애플리케이션 간에 공유 메모리를 사용해 통신 하는 기능
 종료 후 자원 자동 반환 : 하나의 애플리케이션이 종료될 때 사용한 메모리나 자원을 명시적으로 해제하지
않아도 모든 플랫폼에 반환되는 기능
 애플리케이션 간 전환 : 여러 개의 애플리케이션이 동시에 수행될 때 사용자의 요구에 따른 애플리케이션
전환 기능
 애플리케이션 간 메모리 보고 : 애플리케이션 간에 서로 접근할 수 없는 독립적인 메모리 유지 기능
 메모리 단편화 방지 : 여러 개의 애플리케이션이 동시에 수행 되면 메모리 요구량이 많아 진다. 애플리케
이션이 메모리를 최적화해 사용하도록 메모리 압축 및 가비지 컬렉션 기능 제공
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 다중 응용 프로그램 실행 예제
 WIPI는 독립적으로 수행되는 다중 응용 프로그램을 지원하며, 다중 응용 프로그램 간 통신 기능 지원
 다중 응용 프로그램 실행 예제
 다음 예는 AddressBook 프로그램이 SendMail 프로그램을 호출 할 때 Email Address를 전달하고, 메일
을 보낸 후 다시 AddressBook으로 돌아오는 과정
WAM*에서
AddressBook
응용프로그램을
실행시킨다.
한국산업기술대학교
AddressBook에
서 메일 수신자를
선택하고, 편지보
내기 메뉴를 선택
한다. 이때 e-mail
주소가 전달된다.
SendMail 응용프로
그램이 실행되면서
AddressBook에서
전달받은 e-mail 주
소가 도시되고, 메
일을 편집해서 보낸
다.
SendMail이 종료되
면, 다시
AddressBook 으로
복귀한다.
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 다중 응용 프로그램 실행 예제
 WAM (WIPI Application Manager)에 의해 다중 응용 프로그램 관리
 APP1과 APP2 두개의 응용 프로그램 동시 실행 예제
1: 초기 상태.
WAM
2: 사용자가 APP1를 수행시킨다.
WAM
APP1
WAM
APP1
APP1
WAM
APP1
시스템 : WAM 이 비활성화 되며,
APP1이 활성화 된다. 이때부터
APP1은 화면과 키보드를 장악한다.
3: 사이드 셀렉트키를 누른다.
시스템 : WAM이 활성화 되며,
APP1이 비활성화 된다.
4: 사용자가 APP2를 수행시킨다.
시스템 : WAM이 비활성화 되며,
APP2이 활성화 된다.
APP2
*) WAM : WIPI Application Manager
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WIPI 플랫폼 기능
37. 모바일 표준 플랫폼 WIPI - II
 동적 API 추가 갱신 기능
 다운로드에 의한 DLL(Dynamic Link Library)을 지원함에 따라 무선망을 통해 동적으로 API를 추가/갱신하는
기능 제공
 다운로드 되면 바로 플랫폼에서 DLL을 활성화 시킴으로써 즉시 적용, DLL 삭제시 원상태로 회복되는 기능
 동적 API 추가 예제
 CommandBar 사용자 인터페이스 컴포넌트의 형태를 동적으로 바꾸는 예  DLL을 설치하면
CommandBar의 모양이 바뀌고, WAM에서 삭제하면 다시 원래의 모습으로 돌아 감
 테마 서비스로 사용 가능
Download
SysDLL
CommandBar
Component API를
다운로드 한다.
한국산업기술대학교
Delete
SysDLL
다운로드된
CommandBar 컴포넌
트를 삭제하면, 원래의
CommandBar 컴포넌
트로 복원된다.
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
요약 정리
37. 모바일 표준 플랫폼 WIPI - II
이번 시간에 소개했던 내용을 정리해 봅시다.
1)
WIPI 플랫폼의 구조에 대해 알아보았습니다.
2)
WIPI 플랫폼의 다양한 기능에 대해 알아보았습니다.
다음 시간에는 모바일 표준 플랫폼 WIPI – III에 대하여 학습하시게 될 것입
니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
평가 하기
문제1
37. 모바일 표준 플랫폼 WIPI - II
WIPI가 지원하는 두가지 개발 언어는 무엇입니까?
정답은 다음과 같습니다.
C 언어와 Java 언어
해설내용: WIPI는 C 언어와 자바 언어의 복수 개발 언어를 지원합니다.
문제2
WIPI가 제공하는 다양한 기능 중 세가지만 말해 보시오
정답은 다음과 같습니다.
기능 API, 다중 응용 프로그램 실행 기능, 동적 API 추가 갱신 기능 등
해설내용: WIPI 플랫폼은 응용 프로그램 관리 기능, API 관리 기능, 보안 기능, 다국어 지원, C 및
자바 복수 언어 지원, 효율적인 메모리 관리 기능, 다중 응용 프로그램 실행 기능, 동적 API 추가 갱
신 기능 이 있습니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
평가 하기
문제3
37. 모바일 표준 플랫폼 WIPI - II
WIPI가 제공하는 동적 API 추가, 갱신 기능은 무엇입니까?
정답은 다음과 같습니다.
단말기 내에 탑재된 기본 애플리케이션 기능 API 외에 추가 DLL을 네트워크로 다운로드 받아 설치할
수 있는 기능
해설내용: DLL은 동적 링크 라이브러리의 약자로, 다른 애플리케이션에서 사용할 수 있도록 묶은
기능 함수 꾸러미입니다. 위피의 동적 API 추가 기능은 단말기 내에 탑재된 기본 애플리케이션 기
능 API 외에 추가 DLL을 네트워크로 다운로드 받아 설치할 수 있는 기능을 말합니다.
한국산업기술대학교
온라인 기술교육 교재 개발