300 likes | 521 Views
1 장 위피 입문 . 개요. 모바일 시스템 위피의 정의 위피 C, 위피 JAVA 플랫폼 상세 구조 Jlet API 둘러 보기 모바일 프로그래밍 Jlet 과 Midlet 용어 정의 표준 플랫폼의 주요 기능 규격. 모바일 시스템. 응용프로그램은 휴대폰의 어디에 위치하며 어떻게 실행되는가 ?. 휴대폰 추상화 계층. 휴대폰 추상화 1 계층. 1 계층 Handset 하드웨어 계층 - 일반 PC 와 크게 다를 바 없다 . 출력장치 - LCD 입력장치 - 키패드 처리담당 - CPU
E N D
개요 • 모바일 시스템 • 위피의 정의 • 위피 C, 위피 JAVA • 플랫폼 상세 구조 • Jlet API둘러 보기 • 모바일 프로그래밍 • Jlet과 Midlet • 용어 정의 • 표준 플랫폼의 주요 기능 규격
모바일 시스템 • 응용프로그램은 휴대폰의 어디에 위치하며 어떻게 실행되는가?
휴대폰 추상화 1계층 • 1계층 Handset 하드웨어 계층 -일반 PC와 크게 다를 바 없다. • 출력장치- LCD • 입력장치- 키패드 • 처리담당- CPU • 저장장치- 메모리 • 통신장치 등.
휴대폰 추상화 2계층 • 2계층- Handset Basic 소프트웨어 계층. • 하드웨어를 제어하는 소프트웨어. • 시스템 소프트웨어 • 응용 프로그램- 특정한 문제를 해결하기 위해 개발된 소프트웨어 • 시스템 소프트웨어는 하드웨어 자원의 할당과 응용을 제어하여 응용 소프트가 실행 될 수 있게 한다. • 디바이스 드라이버, 음성 통신기능 ,OS(운영체제).
휴대폰 추상화 3계층 • 3계층- 무선 인터넷 플랫폼 계층. • 무선 Application들의 실행 환경 역할. • 응용프로그램 다운로드 서비스를 가능하게 해 주는 환경. • 기본 소프트웨어와 응용 소프트웨어 사이에 위치한 Middleware. • 개발자 입장에서 바라본 무선 인터넷 플랫폼의 필요성. • 첫째 응용프로그램에 공통의 프로그래밍 인터페이스를 제공. • 둘째 응용프로그램에 편리한 개발 환경을 지원. • 셋째 Upgrade의 편리성과 소프트웨어 Download 지원.
휴대폰 추상화 4계층 • 4계층- 응용 프로그램 또는 컨텐츠 계층 • 프로그램이 이 계층에서 수행.
위피의 정의 • 위피(WIPI)란 -Wireless Internet Platform for Interoperability -상호 운용을 위한 무선 인터넷 플랫폼
모바일 표준 플랫폼의 필요성 • For Contents Provider -CP has to produce many versions of the same contents. -Too many man power is wasted for managing version issues. -Thus, less human resource for service planning -> low quality contents • For OEM/ODM -many platform must be ported for each phone model produce. -MO-wise, Platform-wise diversion of man power. • For User -More expensive contents -Less freedom of choosing contents (since usually contents is not available for all the platforms)
위피 역사 • 2001.7 KWISF의 모바일 표준 플랫폼 그룹 출발 • 2001.9 모바일 플랫폼을 위한 공통 요구사항 정의 • 2001.11 모바일 플랫폼 개발 프로젝트 주창 • 2002.2 WIPI 1.0 release • 2002.5 TTA 표준으로 채택 • 2003.3 WIPI 1.1 release • 2003.4 WIPI 1.2 release • 2004.2 WIPI 2.0 release • 2004.7 WIPI 2.0.1 release • 2006. WIPI 3.0 발표 예정
위피 C와 위피 JAVA 휴대폰 추상화(2)
Clet, Jlet, Midlet • Clet • 모바일 표준 플랫폼 규격에 따라 작성된 C언어 응용프로그램. • Jlet • 모바일 표준 플랫폼 규격에 따라 작성된 Java언어 응용프로그램. • Midlet • MIDP 규격에 따라 작성된 Java언어 응용 프로그램 • 참고: Midlet은 위피 버전 2.0부터 포함 • Midlet과 Jlet은 JAVA언어를 모태로 하기 때문에 혼용 시 문제가 될 수 있다.
-let의 의미 Clet은 C언어 Jlet의 JAVA –let은 응용 프로그램이 적은 양의 코드로 이루어졌다는 것을 나타낸다.
Clet vs Jlet • Clet과 Jlet은 기능면에서는 동일 • 플랫폼에서는 어떤 언어로 작성하던 상관 없이 바이너리로 수행 • 개발자는 선호하는 언어를 사용하여 개발가능 • Jlet이 강력한 이유 • 대부분의 응용프로그램을 쉽게 작성 • 포인터를 사용하지 않기 때문에 잘못된 포인터 사용으로 • 시스템 전체를 망치는 것으로부터 보호 할 수 있다. • 개발자의 기반이 넓다. • 보안성이 우수 • 이동통신사와 CP업체에서도 Jlet을 선호 • 많은 커뮤니티
HAL 계층 • HAL은 Handset Hardware & Native System Software 계층과 WIPI플랫폼 사이에서 하드웨어 독립성을 지원하기 위한 계층이다. • 플랫폼의 하드웨어 독립성을 유지한다는 것은 추상화했다는 것이며 플랫폼의 상위 계층들은 HAL API만을 호출해서 하드웨어 자원에 접근하게 된다. 이를 통해 단말기의 네이티브 시스템에 대한 추상화가 이루어지고 하드웨어 독립적으로 플랫폼을 구성할 수 있다. HAL의 목적은 O/S에 대한 이식성 향상에 있으며, 각 단말기 시스템에 근거하여 HAL API만 구현하면 플랫폼 내부의 프로그램 코드를 변경하지 않고도 플랫폼 전체의 이식이 가능하다. • 즉, 개발자들은 세부적인 시스템에 상관 없이 프로그래밍을 쉽게 할 수 있는 것이다.
플랫폼 상세 구조(계속) • Basic API -사용하는 플랫폼에서 지원하는 필수 API 모음 -C는 기본 API에 정의된 C 언어용 API와 ANSI C 언어 문맥을 지원. -JAVA는 필수 API에 정의된 Java 언어용 API와 JAVA Programming Language 2nd edition 문맥을 지원. • Dynamic Component는 App Manager를 통해 추가되거나 갱신할 수 있는 API및 Component • 플랫폼은 API를 무선망을 통해서 추가 또는 갱신할 수 있으며, 이는Dynamic Linking Library라고 불리는 DLL을 통해 이루어져야 한다.
플랫폼 상세 구조(계속) • DLL은 플랫폼에서 새로운 API를 추가하거나, 기존 API를 갱신하는데 있어서 수단이 된다. • DLL은 구현과 인터페이스로 분리. • DLL 구현물의 관리를 위해 플랫폼은 API 추가/갱신에 따른 버전 관리 및 설치, 삭제 기능을 가져야 함. • DLL사용자(응용 프로그램 개발자)는 인터페이스를 통해 DLL의 특정 기능(라이브러리)을 사용 할 수 있다. • DLL, 인터페이스는 단말기 기본 내장으로 탑재될 수도 있고, 어플리케이션 관리자나 사용자의 지정에 의해 다운로드 될 수도 있다.
Jlet API둘러 보기 java 패키지는 java.lang, java.io, java.util 패키지로 구성 org.kwis 패키지는 msf와 msp패키지로 구성. JAVA API 구성도
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
msf와 msp패키지 • MSF -Mobile Standard Foundation - Mobile용 디바이스를 위한 기반이 되는 API. • 입출력 기능, 네트워크, 보안, 국제화등을 지원. • MSP Mobile Standard Profile - 모바일용 디바이스를 위한 Profile
단말기 최소 권장 사항 • 디스플레이: 스크린 크기: 96x54 이상 • 색 상: 회색조 4가지 이상 또는 천연색 256가지 이상 • 입력 장치: 키 패드 • 사운드 장치: 진동 및 비프 음 • 네트워크: 무선 및 시리얼을 통한 전송 • 비휘발성(Non-Volatile) 메모리 • 플랫폼 라이브러리가 사용할 수 있는 비휘발성 메모리 1MB 이상 • 응용프로그램 관리자 및 기본 응용프로그램에서 사용할 수 있는 비휘발성 메모리 400KB 이상 • 응용프로그램이 사용 가능한 파일 시스템 공간 500KB 이상 • 휘발성(Volatile) 메모리 • 응용프로그램에서 사용 가능한 HEAP 영역 300KB 이상 • 플랫폼 라이브러리에서 사용 가능한 영역 20KB 이상
Jlet과 Midlet • WIPI2.0 • MSF/MSP와 CLDC/MIDP API 중에는 같은 기능을 하는 것들이 중복. • 구현된 플랫폼에 따라 혼용 시 문제가 될 수 있음. • 플랫폼은 호환성이 보장 되어야 한다. • 첫째, 동일한 패키지 이름을 가지는 부분으로 플랫폼은 동일한 기능을 제공해야 한다. (책 28페이지 참조)
Jlet과 Midlet(계속) • 둘째, 같은 기능을 가지지만, 구현된 내용이 달라 독립적으로 사용되어야 하는 부분. 이 경우 플랫폼은 동일 패키지 그룹에 속하는 MSF/MSP와 CLDC/MIDP 패키지(하위 패키지 포함)들을 혼용하지 않고 각기 독립적으로 사용한 경우에 호환성을 보장해야 한다. (책 28페이지 참조)
Jlet과 Midlet(계속) • 셋째, 기능이 어느 한 프로파일에만 존재하여 타 프로파일의 기능을 불러 사용할 수 있는 경우. 이 경우 서로 대응하는 패키지가 없으므로 플랫폼은 상호 참조하여 사용할 수 있도록 호환성을 보장해야 한다. (책 29페이지 참조)
용어 정의 • 모바일 플랫폼 • 모바일 표준 플랫폼 규격에 따라 작성된 응용프로그램을 실행 시킬 수 있는 단말기의 실행 환경을 모바일 플랫폼이라 하며, 이 플랫폼은 응용프로그램 관리와 API 관리 기능을 포함해야 한다. • Clet • 모바일 표준 플랫폼 규격에 따라 작성된 C언어 응용프로그램이다. 이 응용프로그램은 응용프로그램 생명주기를 따라야 한다. • Jlet • 모바일 표준 플랫폼 규격에 따라 작성된 Java 언어 응용프로그램이다. 이 응용프로그램은 MSP(Mobile Standard Profile)의 응용프로그램 생명주기를 따라야 한다.
용어 정의(계속) • 단말기 기본 소프트웨어 • 플랫폼이 탑재되는 기반 소프트웨어이다. HAL은 하단의 단말기 기본 소프트웨어와 플랫폼을 연결 해 주는 역할을 한다. • 태스크 • 단말기 기본 소프트 상에서 정의되는 독립적 수행 단위이다. 각 태스크는 별도의 프로그램 스택을 가지고 독립적으로 실행된다. • 다중 응용프로그램 수행 • Clet, Jlet들이 모바일 표준 플랫폼 위에서 서로 독립된 메모리 공간을 가지고 동시에 수행되는 것을 말한다.
용어 정의(계속) • AOTC (Ahead-Of-Time Compiler) • Java를 컴파일하여 생성되는 중간코드(byte code)를 플랫폼에서 실행 가능한 머신 코드로 변환해주는 컴파일러이다. • HAL(Handset Adaptation Layer) • Handset을 추상화 하기 위한 계층으로 단말기 제조사들이 구현해야 할 API 계층이다. • MSF(Mobile Standard Foundation) • Mobile용 디바이스를 위한 기반이 되는 API이다. 입출력 기능, 네트워크, 보안, 국제화 등을 지원한다. • MSP (Mobile Standard Profile) • MSF기반의 Mobile Device를 위한 Profile이다.
용어 정의(계속) • CLDC (Connected Limited Device Configuration) • 가상 머신 기반의 모바일용 디바이스를 위한 Configuration 이다. CLDC는 가상 머신과 핵심 API로 이루어져 있고, 입출력 기능, 네트워크, 보안, 국제화 등을 지원한다. • MIDP (Mobile Information Device Profile) • CLDC기반의 단말기를 위한 Profile 이다. • MIDlet • MIDP 규격에 따라 작성된 Java 언어 응용프로그램이다. 이 응용프로그램은 MIDP의 응용프로그램 생명주기를 따른다.