340 likes | 641 Views
모바일 시스템의 이해. Lecture #1. 모바일 단말기. 모바일 단말기 (Mobile Terminal) 작은 액정 , 적은 양의 메모리 , 높지 않는 성능의 프로세서 등을 탑재한 휴대 가능한 이동성 단말기 ( 휴대폰 등 ) 무선 네트워크를 통해 통신이 가능 하드웨어 제약으로 인해 응용프로그램의 크기 제한 키 버튼이나 터치 패드 수준의 단순한 입출력 장치 주전원인 배터리의 절약 등을 고려 모바일 시스템 이동성 단말기에 모바일 응용프로그램을 실해하고 데이터를 저장하며 견고한 무선 통신을 지원하는 제반 환경.
E N D
모바일 시스템의 이해 Lecture #1
모바일 단말기 • 모바일 단말기(Mobile Terminal) • 작은 액정, 적은 양의 메모리, 높지 않는 성능의 프로세서 등을 탑재한 휴대 가능한 이동성 단말기 (휴대폰 등) • 무선 네트워크를 통해 통신이 가능 • 하드웨어 제약으로 인해 응용프로그램의 크기 제한 • 키 버튼이나 터치 패드 수준의 단순한 입출력 장치 • 주전원인 배터리의 절약 등을 고려 • 모바일 시스템 • 이동성 단말기에 모바일 응용프로그램을 실해하고 데이터를 저장하며 견고한 무선 통신을 지원하는 제반 환경 Mobile Programming
모바일 단말기 소프트웨어 계층 구조 • 모바일 단말기의 소프트웨어 계층 • 모바일 단말기 하드웨어 제약 하에 응용프로그램 개발 모바일 단말기를 운용하는 기반 소프트웨어 계층 구조 이해 필요 • 4 개의 층으로 이루어진 계층적 구조 모바일 응용프로그램 (Applications or Contents) 계층 4. 게임 등의 응용프로그램들 계층 3. 인터넷이 가능하도록 하는 미들웨어 계층 4의 응용프로그램이 계층 1,2의 하드웨어와 무관하게 실행될 수 있도록 지원 무선 인터넷 플랫폼 (Wireless Internet Platform) 계층 2. 시스템 소프트웨어 계층 운영체제, 디바이스 드라이버 등 symbian OS, Palm OS, Window Mobile, Linux 등 핸드셋 기본 소프트웨어 (Handset Basic Software) 핸드셋 하드웨어 (Handset Hardware) 계층 1. 휴대폰 하드웨어 LCD, 키패드, CPU, 메모리, 저장 장치 등 Mobile Programming
위피(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
위피(WIPI)의 개요 (2) • 상호운용성의 필요성 • 상호운용성(Interoperablility) • 응용프로그램 등 콘텐츠들이 다양한 모바일 단말기에서 상호 실행될 수 있는 호환성 • 기존의 모바일 플랫폼의 문제점 : 상호운용성의 결핍 • 이동통신사 간의 그리고 이동통신사 내의 디바이스들 사이의 하드웨어 및 모바일 플랫폼의 다양화 • 프로그램 개발자는 다양한 디바이스에 맞게 프로그램 수정 필요 • 개발자, 콘텐츠 제공자, 이동통신사 모두에게 시간, 금전 손실을 유발 • WIPI의 필요성 • 하나의 응용 프로그램을 타회사와 이기종에서 실행할 수 있는 상호운용성을 지원하는 플랫폼이 필요 Mobile Programming
위피(WIPI)의 개요 (3) • 위피(WIPI)? • 휴대폰으로 무선 인터넷 사용 가능하도록 지원하는 계층 3의 무선 인터넷 플랫폼에 해당 • 계층 4의 응용 프로그램에게 모바일 단말기를 다루는 API를 지원 • 계층 1,2와 독립적인 응용 프로그램 개발 및 실행이 가능하도록 지원 휴대폰 기종간의 상호운용성을 제공 • 휴대폰 운영체제와 비슷한 역할 • 휴대폰의 하드웨어와 기본 운영체제 위에서 동작하여 휴대폰의 모든 동작을 가능하도록 관련 기능을 제공하는 가상 환경을 지원 • 모든 모바일 컨텐츠는 위피 플랫폼을 이용하여 다운로드하도록 표준화 • 벨소리, GPS, 모바일 뱅킹, 게임, 전화번호부, SMS, 영상 통화 등 모든 컨텐츠 • 무선 인터넷과 관계없는 것까지 모두 다운로드 방식 • 유선을 이용한 컨텐츠 탑재 불가 • 이통사의 수입원 Mobile Programming
위피(WIPI)의 개요 (4) • 위피 표준 제정에 대한 요구 사항들 • 플랫폼과 애플리케이션 모두 하드웨어에 대해 독립적으로 운영되어야 한다. • 다양한 종류의 단말기와 애플리케이션의 호환성을 갖추어야 한다. • 단말기 구동 시점부터 플랫폼이 구동되어야 한다. • 플랫폼의 사용자 인터페이스가 디스플레이를 관장한다. • 서버에서 대부분을 처리하는 씬클라이언트로 한다. • VM 대신 애플리케이션을 입출력할 수 있고 모듈을 읽을 수 있는 API를 포함한다. Mobile Programming
위피(WIPI)의 개요 (5) • 위피 2.0의 구조 • 위피 플랫폼의 소프트웨어 계층 : HAL + Runtime engine(실행엔진) + BASIC API • 위피 표준 규격에서는 HAL과 Basic API에대한 표준화를 제공, 실행엔진은 표준화 대상이 아님 위피 플랫폼 Mobile Programming
위피(WIPI)의 개요 (6) • 위피 2.0 표준 플랫폼 구조도 • 위피 응용 프로그램의 실행엔진 • 링크 & 로더 기능, 메모리 관리, 리소스 관리, 가비지 컬렉션 기능 수행 • 단말기용 API 정의 • 하드웨어의 독립성 지원 • CDMA망에서는 Rex OS를 지칭 • 간단한 단말기 운영체제 기능과 통신 기능 및 각종 디바이스 드라이버 포함. Mobile Programming
위피(WIPI)의 개요 (7) • 위피의 구조 • HAL(Handset Abstraction Layer) • 휴대폰 하드웨어와 WIPI 플랫폼 사이의 하드웨어 독립성을 지원하기 위한 계층 • 플랫폼 상위 계층에서는 HAL API를 통해 하드웨어에 접근하게 되는 단말기 하드웨어에 대한 추상화 지원 • RuntimeEngine • 위피 응용 프로그램을 실행시키는 실행 엔진 • 링크 & 로더 기능, 메모리 관리, 리소스 관리, 가비지 컬렉션 기능 등을 수행 • 바이트 코드에 대한 인터프리터 기능을 제외하고는 Java VM과 거의 동일한 기능을 제공 • BASIC API • WIPI C와 WIPI Java, J2ME 지원, 응용 개발자를 위한 필수 API Mobile Programming
위피(WIPI)의 개요 (8) • WIPI 응용 프로그램 • Clet : C 언어로 작성 • WIPI C 라이브러리 사용 • Jlet : Java 언어로 작성 • WIPI java 라이브러리 사용 • Midlet : Java 언어로 작성 • J2ME를 사용 • WIPI 응용 프로그램 개발환경으로 Java를채택한 이유? Mobile Programming
위피(WIPI)의 개요 (9) • 모바일 단말기의 무선 인터넷 플랫폼 비교 : 3 가지 Mobile Programming
위피(WIPI)의 개요 (10) • 모바일 단말기의 무선 인터넷 플랫폼 비교 : 3 가지 • AOTC(Ahead of Time Compiling) • 자바 바이트 코드가 다운로드 전에 단말기의 바이너리 코드로 미리 컴파일 • 다운로드 시에는 바이너리 직접 다운로드하여 단말기에서 바로 실행 • 실행시간을 단축 • 시스템 메모리 침범, 메모리 낭비 등의 문제점을 차단 • COD(Compile-On-Demand) 서버 : ATOC를 수행하는 서버 Mobile Programming
위피(WIPI)의 개요 (11) • 위피 2.0의 주요 기능 규격 • 위피 표준안 : http://www.wipi.or.kr • 주요 기능 규격 • 응용프로그램 머신 코드 규격 • 플랫폼은 머신 코드 형태의 응용프로그램을 다운로드받아 수행 • 자바 응용프로그램의 경우, 바이트코드를 AOTC를 통해 머신 코드를 생성할 수 있다. • 다중 응용프로그램 수행 • 플랫폼은 여러 응용프로그램을 동시에 실행할 수 있어야 한다. • 응용 프로그램간 우선 순위를 두고 가장 높은 우선 순위의 응용 프로그램이 실행되어야 한다. • 플랫폼은 응용 프로그램의 생명 주기를 관리할 수 있어야 한다. • 지원 프로그래밍 언어 • C 언어 지원, Java 언어 지원 Mobile Programming
위피(WIPI)의 개요 (12) • 위피 2.0의 주요 기능 규격 • 주요 기능 규격 • 플랫폼 보안 • 보안의 수준 : public, cp, system • 보안 대상, 자원 별등 • API 추가/갱신 지원 • 플랫폼은 API를 무선망을 통해서 추가/갱싱할 수 있으며, 이는 DLL을 통해 이루어져야 한다. • 메모리 관리 • 응용프로그램이 종료되면 자동으로 응용프로그램과 관련된 모든 메모리를 자동 반환된다. • 동적으로 사용하는 메모리를 할당/해제할 때 메모리 압축(compaction)을 할 수 있다. • 자바 언어 문맥에 따라 가비지 컬렉션을 지원해야 한다. • 플랫폼은 자바 응용프로그래별로 스택을 할당/해제할 수 있어야 한다. • 응용프로그램이 사용하는 메모리는 모두 독립적이고, 응용프로그램간 공유할 수 있는 메모리를 지원하여야 한다. Mobile Programming
위피(WIPI)의 개요 (13) • 위피 2.0의 주요 기능 규격 • 주요 기능 규격 • 응용프로그램 관리 • 다국어 지원 • CLDC/MIDP 지원 • SUN Microsystems사의 J2ME(CLDC 1.0/MIDP 2.0)를 필수 지원 • J2ME 응용 프로그램도 동작시킬 수 있어 플랫폼의 컨텐츠 수용 범위를 확대 Mobile Programming
위피(WIPI)의 개요 (14) • 위치 응용 프로그램의 개발 및 배포 과정 Applications Download 서버 단말기 개발자 Application 인증 서버 COD 서버 저장장치 바이너리 코드로 컴파일된 jar 파일, 안전확인마크가 붙은 ADF 파일 jar 및 ADF 다운로드, applicaiton 실행 application jar 파일, ADF 파일 application jar 파일, 안전확인마크가 붙은 ADF 파일 jar 및 ADF 다운로드, applicaiton 실행 Mobile Programming
위피(WIPI)의 개요 (15) • 개발자 역할 • 개발자 • 단말기에 소프트웨어를 개발하는 회사(Content Provider)나 학생과 같은 개인 • 위피 개발 도구 • 소스 프로그램 편집기 • 위피 SDK(Software Development Kit) • 이미지 편집기 • 사운드 편집기 • ADF 편집기 • 개발 결과물 • Application jar 파일 • ADF(Application Description File) 파일 Mobile Programming
위피(WIPI)의 개요 (16) • 개발자 역할 • Application jar 파일 • 위피 응용프로그램을 컴파일하여 생성된 바이트 코드 포함 • 이미지 동영상 등 응용프로그램이 실행되는데 필요한 리소스도 포함 • 배포가 가능하도록 Java 패키지 압축 형식을 압축 • ADF(Application Description File) 파일 • 응용 프로그램에 대한 설명을 담고 있는 파일 • 기본정보 • 응용 프로그램의 개발 언어, 응용프로그램의 이름 및 버전, 제작자의 이름, 만기 날짜 등 • 추가정보 • 접근 수준, 접근할 디렉토리, 단말기의 컬러레벨, 사운드 레벨 등의 보안 사항, 프로비저닝 정보 등 • Application 인증 서버에 jar 파일과 ADF 파일을 전달 Mobile Programming
위피(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
위피(WIPI)의 개요 (18) • Application 인증 • 응용 프로그램의 안정성 여부 판단 • jar 파일과 ADF 파일 이용 • 인증을 통과하면 안정성 확인 마크가 붙은 ADF 파일을 생성하여 COD 서버로 이들을 전달 • 인증 평가 기준 • 규격 - 응용프로그램이 무선 표준 플랫폼에서 정한 언어 및 데이터 형식을 유지하는지 판단 • 기능 - 테스트 수행 시 기능이 WIPI 플랫폼에 적합한지, 수행결과가 정확한지 판단 • 안정 - 응용프로그램을 구동하여 오류 상태의 이벤트가 주어졌을 때, 정상 상태로의 상태 변이가 안정적으로 이루어지는지 • 효율 - 응용프로그램 동작 시에 시스템 자원 사용이 기준치를 넘지 않는지 • CPU 점유율, 메모리 한계치, 입력에 대한 응답 시간(처리시간) Mobile Programming
위피(WIPI)의 개요 (19) • AOTC 변환 및 저장 • Jar 파일에 포함되어 있는 바이트 코드를 단말기의 기계어인 바이너리 코드로 변환 • 단말기에서 응용 프로그램의 빠른 실행을 지원 • COD(Compile-On-Demand) 서버에서 AOTC를 수행 Mobile Programming
위피 탑재 의무 철폐와 위피의 미래 • 위피 탑재 의무 철폐 • 2009년 4월부터 국내 판매 휴대폰에 위피 탑재 의무 철폐됨 • APPLE, Nokia, Google 등 외국계 휴대폰 한국 진출 • 현재 위피의 사용 수준 • 이동통신사 모두, 거의 모든 컨텐츠(약 95%)를 위피 기반으로 개발 • 응용프로그램, 과금 등 서버 포함 • 최소 5년은 위피 플랫폼을 사용할 수 밖에 없을 것으로 예측 • 외국계 OS와 위피 • 국내 이통사들, 외국계 휴대폰에 위피 플랫폼을 탑재 진행 중 • WIPI on Symbian • WIPI on Window Mobile • WIPI on Brew Mobile Programming
상용 모바일 플랫폼 비교 Mobile Programming
모바일 게임의 개요 (1) • 모바일 게임의 정의 • 각 이동 통신사의 휴대폰으로 언제 어디서나 즐길 수 있는 게임 • 모바일 게임의 특징 • 시간과 공간의 제약을 받지 않는다. • 온라인 게임에 비해 비교적 단순하다. • 몰입성이 뛰어나다. Mobile Programming
모바일 게임의 개요 (2) • 모바일 게임의 변천 • 2001년 초반 • 20kb 소용량 흑백(4gray) 미니 모바일 게임으로 처음 서비스 시작 • 스포츠 게임, 고스톱, 역할 수행 게임(RPG, Roll Playing Game) 등 • 2001년 중반 • 이동통신사의 단말기별로 여러 종류의 가상머신이 탑재된 컬러 모바일 게임 서비스 • 2003년 중반 • 3D 지원 단말기 →출시 게임 폰 등장 → 고품질, 고가의 모바일 게임 서비스 Mobile Programming
모바일 게임의 개요 (3) • 모바일 게임 장르 • 아케이드 게임 • 퍼즐/보드 게임 • 스포츠 게임 • 타이쿤 게임 • 역할 수행 게임 • 아케이드 게임 • 액션, 아케이드, 슈팅 장르의 게임 요소를 혼합 하고 있음. • 동전쌓기, 놈, 물가에 돌튕기기, 미니게임천국 등 동전쌓기 2006 Mobile Programming
모바일 게임의 개요 (4) • 퍼즐/보드 게임 • 휴대 단말기의 인터페이스에 가장 적합 • 고스톱, 테트리스, 고로고로춥, 푸키푸키, 부루마블등 • 스포츠 게임 • 야구나 골프를 소재로 한 턴 방식이 주를 이룸. • 프로야구, 팡야, 축구게임 등 IQ 무한도전 시티레이지 2008 Mobile Programming
모바일 게임의 개요 (5) • 타이쿤 게임 • 아케이드 요소와 경영 시뮬레이션 요소를 혼합한 게임 • 붕어빵, 떡뽑기, 도시락, 짜요짜요 등 • 역할수행 게임 • 사용자가 임무를 부여받아 캐릭터를 성장시켜, 특정 퀘스트나 전투를 하는 구성 • 삼국지 무한대전, 삼국 쟁패, 영웅서기-솔티아의 바람, 창세기전 등 생과일 타이쿤3 Mobile Programming 미스틱 사가
모바일 게임의 개요 (6) • 모바일 게임 플랫폼 • 휴대폰을 이용해 인터넷에 접속하여 모바일 게임을 다운로드받아 저장·관리· 실행하는 환경 • 모바일플랫폼의 변천 과정 브라우징 방식 1세대 VM과 네이티브 바이너리 방식의 모바일 플랫폼 2세대 모바일 플랫폼 표준화 3세대 Mobile Programming
모바일 게임의 개요 (7) • 제1세대 브라우징 방식 • WAP(Wireless Application Protocol)나 ME(Mobile Explorer)를 기반으로 유선 인터넷에 접속하여 단순한 텍스트와 이미지 위주의 콘텐츠를 주로 이용하는 방식 • 온라인 상태에서만 이용할 수 있어 속도가 제한되고, 통신 비용이 비싸며, 사용자 인터페이스가 불편해 많은 것을 지원하지 못함. • 제2세대 VM(Virtual Machine)과 네이티브 바이너리 방식 • 휴대폰 등 단말기와 독립적인 환경에서 게임이 수행되는 가상 플랫폼인 VM이 탑재된 단말기는 실행 환경이 모두 똑같은데, 이곳에서 모바일 게임이 구동됨. • 통신사에서 제공되는 단말기별로 다양한 플랫폼을 탑재하고 있음. • SK 텔레콤: GVM, GNEX, SK-VM • KTF: 퀄컴의 브루(BREW) • LG 텔레콤: 이지자바 등 Mobile Programming
모바일 게임의 개요 (8) • 제3세대 위피 표준 플랫폼 • 위피(WIPI) • 한국무선인터넷표준화 포럼(KWISF, Korea Wireless Internet Standardization Forum)에서 만든 모바일 표준 플랫폼 규격 • 이동통신 단말기에 탑재되어 무선 인터넷으로 다운로드받은 응용 프로그램이 실행되는 환경을 제공하는 데 필요한 표준 규격 • 위피 목적 • 통신사마다 서로 다른 플랫폼을 사용해 하나의 콘텐츠를 여러 버전으로 만들어야 하는 콘텐츠 제공자의 노력을 줄이고 • 소프트웨어 업체의 플랫폼별 소프트웨어 중복 개발 비용을 최소화 Mobile Programming
모바일 프로그래밍 (1) • MIDlet 기반의 모바일 프로그래밍 • 강의에서는 WIPI 플랫폼에서 실행가능한 MIDlet 기반의 모바일 프로그램 개발 과정을 학습 • 개발 실습 환경 • Ubuntu-9.10 Linux System • Eclipse • J2ME JDK • 실습 내용 • MIDlet 기반의 모바일 게임 프로그램 실습 Mobile Programming
모바일 프로그래밍 (2) • MIDlet 개발 API Mobile Programming