1 / 39

모바일 인터넷

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

marnin
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. 모바일 인터넷 한신대학교 소프트웨어학과 류승택 2004년 2학기

  2. 강의소개 • 대상: 한신대학교 소프트웨어학과 3학년 • 기간: 2004. 9. ~ 2004. 12. • 시간: 매주 수 6,7,8교시 • 교재 • 주교재: • 모바일 플랫폼 천하통일! 위피 프로그래밍 (제우미디어, 2004) • 부교재: • 위피(WIPI) 모바일 프로그래밍 (한빛미디어, 2003) • 클릭하세요 위피(WIPI) (대림출판사, 2004) • 강의자료 • http://bluelancer.dnip.net/lectures.htm

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

  4. 강의 평가 (Coursework) • 시험(Exam) : 50% • 중간(25%), 기말 (25%) • 과제(Programming Assignment) : 40% • 모바일 프로그램밍 예제 : 20% • 모바일 게임 제작 : 20% • 출석(Class Participation) : 10%

  5. 모바일 프로그래밍 한신대학교 소프트웨어학과 류승택

  6. 모바일 프로그래밍 초창기 • 모바일 환경의 대두 • 무선서비스 • 삐삐(Pager) • 휴대폰(cellular Phone) • 초창기: 음성통화 위주 • 현재: 인터넷과 연결 • 모바일 시장 형성 • 유비쿼터스 (Ubiquitous) • 언제, 어디서나, 이동 중에도 정보를 얻고 서비스를 이용 • 휴대 인터넷 • 유선인터넷은 장소, 무선 인터넷은 용량에 한계 • 장소 제한없이 대용량의 컨텐츠를 즐길 수 있음

  7. 모바일과 자바의 만남 • 모바일과 자바의 만남 • 모바일 애플리케이션에 적합한 언어  Java • 독립적인 플랫폼 • 모바일 장치의 하드웨어적 자원 매우 열악 • 쓰레기 수집(Garbage Collection) 기능 • 적은 메모리  메모리 관리 어려움 덜어줌 • 멀티쓰레드 지원 • 속도 향상 및 하드웨어 자원 적게 차지 • 객체지향(Object Orientation) • 예외 처리(Exception Handling)

  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) • 임베디드 디바이스의 다양하고 제한된 환경에서 자바환경을 탑재하기 위한 플랫폼

  9. Java 플랫폼

  10. J2ME 플랫폼 • J2ME 컨피규레이션과 프로파일 • 컨피규레이션(Configuration) • 자바 가상머신과 코어 API들에 대한 명세 • 통일성 • 요구사항이 동일한 디바이스들의 집합은 컨피규레이션으로 정의 • 프로파일(Profile) • 상위 클래스 라이브러리(표준 API 집합)에 대한 명세 • 다양성 • 각 디바이스의 기능, 시장 요구사항에 맞추어 프로파일 정의

  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등

  12. J2ME 플랫폼 • KVM (K Virtual Machine) • CLDC의 기본 가상머신 • 작은 크기의 가상머신을 목표로 설계 • 킬로바이트단위의 경량급 가상머신 (K  Kilobyte) • SUN, 모토롤라, NTT 도코모, 3Com • 메모리 풋프린트(footprint): 50K 이하 • 클래스 라이브러리 포함: 128K를 넘지 않는 것을 목표

  13. 무선 인터넷 환경의 세대별 변화 • 무선 인터넷 환경 • 제 1세대 • WAP (Wireless Application Protocol) • 마이크로 소프트의 ME • NTT 도코모사의 i-mode • 제 2세대 • 단말기 미들웨어 플랫폼 • VM (Virtual Machine) • 네이티브 바이너리 방식 • 제 3세대 • 무선인터넷 표준화 • 이동통신사 + 단말기 제조업체 + CP (Content Provider)

  14. 모바일 프로그래밍 혼란기 • 모바일 플랫폼의 난립

  15. 모바일 플랫폼 • WAP 방식 서비스 • 속도가 느리고 통신 비용이 많이 발생 • 다운로드 방식의 VM 등장 • 인터프리터(VM) • 데이터 스크립트를 다운로드 받아 실행하는 플러그인 형태 • 네이티브 바이너리 • 프로그램 전체의 실행 파일의 바이너리 다운로드 • 중간 해석 단계를 거치지 않아 빠른 속도로 서비스 제공 • 개발 프로그래밍 언어 • Java와 C 계열

  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 언어 기반으로 작성된 프로그램을 다운로드 받아 실행

  17. 플랫폼 통합 • 모바일 서비스 • 플랫폼이 다르면 • 모바일 컨텐츠를 서비스할 수 없음 • 단말기 회사 • 각 플랫폼 별로 단말기 제작 • 컨텐츠 제공자 • 하나의 컨텐츠를 각각 플랫폼에 맞게 다시 제작 • 동일한 시간에 많은 양의 컨텐츠를 개발 할 수 없음 • 이동통신사 • 다양한 서비스 제공할 수 없음 • 플랫폼 통합의 필요성

  18. 플랫폼 표준과 무선망 개방 • 이동 통신망 • 독점적 서비스와 폐쇄성 • 이동통신 3사만 사용 • 정부의 무선망 개방 발표 (2003. 9) • 민간기업에 완전 개방 • 무선 인터넷 플랫폼 표준화 • 순수 국산 무선 인터넷 플랫폼 (2003. 4) • WIPI (Wireless Internet Platform for Interoperability)

  19. 무선 데이터 서비스 업체 • 무선 데이터 서비스 업체 • 기존 이동 통신 회사의 무선 포털 • ADSL 망을 통하여 초고속 유선 서비스를 실시하는 하나로 통신, 두루넷 • 대형 포탈 업체 (다음, 야후 등) • PC 통신 사업자들 (유니텔, 나우누리 등) • 엄청난 커뮤니티를 보유하고 있는 아이러브 스쿨, 프리챌 등의 사업자들 • 독립 무선 포털 사업자들 • 모바일 인터넷 데이터 센터를 하려고 하는 유선 통신 사업자들

  20. 세계 시장의 무선망 개방 추세 • 표준화의 필요성 인식 • 유럽진영 • 3GPP (3rd Generation Partner ship Project) • 한국, 미국등 CDMA 진영 • 3GPP2 • 실제망 개방 및 플랫폼 표준화를 추진하고 있는 나라는 유일하게 우리나라이다.

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

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

  23. 표준 플랫폼 WIPI • 현재의 모바일 VM • C 언어 기반 VM • 적은 메모리의 사용과 빠른 처리 속도 • 보안성 취약, 보급형 단말기에만 적용 • Java 언어 기반 VM • 넓은 가입자 기반, 우수한 보안성 • 메모리 부담, 느린 처리 속도, 고급형 단말기 요구 • 표준 플랫폼 WIPI • 최소한의 API 셋 (HAL)만을 정의 • 하드웨어에 독립적으로 설계 (실행과 이식이 용이)

  24. 모바일 표준 플랫폼 규격 응용프로그램 개발자가 사용하는 플랫폼에서 지원하는 기본 API 모음 플랫폼 이식에 있어서 하드웨어 독립성을 지 원하기 위한 계층

  25. WIPI의 계층 (1/2) • WIPI의 계층 • Handset Hardware • 단말기 기본 소프트웨어 • 각 제조사별 기본 소프트웨어 형식 포함 (단말기 운영체제, 기본 통신기능, 각종 디바이스) • HAL (Handset Adaptation Layer) : 하드웨어 추상 계층 • 단말기에 대한 추상화작업 • 하드웨어에 대한 플랫폼 독립성 유지 • 다양한 플랫폼 구현가능

  26. WIPI의 계층 (2/2) • 기본 API 계층 • C / Java 언어로 작성된 응용 프로그램 실행을 위한 환경제공 • Java로 작성된 프로그램에 고속의 바이너리 코드 실행 환경제공 • 다중 응용 프로그램 동시 실행 및 통신 기능 제공 • 동적 API 추가 및 갱신 기능 • 고효율적인 메모리 관리 • 자동 메모리 해제, 메모리 압축 • 응용프로그램 머신 코드 규격 • 자바의 중간코드(바이트 코드) (게이트웨이를 통해) 머신코드 • 플랫폼/API 보안 • 디렉토리/서비스 보안 • 쓰레기 수집 (Garbage Collection)

  27. 단말기 최소 권장 사양 • 단말기 최소 권장 사양 • 디스플레이 • 스크린 크기: 96 X 54 이상 • 색상: 회색조 4가지 이상 또는 천연색 256가지 이상 • 입출력장치 • 입력장치: 키패드 • 사운드 장치: 진동 및 비프음 • 네트워크: 무선 및 시리얼을 통한 전송 • 비휘발성(Non-volatile) 메모리 • 플랫폼 라이브러리 사용 비휘발성 메모리: 600KB 이상 • 응용프로그램 사용 비휘발성 메모리: 400KB 이상 • 파일시스템 공간: 500KB 이상 • 휘발성(volatile) 메모리 • HEAP 영역: 300KB 이상 • 플랫폼 라이브러리 사용 가능 영역: 20KB 이상

  28. WIPI의 개발 환경 구축 (JDK 1.4.2 설치) • Download: JDK (Java Development Kit) 1.4.2

  29. WIPI의 개발 환경 구축 (JDK 1.4.2 설치) • 환경 변수 등록 • CLASSPATH  C:\j2sdk1.4.2_04\lib\tools.jar

  30. WIPI의 개발 환경 구축 (WIPI Emulator) • AROMA WIPI Emulator • Download: Aroma WIPI Emulator 1.1.1.8

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

  32. WIPI의 개발 환경 구축 (WIPI Emulator) • WIPI 에뮬레이터 설정 옵션 • Jar Path • jar 파일이 포함되는 경로를 찾아 로드를 설정해주는 부분 • Jlet’s Name (Clet’s Name) • Jlet이 상속되는 클래스 이름 • Heap size (메모리 할당) • 최대 1024KB, 최소 90KB 까지 지원

  33. WIPI의 개발 환경구축 (텍스트 에디터) • Edit Plus (Edit Plus 2.1.2 ) • 도구모음을 이용하여 • 컴파일 • Jar 파일 생성 • 위피 에뮬레이터 수행 을 한번에 할 수 있는 장점

  34. WIPI의 개발 환경구축 (텍스트 에디터) • 도구 모음 이용 • 도구 사용자 도구 구성

  35. 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) • 클래스파일 생성 디렉토리

  36. 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 파일 생성 디렉토리

  37. 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

More Related