모바일 인터넷

39
모모모 모모모 모모모모모 모모모모모모모 모모모 2004 모 2 모모

Upload: marnin

Post on 05-Jan-2016

52 views

Category:

Documents


5 download

DESCRIPTION

모바일 인터넷. 한신대학교 소프트웨어학과 류승택 2004 년 2 학기. 강의소개. 대상 : 한신대학교 소프트웨어학과 3 학년 기간 : 2004. 9. ~ 2004. 12. 시간 : 매주 수 6,7,8 교시 교재 주교재 : 모바일 플랫폼 천하통일 ! 위피 프로그래밍 ( 제우미디어 , 2004) 부교재 : 위피 (WIPI) 모바일 프로그래밍 ( 한빛미디어 , 2003) 클릭하세요 위피 (WIPI) ( 대림출판사 , 2004) 강의자료 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 모바일 인터넷

모바일 인터넷

한신대학교 소프트웨어학과류승택

2004 년 2 학기

Page 2: 모바일 인터넷

강의소개

대상 : 한신대학교 소프트웨어학과 3 학년 기간 : 2004. 9. ~ 2004. 12. 시간 : 매주 수 6,7,8 교시 교재

주교재 : • 모바일 플랫폼 천하통일 ! 위피 프로그래밍 ( 제우미디어 , 200

4) 부교재 :

• 위피 (WIPI) 모바일 프로그래밍 ( 한빛미디어 , 2003)• 클릭하세요 위피 (WIPI) ( 대림출판사 , 2004)

강의자료 http://bluelancer.dnip.net/lectures.htm

Page 3: 모바일 인터넷

강의 내용

모바일 프로그래밍 WIPI 의 시작 그래픽 / 데이터베이스 기능 UI 컴포넌트 Handset 패키지 / media 패키지 모바일 게임 제작

Page 4: 모바일 인터넷

강의 평가 (Coursework)

시험 (Exam) : 50% 중간 (25%), 기말 (25%)

과제 (Programming Assignment) : 40% 모바일 프로그램밍 예제 : 20% 모바일 게임 제작 : 20%

출석 (Class Participation) : 10%

Page 5: 모바일 인터넷

모바일 프로그래밍

한신대학교 소프트웨어학과류승택

Page 6: 모바일 인터넷

모바일 프로그래밍 초창기

모바일 환경의 대두 무선서비스

• 삐삐 (Pager)

• 휴대폰 (cellular Phone)– 초창기 : 음성통화 위주– 현재 : 인터넷과 연결

모바일 시장 형성• 유비쿼터스 (Ubiquitous)

– 언제 , 어디서나 , 이동 중에도 정보를 얻고 서비스를 이용• 휴대 인터넷

– 유선인터넷은 장소 , 무선 인터넷은 용량에 한계– 장소 제한없이 대용량의 컨텐츠를 즐길 수 있음

Page 7: 모바일 인터넷

모바일과 자바의 만남

모바일과 자바의 만남 모바일 애플리케이션에 적합한 언어 Java

• 독립적인 플랫폼• 모바일 장치의 하드웨어적 자원 매우 열악

– 쓰레기 수집 (Garbage Collection) 기능» 적은 메모리 메모리 관리 어려움 덜어줌

– 멀티쓰레드 지원» 속도 향상 및 하드웨어 자원 적게 차지

• 객체지향 (Object Orientation)

• 예외 처리 (Exception Handling)

Page 8: 모바일 인터넷

Java 의 현재

Java 플랫폼 자바 가상 머신 (JVM) 과 표준 API 의 집합으로 구성 서버급 java 플랫폼으로 개발

• 리소스가 제한적인 소형기기에 모두 적용할 수 없음 Java 를 3 개의 Edition 으로 나누어 개발

• J2SE (Java 2 Standard Edition)– 일반 자바 애플리케이션이나 Applet 그리고 component 의 개발 및 운영

환경– PC, Workstation 기반

• J2EE (Java 2 Enterprise Edition)– 서버 측면의 멀티미디어 엔터프라이즈 애플리케이션 개발과 배치를

실현하는 J2SE 기반 자바 플랫폼• J2ME (Java 2 Micro Edition)

– 임베디드 디바이스의 다양하고 제한된 환경에서 자바환경을 탑재하기 위한 플랫폼

Page 9: 모바일 인터넷

Java 플랫폼

Page 10: 모바일 인터넷

J2ME 플랫폼

J2ME 컨피규레이션과 프로파일 컨피규레이션 (Configuration)

• 자바 가상머신과 코어 API 들에 대한 명세 • 통일성

– 요구사항이 동일한 디바이스들의 집합은 컨피규레이션으로 정의 프로파일 (Profile)

• 상위 클래스 라이브러리 ( 표준 API 집합 ) 에 대한 명세• 다양성

– 각 디바이스의 기능 , 시장 요구사항에 맞추어 프로파일 정의

Page 11: 모바일 인터넷

J2ME 플랫폼

J2ME 플랫폼 : 다중 컨피규레이션 ( 메모리의 요구사항에 따라 ) CDC (Connected Device Configuration)

• 퍼스널 자바를 바탕• 128K~512K 의 메모리가 가용한 디바이스 • 22-bit CPU 와 2MB 이상의 메모리• 낮은 네트워크 전송률 , 많은 리소스를 가진 시스템• 장치마다 다를 수 있는 사용자 인터페이스• Ex) TV 셋탑 박스 , 인터넷 연결 스크린 폰

CLDC (Connected, Limited Device Configuration)• 기본 가상 머신 : KVM(K Virtual Machine)• 성능이 제한된 CPU 와 메모리 리소스를 가진 시스템을 대상으로 설정• 16-bit, 32-bit CPU 에 160KB~512KB 의 메모리를 사용하는 기기를 대상• 전력이나 배터리 파워 공급 제한적• 낮은 네트워크 전송률 , 사용자 인터페이스도 기본적으로 간단• Ex) 휴대전화 , 양방향 호출기 , PDA 등

Page 12: 모바일 인터넷

J2ME 플랫폼

KVM (K Virtual Machine) CLDC 의 기본 가상머신 작은 크기의 가상머신을 목표로 설계

• 킬로바이트단위의 경량급 가상머신 (K Kilobyte)

• SUN, 모토롤라 , NTT 도코모 , 3Com– 메모리 풋프린트 (footprint): 50K 이하 – 클래스 라이브러리 포함 : 128K 를 넘지 않는 것을 목표

Page 13: 모바일 인터넷

무선 인터넷 환경의 세대별 변화

무선 인터넷 환경 제 1 세대

• WAP (Wireless Application Protocol)

• 마이크로 소프트의 ME

• NTT 도코모사의 i-mode

제 2 세대• 단말기 미들웨어 플랫폼

– VM (Virtual Machine)– 네이티브 바이너리 방식

제 3 세대• 무선인터넷 표준화

– 이동통신사 + 단말기 제조업체 + CP (Content Provider)

Page 14: 모바일 인터넷

모바일 프로그래밍 혼란기

모바일 플랫폼의 난립

추진사 플랫폼 개발언어 수행방식

LG( 썬 ) KVM Java 인터프리터 (VM)

LG( 아로마소프트 ) 키티호크 Java 인터프리터 (VM)

SK 텔레콤 SK-VM Java 인터프리터 (VM)

SK 텔레콤 (신지소프트 )

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

SK 텔레콤 WITOP Java, C/C++ 인터프리터 (VM)

KTF( 모빌탑 ) MAP C/C++ 바이너리 ( 네이티브 )

KTF( 퀄컴 ) Brew C/C++ 바이너리 ( 네이티브 )

Page 15: 모바일 인터넷

모바일 플랫폼

WAP 방식 서비스 속도가 느리고 통신 비용이 많이 발생

다운로드 방식의 VM 등장 인터프리터 (VM)

• 데이터 스크립트를 다운로드 받아 실행하는 플러그인 형태 네이티브 바이너리

• 프로그램 전체의 실행 파일의 바이너리 다운로드• 중간 해석 단계를 거치지 않아 빠른 속도로 서비스 제공

개발 프로그래밍 언어 Java 와 C 계열

Page 16: 모바일 인터넷

모바일 플랫폼

모바일 플랫폼 GVM (General Virtual Machine)

• Mobile C 를 이용하여 개발 XVM (eXtended Virtual Machine)

• Java 프로그램을 실행할 수 있는 환경을 위해 개발 BREW (Binary Runtime Environment for Wireless)

• Java 에 대응하기 위해 퀄컴사가 개발• J2ME 보다 고속 , C/C++ 로 개발 가능

KVM (the K Virtual Machine)• 자원이 제약된 소형 디바이스를 목표로 개발• C 언어로 개발

MAP (Mobile Application S/W Plug-In)• C 언어 기반으로 작성된 프로그램을 다운로드 받아 실행

Page 17: 모바일 인터넷

플랫폼 통합

모바일 서비스 플랫폼이 다르면

• 모바일 컨텐츠를 서비스할 수 없음• 단말기 회사

– 각 플랫폼 별로 단말기 제작• 컨텐츠 제공자

– 하나의 컨텐츠를 각각 플랫폼에 맞게 다시 제작– 동일한 시간에 많은 양의 컨텐츠를 개발 할 수 없음

• 이동통신사– 다양한 서비스 제공할 수 없음

플랫폼 통합의 필요성

Page 18: 모바일 인터넷

플랫폼 표준과 무선망 개방

이동 통신망 독점적 서비스와 폐쇄성

• 이동통신 3 사만 사용 정부의 무선망 개방 발표 (2003. 9)

• 민간기업에 완전 개방 무선 인터넷 플랫폼 표준화

순수 국산 무선 인터넷 플랫폼 (2003. 4)• WIPI (Wireless Internet Platform for Interoperability)

Page 19: 모바일 인터넷

무선 데이터 서비스 업체

무선 데이터 서비스 업체 기존 이동 통신 회사의 무선 포털 ADSL 망을 통하여 초고속 유선 서비스를 실시하는 하나로 통신 ,

두루넷 대형 포탈 업체 ( 다음 , 야후 등 ) PC 통신 사업자들 ( 유니텔 , 나우누리 등 ) 엄청난 커뮤니티를 보유하고 있는 아이러브 스쿨 , 프리챌 등의

사업자들 독립 무선 포털 사업자들 모바일 인터넷 데이터 센터를 하려고 하는 유선 통신 사업자들

Page 20: 모바일 인터넷

세계 시장의 무선망 개방 추세

표준화의 필요성 인식 유럽진영

• 3GPP (3rd Generation Partner ship Project)

한국 , 미국등 CDMA 진영• 3GPP2

실제망 개방 및 플랫폼 표준화를 추진하고 있는 나라는 유일하게 우리나라이다 .

Page 21: 모바일 인터넷

플랫폼 표준화 WIPI

플랫폼 표준화 WIPI (2001/5) 무선 인터넷 표준화 포럼 발족 (2001/7) 무선 인터넷 플랫폼 특별분과 활동 시작 (2001/10) 정보통신진흥원 모바일 표준 플랫폼 과제 공모 (2002/1) 모바일 표준 플랫폼 규격안 추가 접수 (2002/3) 표준 플랫폼 이름 공모 WIPI 선정 (2002/5) 한국정보통신기술협회 (TTA) 단체 표준으로

WIPI채택 (2004/2) 위피 2.0 규격 발표

Page 22: 모바일 인터넷

WIPI 의 기본적인 기능

WIPI 의 기본적인 기능 응용프로그램 머신 코드 다운로드 다중 응용 프로그램 수행 Java, C 언어 모두 지원 API 및 디렉토리 보안 API 추가 /갱신 지원 ( 동적 링킹 라이브러리 ) 메모리 관리 응용프로그램 관리 다국어 지원 ( 유니코드 , 로케일 ) 플랫폼 보안

Page 23: 모바일 인터넷

표준 플랫폼 WIPI

현재의 모바일 VM C 언어 기반 VM

• 적은 메모리의 사용과 빠른 처리 속도• 보안성 취약 , 보급형 단말기에만 적용

Java 언어 기반 VM• 넓은 가입자 기반 , 우수한 보안성• 메모리 부담 , 느린 처리 속도 , 고급형 단말기 요구

표준 플랫폼 WIPI 최소한의 API 셋 (HAL) 만을 정의 하드웨어에 독립적으로 설계 ( 실행과 이식이 용이 )

Page 24: 모바일 인터넷

모바일 표준 플랫폼 규격

응용프로그램 개발자가 사용하는 플랫폼에서

지원하는 기본 API 모음

플랫폼 이식에 있어서하드웨어 독립성을 지

원하기 위한 계층

Page 25: 모바일 인터넷

WIPI 의 계층 (1/2)

WIPI 의 계층 Handset Hardware 단말기 기본 소프트웨어

• 각 제조사별 기본 소프트웨어 형식 포함 ( 단말기 운영체제 , 기본 통신기능 , 각종 디바이스 )

HAL (Handset Adaptation Layer) : 하드웨어 추상 계층• 단말기에 대한 추상화작업• 하드웨어에 대한 플랫폼 독립성 유지

– 다양한 플랫폼 구현가능

Page 26: 모바일 인터넷

WIPI 의 계층 (2/2)

기본 API 계층 • C / Java 언어로 작성된 응용 프로그램 실행을 위한 환경제공• Java 로 작성된 프로그램에 고속의 바이너리 코드 실행

환경제공• 다중 응용 프로그램 동시 실행 및 통신 기능 제공• 동적 API 추가 및 갱신 기능• 고효율적인 메모리 관리

– 자동 메모리 해제 , 메모리 압축• 응용프로그램 머신 코드 규격

– 자바의 중간코드 ( 바이트 코드 ) ( 게이트웨이를 통해 ) 머신코드• 플랫폼 /API 보안• 디렉토리 / 서비스 보안• 쓰레기 수집 (Garbage Collection)

Page 27: 모바일 인터넷

단말기 최소 권장 사양

단말기 최소 권장 사양 디스플레이

• 스크린 크기 : 96 X 54 이상• 색상 : 회색조 4 가지 이상 또는 천연색 256 가지 이상

입출력장치• 입력장치 : 키패드• 사운드 장치 : 진동 및 비프음• 네트워크 : 무선 및 시리얼을 통한 전송

비휘발성 (Non-volatile) 메모리• 플랫폼 라이브러리 사용 비휘발성 메모리 : 600KB 이상• 응용프로그램 사용 비휘발성 메모리 : 400KB 이상• 파일시스템 공간 : 500KB 이상

휘발성 (volatile) 메모리• HEAP 영역 : 300KB 이상• 플랫폼 라이브러리 사용 가능 영역 : 20KB 이상

Page 28: 모바일 인터넷

WIPI 의 개발 환경 구축 (JDK 1.4.2 설치 )

Download: JDK (Java Development Kit) 1.4.2

Page 29: 모바일 인터넷
Page 30: 모바일 인터넷
Page 31: 모바일 인터넷

WIPI 의 개발 환경 구축 (JDK 1.4.2 설치 )

환경 변수 등록• CLASSPATH C:\j2sdk1.4.2_04\lib\tools.jar

Page 32: 모바일 인터넷

WIPI 의 개발 환경 구축 (WIPI Emulator)

AROMA WIPI Emulator Download:

Aroma WIPI Emulator 1.1.1.8

Page 33: 모바일 인터넷

WIPI 의 개발 환경 구축 (WIPI Emulator)

Page 34: 모바일 인터넷

WIPI 의 개발 환경 구축 (WIPI Emulator)

WIPI 에뮬레이터 설정 옵션 Jar Path

• jar 파일이 포함되는 경로를 찾아 로드를 설정해주는 부분 Jlet’s Name (Clet’s Name)

• Jlet 이 상속되는 클래스 이름 Heap size ( 메모리 할당 )

• 최대 1024KB, 최소 90KB 까지 지원

Page 35: 모바일 인터넷

WIPI 의 개발 환경구축 ( 텍스트 에디터 )

Edit Plus (Edit Plus 2.1.2 ) 도구모음을 이용하여

• 컴파일• Jar 파일 생성• 위피 에뮬레이터 수행

을 한번에 할 수 있는 장점

Page 36: 모바일 인터넷

WIPI 의 개발 환경구축 ( 텍스트 에디터 )

도구 모음 이용 도구 사용자 도구 구성

Page 37: 모바일 인터넷

WIPI 의 개발 환경구축 ( 자동 실행 )

[ 그룹이름 ] WIPI Java Compiler 수행 설정

• [ 추가 ] “java compiler” 라고 입력 ( 메뉴제목 )

• [ 명령 ] C:\j2sdk1.4.2_04\bin\javac.exe -bootclasspath C:\AromaWIPI\JavaAppDemo\lib\classes.zip

– 자바 컴파일러 수행경로 (:\j2sdk1.4.2_04\bin\javac.exe )– WIPI 사용되는 클래스 적용 (-bootclasspath C:\...\classes.zip)

• [ 인수 ] $(FileName)– 수행되는 자바 파일 이름

• [ 디렉토리 ] $(FileDir)– 클래스파일 생성 디렉토리

Page 38: 모바일 인터넷

WIPI 의 개발 환경구축 ( 자동 실행 )

Jar 파일 생성하는 방법 ( 아카이브 )• [ 추가 ] “Making Jar File” 라고 입력 ( 메뉴제목 )

• [ 명령 ] C:\j2sdk1.4.2_04\bin\jar.exe cvf

• [ 인수 ] $(FileNameNoExt).jar *.class *.gif *.png *.bmp *.mid *.mmf

– Jar 파일 이름• [ 디렉토리 ] $(FileDir)

– Jar 파일 생성 디렉토리

Page 39: 모바일 인터넷

WIPI 의 개발 환경구축 ( 자동 실행 )

WIPI Emulator 수행 방법 • [ 추가 ] “Running WIPI Emulator” 라고 입력 ( 메뉴제목 )

• [ 명령 ] C:\AromaWIPI\Emulator\WIPIEmul.exe

• [ 인수 ] -HEAPSIZE=1024 -classpath $(FIleDir)\$(FileNameNoExt).jar org.kwis.msp.lcdui.Main $(FileNameNoExt)

– 전체 에뮬레이터에 적용되는 메모리 크기 (HEAPSIZE)– Jar 파일을 로드하는 역할 (classpath …)– Main 클래스 방식을 적용 (org.kwis.msp.lcdui.Main …)

• [ 디렉토리 ] C:\AromaWIPI\Emulator