1 / 34

모바일 시스템의 이해

모바일 시스템의 이해. Lecture #1. 모바일 단말기. 모바일 단말기 (Mobile Terminal) 작은 액정 , 적은 양의 메모리 , 높지 않는 성능의 프로세서 등을 탑재한 휴대 가능한 이동성 단말기 ( 휴대폰 등 ) 무선 네트워크를 통해 통신이 가능 하드웨어 제약으로 인해 응용프로그램의 크기 제한 키 버튼이나 터치 패드 수준의 단순한 입출력 장치 주전원인 배터리의 절약 등을 고려 모바일 시스템 이동성 단말기에 모바일 응용프로그램을 실해하고 데이터를 저장하며 견고한 무선 통신을 지원하는 제반 환경.

mabli
Télécharger la présentation

모바일 시스템의 이해

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 모바일 시스템의 이해 Lecture #1

  2. 모바일 단말기 • 모바일 단말기(Mobile Terminal) • 작은 액정, 적은 양의 메모리, 높지 않는 성능의 프로세서 등을 탑재한 휴대 가능한 이동성 단말기 (휴대폰 등) • 무선 네트워크를 통해 통신이 가능 • 하드웨어 제약으로 인해 응용프로그램의 크기 제한 • 키 버튼이나 터치 패드 수준의 단순한 입출력 장치 • 주전원인 배터리의 절약 등을 고려 • 모바일 시스템 • 이동성 단말기에 모바일 응용프로그램을 실해하고 데이터를 저장하며 견고한 무선 통신을 지원하는 제반 환경 Mobile Programming

  3. 모바일 단말기 소프트웨어 계층 구조 • 모바일 단말기의 소프트웨어 계층 • 모바일 단말기 하드웨어 제약 하에 응용프로그램 개발  모바일 단말기를 운용하는 기반 소프트웨어 계층 구조 이해 필요 • 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

  4. 위피(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

  5. 위피(WIPI)의 개요 (2) • 상호운용성의 필요성 • 상호운용성(Interoperablility) • 응용프로그램 등 콘텐츠들이 다양한 모바일 단말기에서 상호 실행될 수 있는 호환성 • 기존의 모바일 플랫폼의 문제점 : 상호운용성의 결핍 • 이동통신사 간의 그리고 이동통신사 내의 디바이스들 사이의 하드웨어 및 모바일 플랫폼의 다양화 • 프로그램 개발자는 다양한 디바이스에 맞게 프로그램 수정 필요 • 개발자, 콘텐츠 제공자, 이동통신사 모두에게 시간, 금전 손실을 유발 • WIPI의 필요성 • 하나의 응용 프로그램을 타회사와 이기종에서 실행할 수 있는 상호운용성을 지원하는 플랫폼이 필요 Mobile Programming

  6. 위피(WIPI)의 개요 (3) • 위피(WIPI)? • 휴대폰으로 무선 인터넷 사용 가능하도록 지원하는 계층 3의 무선 인터넷 플랫폼에 해당 • 계층 4의 응용 프로그램에게 모바일 단말기를 다루는 API를 지원 • 계층 1,2와 독립적인 응용 프로그램 개발 및 실행이 가능하도록 지원  휴대폰 기종간의 상호운용성을 제공 • 휴대폰 운영체제와 비슷한 역할 • 휴대폰의 하드웨어와 기본 운영체제 위에서 동작하여 휴대폰의 모든 동작을 가능하도록 관련 기능을 제공하는 가상 환경을 지원 • 모든 모바일 컨텐츠는 위피 플랫폼을 이용하여 다운로드하도록 표준화 • 벨소리, GPS, 모바일 뱅킹, 게임, 전화번호부, SMS, 영상 통화 등 모든 컨텐츠 • 무선 인터넷과 관계없는 것까지 모두 다운로드 방식 • 유선을 이용한 컨텐츠 탑재 불가 • 이통사의 수입원 Mobile Programming

  7. 위피(WIPI)의 개요 (4) • 위피 표준 제정에 대한 요구 사항들 • 플랫폼과 애플리케이션 모두 하드웨어에 대해 독립적으로 운영되어야 한다. • 다양한 종류의 단말기와 애플리케이션의 호환성을 갖추어야 한다. • 단말기 구동 시점부터 플랫폼이 구동되어야 한다. • 플랫폼의 사용자 인터페이스가 디스플레이를 관장한다. • 서버에서 대부분을 처리하는 씬클라이언트로 한다. • VM 대신 애플리케이션을 입출력할 수 있고 모듈을 읽을 수 있는 API를 포함한다. Mobile Programming

  8. 위피(WIPI)의 개요 (5) • 위피 2.0의 구조 • 위피 플랫폼의 소프트웨어 계층 : HAL + Runtime engine(실행엔진) + BASIC API • 위피 표준 규격에서는 HAL과 Basic API에대한 표준화를 제공, 실행엔진은 표준화 대상이 아님 위피 플랫폼 Mobile Programming

  9. 위피(WIPI)의 개요 (6) • 위피 2.0 표준 플랫폼 구조도 • 위피 응용 프로그램의 실행엔진 • 링크 & 로더 기능, 메모리 관리, 리소스 관리, 가비지 컬렉션 기능 수행 • 단말기용 API 정의 • 하드웨어의 독립성 지원 • CDMA망에서는 Rex OS를 지칭 • 간단한 단말기 운영체제 기능과 통신 기능 및 각종 디바이스 드라이버 포함. Mobile Programming

  10. 위피(WIPI)의 개요 (7) • 위피의 구조 • HAL(Handset Abstraction Layer) • 휴대폰 하드웨어와 WIPI 플랫폼 사이의 하드웨어 독립성을 지원하기 위한 계층 • 플랫폼 상위 계층에서는 HAL API를 통해 하드웨어에 접근하게 되는 단말기 하드웨어에 대한 추상화 지원 • RuntimeEngine • 위피 응용 프로그램을 실행시키는 실행 엔진 • 링크 & 로더 기능, 메모리 관리, 리소스 관리, 가비지 컬렉션 기능 등을 수행 • 바이트 코드에 대한 인터프리터 기능을 제외하고는 Java VM과 거의 동일한 기능을 제공 • BASIC API • WIPI C와 WIPI Java, J2ME 지원, 응용 개발자를 위한 필수 API Mobile Programming

  11. 위피(WIPI)의 개요 (8) • WIPI 응용 프로그램 • Clet : C 언어로 작성 • WIPI C 라이브러리 사용 • Jlet : Java 언어로 작성 • WIPI java 라이브러리 사용 • Midlet : Java 언어로 작성 • J2ME를 사용 • WIPI 응용 프로그램 개발환경으로 Java를채택한 이유? Mobile Programming

  12. 위피(WIPI)의 개요 (9) • 모바일 단말기의 무선 인터넷 플랫폼 비교 : 3 가지 Mobile Programming

  13. 위피(WIPI)의 개요 (10) • 모바일 단말기의 무선 인터넷 플랫폼 비교 : 3 가지 • AOTC(Ahead of Time Compiling) • 자바 바이트 코드가 다운로드 전에 단말기의 바이너리 코드로 미리 컴파일 • 다운로드 시에는 바이너리 직접 다운로드하여 단말기에서 바로 실행 • 실행시간을 단축 • 시스템 메모리 침범, 메모리 낭비 등의 문제점을 차단 • COD(Compile-On-Demand) 서버 : ATOC를 수행하는 서버 Mobile Programming

  14. 위피(WIPI)의 개요 (11) • 위피 2.0의 주요 기능 규격 • 위피 표준안 : http://www.wipi.or.kr • 주요 기능 규격 • 응용프로그램 머신 코드 규격 • 플랫폼은 머신 코드 형태의 응용프로그램을 다운로드받아 수행 • 자바 응용프로그램의 경우, 바이트코드를 AOTC를 통해 머신 코드를 생성할 수 있다. • 다중 응용프로그램 수행 • 플랫폼은 여러 응용프로그램을 동시에 실행할 수 있어야 한다. • 응용 프로그램간 우선 순위를 두고 가장 높은 우선 순위의 응용 프로그램이 실행되어야 한다. • 플랫폼은 응용 프로그램의 생명 주기를 관리할 수 있어야 한다. • 지원 프로그래밍 언어 • C 언어 지원, Java 언어 지원 Mobile Programming

  15. 위피(WIPI)의 개요 (12) • 위피 2.0의 주요 기능 규격 • 주요 기능 규격 • 플랫폼 보안 • 보안의 수준 : public, cp, system • 보안 대상, 자원 별등 • API 추가/갱신 지원 • 플랫폼은 API를 무선망을 통해서 추가/갱싱할 수 있으며, 이는 DLL을 통해 이루어져야 한다. • 메모리 관리 • 응용프로그램이 종료되면 자동으로 응용프로그램과 관련된 모든 메모리를 자동 반환된다. • 동적으로 사용하는 메모리를 할당/해제할 때 메모리 압축(compaction)을 할 수 있다. • 자바 언어 문맥에 따라 가비지 컬렉션을 지원해야 한다. • 플랫폼은 자바 응용프로그래별로 스택을 할당/해제할 수 있어야 한다. • 응용프로그램이 사용하는 메모리는 모두 독립적이고, 응용프로그램간 공유할 수 있는 메모리를 지원하여야 한다. Mobile Programming

  16. 위피(WIPI)의 개요 (13) • 위피 2.0의 주요 기능 규격 • 주요 기능 규격 • 응용프로그램 관리 • 다국어 지원 • CLDC/MIDP 지원 • SUN Microsystems사의 J2ME(CLDC 1.0/MIDP 2.0)를 필수 지원 • J2ME 응용 프로그램도 동작시킬 수 있어 플랫폼의 컨텐츠 수용 범위를 확대 Mobile Programming

  17. 위피(WIPI)의 개요 (14) • 위치 응용 프로그램의 개발 및 배포 과정 Applications Download 서버 단말기 개발자 Application 인증 서버 COD 서버 저장장치 바이너리 코드로 컴파일된 jar 파일, 안전확인마크가 붙은 ADF 파일 jar 및 ADF 다운로드, applicaiton 실행 application jar 파일, ADF 파일 application jar 파일, 안전확인마크가 붙은 ADF 파일 jar 및 ADF 다운로드, applicaiton 실행 Mobile Programming

  18. 위피(WIPI)의 개요 (15) • 개발자 역할 • 개발자 • 단말기에 소프트웨어를 개발하는 회사(Content Provider)나 학생과 같은 개인 • 위피 개발 도구 • 소스 프로그램 편집기 • 위피 SDK(Software Development Kit) • 이미지 편집기 • 사운드 편집기 • ADF 편집기 • 개발 결과물 • Application jar 파일 • ADF(Application Description File) 파일 Mobile Programming

  19. 위피(WIPI)의 개요 (16) • 개발자 역할 • Application jar 파일 • 위피 응용프로그램을 컴파일하여 생성된 바이트 코드 포함 • 이미지 동영상 등 응용프로그램이 실행되는데 필요한 리소스도 포함 • 배포가 가능하도록 Java 패키지 압축 형식을 압축 • ADF(Application Description File) 파일 • 응용 프로그램에 대한 설명을 담고 있는 파일 • 기본정보 • 응용 프로그램의 개발 언어, 응용프로그램의 이름 및 버전, 제작자의 이름, 만기 날짜 등 • 추가정보 • 접근 수준, 접근할 디렉토리, 단말기의 컬러레벨, 사운드 레벨 등의 보안 사항, 프로비저닝 정보 등 • Application 인증 서버에 jar 파일과 ADF 파일을 전달 Mobile Programming

  20. 위피(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

  21. 위피(WIPI)의 개요 (18) • Application 인증 • 응용 프로그램의 안정성 여부 판단 • jar 파일과 ADF 파일 이용 • 인증을 통과하면 안정성 확인 마크가 붙은 ADF 파일을 생성하여 COD 서버로 이들을 전달 • 인증 평가 기준 • 규격 - 응용프로그램이 무선 표준 플랫폼에서 정한 언어 및 데이터 형식을 유지하는지 판단 • 기능 - 테스트 수행 시 기능이 WIPI 플랫폼에 적합한지, 수행결과가 정확한지 판단 • 안정 - 응용프로그램을 구동하여 오류 상태의 이벤트가 주어졌을 때, 정상 상태로의 상태 변이가 안정적으로 이루어지는지 • 효율 - 응용프로그램 동작 시에 시스템 자원 사용이 기준치를 넘지 않는지 • CPU 점유율, 메모리 한계치, 입력에 대한 응답 시간(처리시간) Mobile Programming

  22. 위피(WIPI)의 개요 (19) • AOTC 변환 및 저장 • Jar 파일에 포함되어 있는 바이트 코드를 단말기의 기계어인 바이너리 코드로 변환 • 단말기에서 응용 프로그램의 빠른 실행을 지원 • COD(Compile-On-Demand) 서버에서 AOTC를 수행 Mobile Programming

  23. 위피 탑재 의무 철폐와 위피의 미래 • 위피 탑재 의무 철폐 • 2009년 4월부터 국내 판매 휴대폰에 위피 탑재 의무 철폐됨 • APPLE, Nokia, Google 등 외국계 휴대폰 한국 진출 • 현재 위피의 사용 수준 • 이동통신사 모두, 거의 모든 컨텐츠(약 95%)를 위피 기반으로 개발 • 응용프로그램, 과금 등 서버 포함 • 최소 5년은 위피 플랫폼을 사용할 수 밖에 없을 것으로 예측 • 외국계 OS와 위피 • 국내 이통사들, 외국계 휴대폰에 위피 플랫폼을 탑재 진행 중 • WIPI on Symbian • WIPI on Window Mobile • WIPI on Brew Mobile Programming

  24. 상용 모바일 플랫폼 비교 Mobile Programming

  25. 모바일 게임의 개요 (1) • 모바일 게임의 정의 • 각 이동 통신사의 휴대폰으로 언제 어디서나 즐길 수 있는 게임 • 모바일 게임의 특징 • 시간과 공간의 제약을 받지 않는다. • 온라인 게임에 비해 비교적 단순하다. • 몰입성이 뛰어나다. Mobile Programming

  26. 모바일 게임의 개요 (2) • 모바일 게임의 변천 • 2001년 초반 • 20kb 소용량 흑백(4gray) 미니 모바일 게임으로 처음 서비스 시작 • 스포츠 게임, 고스톱, 역할 수행 게임(RPG, Roll Playing Game) 등 • 2001년 중반 • 이동통신사의 단말기별로 여러 종류의 가상머신이 탑재된 컬러 모바일 게임 서비스 • 2003년 중반 • 3D 지원 단말기 →출시 게임 폰 등장 → 고품질, 고가의 모바일 게임 서비스 Mobile Programming

  27. 모바일 게임의 개요 (3) • 모바일 게임 장르 • 아케이드 게임 • 퍼즐/보드 게임 • 스포츠 게임 • 타이쿤 게임 • 역할 수행 게임 • 아케이드 게임 • 액션, 아케이드, 슈팅 장르의 게임 요소를 혼합 하고 있음. • 동전쌓기, 놈, 물가에 돌튕기기, 미니게임천국 등 동전쌓기 2006 Mobile Programming

  28. 모바일 게임의 개요 (4) • 퍼즐/보드 게임 • 휴대 단말기의 인터페이스에 가장 적합 • 고스톱, 테트리스, 고로고로춥, 푸키푸키, 부루마블등 • 스포츠 게임 • 야구나 골프를 소재로 한 턴 방식이 주를 이룸. • 프로야구, 팡야, 축구게임 등 IQ 무한도전 시티레이지 2008 Mobile Programming

  29. 모바일 게임의 개요 (5) • 타이쿤 게임 • 아케이드 요소와 경영 시뮬레이션 요소를 혼합한 게임 • 붕어빵, 떡뽑기, 도시락, 짜요짜요 등 • 역할수행 게임 • 사용자가 임무를 부여받아 캐릭터를 성장시켜, 특정 퀘스트나 전투를 하는 구성 • 삼국지 무한대전, 삼국 쟁패, 영웅서기-솔티아의 바람, 창세기전 등 생과일 타이쿤3 Mobile Programming 미스틱 사가

  30. 모바일 게임의 개요 (6) • 모바일 게임 플랫폼 • 휴대폰을 이용해 인터넷에 접속하여 모바일 게임을 다운로드받아 저장·관리· 실행하는 환경 • 모바일플랫폼의 변천 과정 브라우징 방식 1세대 VM과 네이티브 바이너리 방식의 모바일 플랫폼 2세대 모바일 플랫폼 표준화 3세대 Mobile Programming

  31. 모바일 게임의 개요 (7) • 제1세대 브라우징 방식 • WAP(Wireless Application Protocol)나 ME(Mobile Explorer)를 기반으로 유선 인터넷에 접속하여 단순한 텍스트와 이미지 위주의 콘텐츠를 주로 이용하는 방식 • 온라인 상태에서만 이용할 수 있어 속도가 제한되고, 통신 비용이 비싸며, 사용자 인터페이스가 불편해 많은 것을 지원하지 못함. • 제2세대 VM(Virtual Machine)과 네이티브 바이너리 방식 • 휴대폰 등 단말기와 독립적인 환경에서 게임이 수행되는 가상 플랫폼인 VM이 탑재된 단말기는 실행 환경이 모두 똑같은데, 이곳에서 모바일 게임이 구동됨. • 통신사에서 제공되는 단말기별로 다양한 플랫폼을 탑재하고 있음. • SK 텔레콤: GVM, GNEX, SK-VM • KTF: 퀄컴의 브루(BREW) • LG 텔레콤: 이지자바 등 Mobile Programming

  32. 모바일 게임의 개요 (8) • 제3세대 위피 표준 플랫폼 • 위피(WIPI) • 한국무선인터넷표준화 포럼(KWISF, Korea Wireless Internet Standardization Forum)에서 만든 모바일 표준 플랫폼 규격 • 이동통신 단말기에 탑재되어 무선 인터넷으로 다운로드받은 응용 프로그램이 실행되는 환경을 제공하는 데 필요한 표준 규격 • 위피 목적 • 통신사마다 서로 다른 플랫폼을 사용해 하나의 콘텐츠를 여러 버전으로 만들어야 하는 콘텐츠 제공자의 노력을 줄이고 • 소프트웨어 업체의 플랫폼별 소프트웨어 중복 개발 비용을 최소화 Mobile Programming

  33. 모바일 프로그래밍 (1) • MIDlet 기반의 모바일 프로그래밍 • 강의에서는 WIPI 플랫폼에서 실행가능한 MIDlet 기반의 모바일 프로그램 개발 과정을 학습 • 개발 실습 환경 • Ubuntu-9.10 Linux System • Eclipse • J2ME JDK • 실습 내용 • MIDlet 기반의 모바일 게임 프로그램 실습 Mobile Programming

  34. 모바일 프로그래밍 (2) • MIDlet 개발 API Mobile Programming

More Related