Presentation is loading. Please wait.

Presentation is loading. Please wait.

CDC Connected Device Configuration CLDC보다 많은 리소스를 가진 시스템을 대상으로 설정

Similar presentations


Presentation on theme: "CDC Connected Device Configuration CLDC보다 많은 리소스를 가진 시스템을 대상으로 설정"— Presentation transcript:

1 CDC Connected Device Configuration CLDC보다 많은 리소스를 가진 시스템을 대상으로 설정
32-bit CPU System 2MByte 이상의 메모리 (RAM, ROM 포함) 낮은 네트웍 전송률(9600이하) UI는 장치마다 다르거나 없음 PDA, 가전 기기, 디지털 셋탑 박스 등

2 CLDC Connected Limited Device Configuration
성능이 제한된 CPU와 메모리 리소스를 가진 시스템을 대상으로 설정 16-bit, 32-bit CPU 160에서 512 KByte 의 메모리(RAM과 ROM포함) 제한된 전력 공급, 배터리 파워 공급 낮은 네트웍 전송률 유저 인터페이스는 장치마다 다르거나 없음 핸드폰, 양방향 삐삐, PDA 등

3 CLDC Portability : 다양한 디바이스에의 이식을 위한 포터블 아키텍처 메모리 : 160k – 512k
프로세서 : 16bit / 32bit 전력소모 : 배터리 소모량 최소화 네트워킹 : 작은 대역폭(9600 bps) 셀룰러폰, 양방향 페이저, PDA, 셋탑박스

4 CLDC 명세 CLDC에서 정의하는 것 가상머신(KVM)의 feature - KVM 코어 자바 라이브러리
입출력(Input/Output) 네트워킹 보안 국제화

5 CLDC 명세 CLDC에서 정의하지 않는 것 애플리케이션 라이프사이클 관리 사용자 인터페이스 이벤트 핸들링
상위 레벨 애플리케이션 모델

6 CLDC 명세 자바언어 명세와의 차이 부동소수형을 지원하지 않는다. Finalization을 지원하지 않는다.
예외처리가 제한적이다. (Exception 지원 / Error 지원안함)

7 CLDC 명세 – JVM과 차이 (1/2) 부동소수점 지원 : 컴파일시에 지원여부를 결정
JNI 지원 : JNI 구현을 지원하지 않고, implementation-dependent함 클래스 로더 : 사용자 정의 클래스 로더를 지원하지 않고, 내장 클래스 로더만 지원함 리플렉션을 지원하지 않음 : RMI, Debugging, Profiler API등을 지원할 수 없음 쓰레드 지원 : 멀티쓰레드는 지원하나 쓰레드 그룹, 데몬 쓰레드 지원안함 Finalization은 지원하지 않음 Weak Reference 지원하지 않음 Error : 제한적으로 지원

8 CLDC 명세 – JVM과 차이 (2/2) 클래스 검증기의 사용 : 선택적 컴파일 가능
일반적인 검증방법 : 최소 50kb의 코드 공간과 실행 오버로드 발생 사전 검증과 스택 맵을 통한 실행시 검증 클래스 파일 포맷과 클래스 로딩 클래스 파일 포맷 : 표준 클래스 파일과 JAR 지원 클래스 룩업 순서 : implementation dependent(두가지 제한) 구현 최적화 : 반드시 JAR 파일로 배포할 것 사전 로딩 / 사전 링킹 : ROMizing 향후의 클래스 파일 포맷 : JavaCard의 cap 파일

9 CLDC 명세 보안 하위레벨 가상머신 보안 : 클래스 파일 검증 응용프로그램 레벨 보안
모래상자 모델 (Sandbox Model) : 보안 매니저 지원 못함 시스템클래스 보호 : ROMizing 혹은 클래스 파일 룩업 순서 최우선화 멀티 프로그램의 지원과 종단간 보안의 구현상의 문제

10 CLDC 명세 네트워킹 : Generic Connection Framework
java.io.*, java.net.* : 너무 큰 크기 (약 200K) TCP/IP 이외의 무선통신 : 적외선, 블루투스 패킷교환망 대 회선교환망 파일시스템 : 플래시 메모리의 사용 작은 크기의 통합된 입출력 및 네트워킹 시스템 필요 공통 양식 : Connector.open(“<protocol>:<address”) 실제구현은 제공되지 않음(Only Framework)

11 CLDC 명세

12 CLDC 요구사항 하드웨어 요구사항 소프트웨어 요구사항 메모리 요구사항 이외에는 하드웨어 제한 없음
Java VM을 위한 128KB의 ROM Java 실행환경과 오브젝트를 위한 32KB 이상의 RAM 소프트웨어 요구사항 최소한의 운영체제 또는 커널이 장치 제어 독립된 주소공간, 실시간 스케줄링 필요 없음

13 CLDC 보안 모델 자바 클래스 파일은 유효한 것임 검증되고 보장되어야 한다
응용프로그래머는 사전에 미리 정의된 API 만을 사용하여야 한다 클래스 다운로드와 시스템 클래스는 네이티브 코드 수준에서만 가능 클래스 로딩 메커니즘과 VM 시스템 클래스를 오버라이딩 할 수 없다 네이티브 함수를 호출하는 새로운 라이브러리를 사용해 애플리케이션을 작성할 수 없다

14 CLDC 클래스 파일 형식 및 로딩 사전검증기(preverifier)를 통한 자바 클래스의 검증
JAR 파일 형식으로 네트웍 전송 사전 검증 – VM의 검증 모듈 제거 및 속도 향상 보안상의 이유와 프로그램 관리 S/W의 존재로 인해 클래스 파일의 참조 순서가 다름

15 CLDC 의 데이터타입 기본적인 데이터 타입 byte, short, int, long, char, boolean
float, double은 지원하지 않음 (부동소수점 처리 X) 하드웨어적 제약과 소프트웨어적 비용(부하)이 높기 때문

16 CLDC library J2SE의 일부분(The Subset of J2SE) CLDC 특유의 클래스들
java.lang, java.util, java.io J2SE, J2EE에 상향 호환 CLDC 특유의 클래스들 javax.microedition.io.* 패키지에 정의 java.io, java.net 의 네트워크 관련 클래스들을 일반화한 것

17 CLDC API Library java.io java.lang java.util javax.microedition.io
Data stream을 통해 시스템 입출력 java.lang 자바 언어의 가장 기본적인 클래스 제공 java.util 컬렉션, 날짜 시간 등의 부가 클래스 제공 javax.microedition.io 커넥션을 위한 일반화된 클래스 제공

18 프로파일(Profile) 컨피규레이션 위에서 동작하는 자바 테크놀로지 API 세트의 명세서 API 세트와 컨피규레이션을 기술
특정 장치의 완벽한 실행 환경 제공을 목적 추가 클래스 라이브러리 없이 장치 위에서 동작 가능한 API 세트를 제공하는 것이 목적 업계의 요구들을 충족시키기 위한 결과 하드웨어 시스템 마다 각각의 프로파일이 존재

19 프로파일(Profile) (2) Sun's Java Community ProcessTM Program 을 이용한 워킹 그룹에서 정의 제품을 생산하는 업체들 스스로가 필요한 구성 요소 스펙을 결정

20 J2ME Profiles MIDP (Mobile Information Device Profile)
JSR-37 Version 1.0 Public Review Sun MIDP Early Access 1, bilnay available with cldc Foundation Profile JSR-46 Personal Profile JSR-62 RMI Profile JSR-66

21 MIDP (Mobile Information Device Profile)
목적: MID에 어플리케이션 개발 환경을 제공하기 위해 필요한 API 구조 정의 관련 API : Application, User Interface (display, input, etc) Persistent Storage, Networking. Timers MIDP 범위를 벗어나는 API : System-level APIs, Application delivery and management, Low-level security, Application-level security, End-to-end security 관련 패키지: java.io,java.lang,java.util, javax.microedition.{io,lcdui,rms,midlet}

22 MIDP Mobile Information Device Profile 모바일 정보 기기에서의 응용 개발 환경
CLDC를 바탕으로 클래스 추가 최소 하드웨어 요구 사항 Display : 96x54 Color depth : 1 bit Input : 키보드 또는 터치 스크린 Memory : 128KB ROM, 32KB RAM, 8KB Persistent Storage

23 Mobile Information Device
MIDP 구조 (MIDlet) Native 응용 MIDP 응용 OEM 응용 OEM class MIDP CLDC Native System Software Mobile Information Device

24 MIDP library (1/2) 애플리케이션 관리클래스 GUI 클래스 javax.microedition.midlet
javax.microedtion.lcdui 상위레벨 API (Screen, Alert, Form, List, TextBox) 장치 이식성에 초점 하위레벨 API (Canvas) 특정장치에서 작동하는 그래픽 요소와 저수준 입력 이벤트 처리

25 MIDP library (2/2) Persistent Storage 클래스 네트워크 클래스
장치 메모리에 데이터의 저장 및 삭제, 업데이트 네트워크 클래스 javax.microedition.io 실제적인 프로토콜 구현. HTTP는 모든 MIDP에서 필수 구현

26 MIDP의 유저 인터페이스 CLDC에서는 AWT(abstract window toolkit)을 지원하지 않음
대신 lcdui API 라는 새로운 유저 인터페이스 제공 lcdui API 는 두 가지 레벨로 나뉨 High-level API : 높은 수준의 이식성을 요구하는 응용을 위한 API Low-level API : 세부적인 그래픽을 표현하거나 입력 장치를 제어하는 등의 기능 제공 API Screen 클래스(High-level)와 Canvas 클래스(Low-level)를 제공함으로써 그래픽을 지원

27 MIDP 라이브러리 CLDC의 모든 패키지를 포함하여 확장한 형태 확장된 패키지 Javax.microedition.midlet
Javax.microedition.io Javax.microeditoin.rms Javax.microedition.lcdui

28 MIDP 명세 System Function : CLDC 기반(수정 혹은 확장) 타이머 지원 : java.util.Timer
네트워킹 : GCF의 확장 HTTP 지원 TCP/IP 지원 non-TCP/IP 지원 : 게이트웨이 사용 (WAP, i-Mode)

29 MIDP 명세

30 MIDP 명세 Persistent Storage MIDlet이 데이터를 저장할 수 있는 영속적인 공간을 지원
RMS(Record Management System)

31 MIDP 명세 애플리케이션 & MIDlet MIDlet : MIDP Application MIDP 실행환경
CLDC implementation(VM), runtime classes & native code, JAR, resource, contents MIDlet Suite Packaging : manifest, classes, resources Application Descriptor 애플리케이션 관리 소프트웨어 애플리케이션 라이프사이클 MIDlet interface : starting, stopping, cleanup

32 MIDP 명세 유저 인터페이스 공통된 유저 인터페이스 설계가 불가능 다양한 화면 크기 : Digital TV에서 호출기까지
다양한 디스플레이 : 모노크롬에서 천연색 컬러 액정까지 다양한 입력장치 : 키패드, 터치스크린, 리모콘 특정 Profile에 유저 인터페이스를 포함

33 MIDP유저 인터페이스 MIDP UI API 구조 : high-level / low-level
High-Level API : 비즈니스 애플리케이션을 위함, 고수준의 추상화 Low-Level API : 게임 등의 애플리케이션을 위함, 저수준의 추상화 클래스 계층도 : 스크린 기반의 디자인 (screen 클래스) 클래스 개요 : List, TextBox, Alert 애플리케이션 관리자와의 상호작용 getDisplay()는 startApp()이 리턴되고 deployApp()리턴되기 전에만 사용 가능

34 MIDP 유저 인터페이스 그래픽스와 텍스트 병행성(Concurrency)
redrawing mechanism & drawing model 좌표계, 폰트 지원, 텍스트와 이미지 병행성(Concurrency) Thread-Safeness : 데드락에 대한 안정성 UI API은 thread-safe를 고려해서 설계되었음 예외 serviceRepaints()

35 MIDP 유저 인터페이스

36 MIDP 명세 public abstract class MIDlet javax.microedition.midlet.MIDlet

37 MIDlet의 개발 및 배포 과정

38 MIDP 애플리케이션 라이프사이클

39 JAM과 응용프로그램 모델 Java Application Manager MIDlet은 JAR 형태로 배포
MIDP 프로그램(MIDlet)을 다운로드 및 설치, 업그레이드, 실행, 삭제하는 기능 MIDlet은 JAR 형태로 배포 컨텐츠에 대한 설명을 담고 있는 선적 목록 MIDlet 클래스를 상속한 클래스와 다른 공유 클래스 리소스 파일 – 아이콘, 이미지 등

40 애플리케이션 관리 메커니즘 Application(or MIDlet) Management Software

41 애플리케이션 관리 메커니즘 애플리케이션 관리 소프트웨어의 중요성 자바 애플리케이션 비즈니스 모델의 가능성
Download Charge Airtime Charge Subscription Charge Usage Charge 디바이스 메모리 제약의 극복 단말기 제조업체 : 소프트웨어 업그레이드 비용의 절감

42 JAM(Java Application Manager)

43 MIDP Early Access

44 선적 목록(Manifest) MIDlet을 담고 있는 JAR 컨텐츠에 대한 설명
JAM이 응용프로그램의 설치나 수행에 대한 정보로서 사용 JAD(java application descripter)에도 설치나 수행에 대한 정보가 기술 될 수 있으며 동시에 정의되는 경우 JAD가 우선한다 MIDlet은 javax.microedition.midlet.MIDlet 클래스를 반드시 상속하여야 한다 하나의 JAR 안에는 여러 개의 MIDlet이 존재 가능 같은 JAR 파일에 포함된 MIDlet은 리소스와 실행 환경을 공유

45 MIDlet MIDlet MIDP용 장치에서 사용하는 애플리케이션 자바 애플릿과 매우 흡사
java.microedtion.MIDlet 클래스 상속 startApp(), pauseApp(), destroyApp() 세가지 메소드 구현 argument가 없는 퍼블릭 생성자를 정의해야 함

46 MIDlet MIDlet life cycle constructor() destroyApp() paused destroyed
pauseApp() startApp() active destroyApp()

47 J2ME Wireless Toolkit MIDP API와 데모 파일들
개발 도구 – JAD 제작 및 컴파일, 실행 및 에뮬레이터를 통한 디버깅 등을 쉽게 해주는 도구 Win98se, Windows NT, Windows 2000 Java2 Standard Edition, 이상

48 J2ME의 미래 프로세스 성능의 향상으로 자바 환경 주목
C 또는 어셈블리 언어에 비해 여전히 많은 시스템 리소스를 요구. 가격에 민감한 시스템 생산자측에게는 고민 거리 무선 통신 사업자의 컨텐츠 형식으로 주목 통신 사업자 보다는 단말기 생산자 측의 선택 사항. 낮은 단말기 판매 수익률이 문제 PDA 및 무선전화 단말기 상에서의 시스템 실행 환경 가능성


Download ppt "CDC Connected Device Configuration CLDC보다 많은 리소스를 가진 시스템을 대상으로 설정"

Similar presentations


Ads by Google