자바 기술은 JCP(Java Community Process)를 통해 진화, 발전, 정의 된다. JCP는 개방된 커뮤니티 기반 표준 단체 이며, 자바 기술 스펙을 정의하고 개정하는 절차를 의미하기도 한다. JCP의 멤버는 자바 기술에 시장의 요구사항을 반영, 충족시키기를 바라는 공통된 관심을 공유하는 개인과 단체라면 누구나 가능한다. JCP는 개방된 커뮤니티 기반 프로세스이기는 하나, 썬 마이크로시스템즈가 자바 관련 등록상표 권한을 보유하며, 자바의 개방성, 호환성의 유지를 위한 PMO(Program Management Office)를 운영하고 있다.

JCP 프로세스는 비교적 간단하다. 자바 플랫폼을 확장하기를 원하는 JCP 멤버가 공식 제안, 즉 JSR(Java Specification Request)을 제출하면 JCP 에 정의된 초안, 검토 및 승인 투표 라이프사이클을 거치게 된다.

 
사용자 삽입 이미지

그림 1: JCP 과정
 

누구나 개인 또는 기업 대표의 자격으로 자바 커뮤니티 프로세스(JCP)에 참여할 수 있다. 예를 들어 JCP 메일링 리스트에 가입하여 JSR과 JCP 절차에 관한 정기적인 업데이트를 받을 수도 있고, 공개 논평 요청에 응답하여 JSR 공개 검토에 참여할 수도 있고, 심지어는 개발 프로세스를 통해 JSR을 정의하는 전문가 그룹의 멤버가 될 수도 있다.

Java ME 개발에 관한 최신 정보를 유지하려면 관련 최신 JSR들의 동향을 항상 주의깊게 살펴보는 것이 중요하다. 자세한 내용은 JCP 홈페이지(http://jcp.org)를 참조할 수 있다.

Java ME 플랫폼 개관

Java ME는 완전히 새로운 스펙을 정의하는 것이 아니라 기존의 여러 자바 기술을 휴대형 단말기와 임베디드 기기에 맞도록 개정한 것이라고 볼 수 있다. Java ME는 가능한 한 Java SE와 호환성을 유지하는 것을 목표로 하나, 소형 임베디드 디바이스의 리소스 제약을 해결하기 위해 Java SE, EE API를 삭제, 교체하거나 새로운 API를 추가하기도 한다.

Java ME 플랫폼은 configurations, profiles, optional packages 로 불리는 확장가능한 소프트에어 스택들의 집합체라고 할 수 있다.

 


사용자 삽입 이미지

그림 2: 임베디드 디바이스를 위한 자바 플랫폼의 여러 가지 변형

그림 2에서 보는 것처럼, 임베디드 디바이스를 위한 자바 애플리케이션 환경에는 EmbeddedJava, PersonalJava, J2ME, Java Card 등이 포함된다. 하지만 Java SE를 기반으로 한 초기 기술인 Embedded Java와 Personal Java는 Java ME의 계보에서 완전히 분리되어 있으며 이제는 단종(end-of-life) 단계에 들어섰다. Java ME 환경은 보다 강력한 PDA 같은 대형 휴대형 단말기를 위한 Connected Device Configuration (CDC)와 이동 전화처럼 리소스가 보다 제한된 장치를 지원하는 Connected Limited Device Configuration (CLDC) 등 두 종류의 기술로 구분된다. CDC 1.0은 상위 Java SE 1.3를 기반으로 상위 호환되며, CDC 1.1은 Java SE 1.4를 기반으로 상위 호환된다. 마지막으로, Java Card 카드 기술은 자바 기반 스마트 카드의 개발을 지원한다.

주의: MIDP는 최초의 Java ME API였고 현재 가장 인기 있는 Java ME API이기 때문에 Java ME를 처음 접한 사람들은 대부분 Java ME를 MIDP(Mobile Information Device Profile)와 동일시하는 경향이 있다. 하지만 그림 2에서 보는 것처럼 MIDP는 Java ME의 구성요소 중 하나이다.
JavaME의 구성

Java Platform, Micro 자바 기술은 Oak 언어와 Embedded Java 및 PersonalJava 애플리케이션 환경의 시절로부터 먼 길을 거쳐왔다. Java ME는 하이엔드 PDA와 비교적 큰 임베디드 기기와 같은 전자 장치와 휴대폰, 로우엔드 PDA, 그리고 디스플레이나 사용자 인터페이스 장치가 없는 headless 장치 같은 보다 제한된 장치를 위한 조직화된 아키텍처로 발전해왔다.

JCP는 Java ME 플랫폼 스펙(JSR 68)으 로 Java ME의 여러 구성요소들뿐 아니라 플랫폼의 전반적인 아키텍처를 정의하고 있다. Java ME는 대형 풋프린트를 가진 하나의 모노리식(monolithic) 플랫폼이라기보다는 세 가지 종류의 소프트웨어 스택 - 컨피규레이션, 프로파일, 옵션 패키지 - 로 이루어진 다계층(multi-layered) 구조를 가지고 있다. CLDC와 같은 컨피규레이션은 다양한 종류의 장치를 위한 기본 서비스를 제공하며, MIDP와 같은 프로파일은 좀더 한정된 부류의 장치에서 흔히 볼 수 있는 보다 높은 레벨의 서비스를 지원한다. 옵션 패키지는 모든 디바이스에 꼭 필요한 것은 특정 디바이스군에서 필요로하는 추가적인 API를 정의한다. 이런 구성의 장점은 개발자들이 타깃 장치의 기능과 애플리케이션의 리소스 요구 모두에 적합한 소프트웨어 스택을 조합할 수 있게 해줌으로써 재사용과 효율성을 증가시켜 주는 반면, 단점으로는 선택할 수 있는 조합의 개수가 늘어남에 따라 디바이스간의 호환성이 나빠질 수 있다. 이러한 단점을 보완하기 위해 JCP에서는 JTWI(JSR-185), MSA(JSR-248,249) 와 같은 패키지 JSR 을 정의 하고 있다. 그림 3에서는 소프트웨어 스택을 따라 올라가면서 기능이 추가되는 Java ME 플랫폼의 전반적인 구성을 보여준다.

 
Figure 2: Organization of the J2ME Platform
그림 3: JavaME 플랫폼의 구성

그림 3은 Java ME의 컨피규레이션, 프로파일, 옵션 패키지 외에도 필요할 경우 벤더 고유의 API를 정의 할 수 있다는 것을 보여준다. 이들은 표준 Java ME의 일부는 아니지만 적외선 통신을 위한 API처럼 주어진 장치에 특별한 기능을 제공하기 위해 추가 확장 될 수 있다. 벤더 특유의 API는 컨피규레이션과 프로파일의 확장이라고 볼 수도 있다.

무선 업계를 위한 자바 기술

Java Platform, Micro 자바 Java Platform, Micro Edition은 지난 5년간 자바 커뮤니트 프로세스(JCP)를 통해 진화해 오면서 다양한 종류의 Java ME API를 산출했으며 이 중 다수는 폭넓게 수용되었다. 하지만, 다양한 Java ME API set 으로부터 조합 가능한 가지수의 증대가 오히려 호환성을 위협하게 되었다. 따라서 잘 정의되고 일관된 방식으로 시장에 도입되어 휴대폰 업계 전반에 걸쳐 높은 수준의 호환성과 상호 운용성을 유지 하기 위한 취지로 JCP는 JSR 185, JTWI(the Java Technology for the Wireless Industry) 스펙을 정의 하였다. JTWI는 다음과 같은 JSR을 통합 패키지화 하여 무선 핸드세트를 위한 공통의 아키텍처 및 프로그래밍 인터페이스를 정의한다.

  • Connected Limited Device Configuration (JSR 30)
  • Mobile Information Device Profile 2.0 (JSR 118)
  • Wireless Messaging API (JSR 120)
  • Mobile Media API (JSR 135)

이어서 JTWI는 다음 사항을 적용한다.

  • 최소 컨피규레이션:
    • CLDC 1.0 (JSR 30)
  • 기본 스펙:
    • MIDP 2.0 (JSR 118)
    • WMA 1.1 (JSR 120)
  • 권장 스펙:
    • MMAPI 1.1 (JSR 135)

JTWI는 공통의 런타임과 API, 그리고 관련 기술 호환성 키트(TCK)를 정의함으로써 장치 플랫폼 전반에 걸친 애플리케이션들이 상호 운용될 수 있는 일관된 애플리케이션 환경을 보장한다. 아키텍처의 관점에서 JTWI는 그림 3과 같이 구성요소들의 구조와 그들 사이의 관계를 정의한다.

 
Figure 3: JTWI Mobile Phone Software Components
그림 3: JTWI 휴대폰 소트프웨어 구성요소

현재 2개의 새로운 JSR이 JSR 185에 의해 시작된 통합 공통화 작업을 계속하고 있다. Mobile Service Architecture(MSA) for CLDC (JSR 248)는 고용량 CLDC 기반 핸드세트를 위한 모바일 서비스 아키텍처와 플랫폼 정의를 규정하여 관련된 신기술이 발전함에 따라 이를 통합할 것이다. Mobile Service Architecture for CDC (JSR 249)는 진보된 CDC 기반 장치에 대해 같은 일을 할 것이다.

컨피규레이션

컨피규레이션은 기본적인 최소 공통분모(lowest-common-denominator)로서 Java ME 런타임 환경을 정의한다. 여기에는 가상 머신(Virtual Machine)과 주로 Java SE에서 파생된 일련의 코어 클래스(Core Class)가 포함된다. 각각의 컨피규레이션은 대체로 유사한 기능을 가진 다양한 종류의 장치에 맞게 조정된다. 현재는 CLDC(Connected Limited Device Configuration)와 CDC(Connected Device Configuration)의 두 가지 컨피규레이션이 정의되어 있다.

CLDC는 휴대폰, 양방향 페이저, 로우엔드 PDA, headless 장치와 같이 접속이 제한되고 리소스가 한정된 로우엔드 장치를 지원한다. CDC는 하이엔드 PDA, DTV 셋톱박스 및 통신기, 정교한 임베디드 기기와 같이 제약이 적은 하이엔드 접속 장치를 지원한다. 그 이름에서 알 수 있듯이, 두 컨피규레이션은 모두 고속의 고정 링크이든 저속의 무선 링크이든 일정한 유형의 네트워크 연결성을 갖춘 제한적 장치를 겨냥한 것이다.

CLDC(Connected Limited Device Configuration)

CLDC는 연산 능력, 배터리 수명, 메모리, 네트워크 대역폭 등에 엄격한 제약이 있는 장치들을 위한 Java ME 컨피규레이션이다. 이러한 제약은 장치들이 지원할 수 있는 자바 애플리케이션의 종류에 직접 영향을 미친다.

CLDC는 많은 리소스를 요구하지 않는다. CLDC 1.0은 16-bit 또는 32-bit 프로세서에 160 KB 이상의 비휘발성 메모리와 32 KB 이상의 휘발성 메모리를 갖추고, 전력 소비가 낮고 통상적으로 배터리를 사용하며, 네트워크 연결이 비교적 불안정한 디바이스들을 대상으로 한다. 이 컨피규레이션의 핵심을 이루는 것은 참조 구현(Reference Implementation)인 KVM(K Virtual Machine)이나 최적화 구현(Optimized Implementation)인 CLDC Hotspot Implementation 같은 자바 가상 머신이다. 이들은 일부 Java SE 기능을 제거한 자바 가상 머신이다. 가령, CLDC는 클래스 마무리(finalization)나 스레드 그룹(thread group)을 지원하지 않는다.

CLDC는 많은 리소스를 요구하지 않는다. CLDC 1.0은 16-bit 또는 32-bit 프로세서에 160 KB 이상의 비휘발성 메모리와 32 KB 이상의 휘발성 메모리를 갖추고, 전력 소비가 낮고 통상적으로 배터리를 사용하며, 네트워크 연결이 비교적 불안정한 디바이스들을 대상으로 한다. 이 컨피규레이션의 핵심을 이루는 것은 참조 구현(Reference Implementation)인 KVM(K Virtual Machine)이나 최적화 구현(Optimized Implementation)인 CLDC Hotspot Implementation 같은 자바 가상 머신이다. 이들은 일부 Java SE 기능을 제거한 자바 가상 머신이다. 가령, CLDC는 클래스 마무리(finalization)나 스레드 그룹(thread group)을 지원하지 않는다.

CLDC는 Java SE 개발자들에게 친숙한 표준 코어 자바 언어 패키지의 서브세트를 정의하며 제한적 장치에 맞추어진 클래스를 추가한다. 이와 더불어, CLDC는 규모가 큰 java.net 및 java.io 패키지를 이용하기에는 메모리가 부족한 장치에서 I/O를 지원하기 위해 간소화된 GCF(Generic Connection Framework) 패키지, javax.microedition.io를 도입했다. GCF는 HTTP, 데이터그램, 스트림 등을 포함한 다양한 종류의 접속을 생성하고 I/O를 수행하는 인터페이스와 클래스의 계층이다.

CDC(Connected Device Configuration)

CDC는 CLDC가 지원하는 것보다 강력한 장치들, 가령 하이엔드 휴대폰 및 PDA, 더욱 정교한 임베디드 기기 - 셋탑박스, TV를 통해 네트워크 기반 컴퓨팅 기능을 제공하는 장치, 인터넷 어플라이언스와 같은 웹 기반 장치, 심지어 자동차 내비게이션 시스템 등 - 를 위해 설계되었다.

CDC를 지원하는 장치는 32-bit 프로세서와 일반적으로 ARM 기반 장치, 2 MB 이상의 메인 메모리와 2.5 MB 이상의 ROM, 그리고 일정한 형태의 네트워크 접속성을 갖추고 있는 것을 대상으로 한다.. 이 컨피규레이션의 핵심을 이루는 것은 Java SE 기능을 완비한 CDC Hotspot Implementation과 같은 최적화된 자바 가상 머신이다.

그림 5에서 보는 것처럼, CDC는 CLDC의 합집합(Superset)로 GCF(Generic Connection Framework)와 같이 Java SE에 포함되지 않은 새 클래스를 비롯하여 CLDC가 정의한 모든 클래스가 포함된다.

 
Figure 5: Relationship Between CLDC and CDC
그림 5:CLDC와 CDC의 관계
프로파일

프로파일 또는 옵션 패키지는 애플리케이션의 라이프사이클 관리, 사용자 인터페이스 구동, 디바이스에서 로컬로 영속적 데이터(persistent data)를 유지보수 및 업데이트하고, 네트워크 서버에 저장된 정보에 안전하게 액세스하기 위한 클래스를 제공한다. 프로파일은 컨피규레이션이 제공하는 클래스의 코어 세트에 도메인별(domain-specific) 클래스를 추가한다. 이 클래스들은 디바이스의 특정한 용도에 맞게 조정되고 기본 구성에서 빠져 있는 기능을 제공한다.

현재 두 개의 표준 CLDC 기반 프로파일 - MIDP(Mobile Information Device Profile, 버전 1.0 및 2.0) 및 IMP(Information Module Profile) - 이 존재한다. 세 개의 프로파일 - FP(Foundation Profile), PBP(Personal Basis Profile), PP(Personal Profile) - 은 CDC를 기반으로 한다. 그림 6은 프로파일과 기본 컨피규레이션의 관계 및 프로파일 상호간의 관계를 보여준다.

 
Figure 6: J2ME Profiles
그림 6: JavaME 프로파일

MIDP와 IMP의 경우처럼 동일한 컨피규레이션 위에 복수의 프로파일이 존재할 수 있다. 이들은 상호간에 의존성을 가질 수도 있다. 예를 들어, Personal Profile은 Personal Basis Profile을 확장하며, PBP는 다시 Foundation Profile에 의존한다. Java ME가 발전함에 따라 앞으로 더 많은 프로파일이 생길 것으로 기대된다.

CLDC-Based Profiles: MIDP and IMP

MIDP(Mobile Information Device Profile)IMP(Information Module Profile)은 서로 매우 유사하므로 함께 살펴보도록 한다.

 
Figure 7: CLDC-Based Profiles
그림 7: CLDC 기반 프로파일

최초의 Java ME 프로파일인 MIDP는 세계 전역에 걸쳐 주로 PDA와 휴대폰을 비롯한 휴대형 통신기기에 수백만 개가 배치되는 등, 현재 가장 발달되고 널리 채택되고 있는 프로파일이다.

IMP의 타깃은 MIDP 디바이스와 유사한 특성을 지녔지만 사용자 인터페이스 기능이 거의 또는 전혀 없는 장치들 - 자판기와 같은 headless 임베디드 기기, 산업 애플리케이션, 보안 시스템 등 - 이다. JSR 195에서 최초로 정의된 IMP는 애플리케이션 관리, 스토리지, 네트워킹, 보안, 타이머 API 등을 비롯한 모든 기능을 MIDP에서 차용하고 있다. IMP 1.0은 사용자 인터페이스(UI)를 위한 API, 특히 javax.microedition.lcdui를 제외한 MIDP 1.0의 진부분집합(strict subset)이다. IMP 애플리케이션을 IMlet이라고 부르지만, 모든 취지와 목적으로 볼 때 - 이들은 MIDlet을 서브클래스하고, MIDlet과 동일한 패키징, 배치, 보안 기능과 라이프사이클을 가지고 있다 - MIDlet이라고 할 수 있다.

MIDP 1.0은 JSR 37에서 정의 되어 있으며 여전히 널리 사용되고 있다. JSR 118에 의해 정의된 MIDP 2.0은 MIDP 프로파일의 기능을 크게 강화시켰다. MIDP 2.0에는 네트워킹, 사용자 인터페이스, 로컬 영속적 데이터 보관, MIDlet 라이프사이클 등을 위한 원래의 API 외에, TCP 소켓 스트림, UDP 데이터그램, 그리고 직렬, 푸쉬 서비스(push service), 및 보안 접속을 지원하기 위한 새로운 네트워킹 API가 추가되었다. 견고한 보안 API 및 정책, 그리고 사운드, 심지어 게임을 위한 API도 추가되었다. MIDP 2.0 역시 무선 네트워크를 통해 애플리케이션을 검색하고 다운로드하는 방법을 기술하는 MIDP 1.0 스펙의 OTA(Over-the-Air) User-Initiated Provisioning 권고사항의 업데이트를 공식 스펙으로 포함시키고 있다. MIDP 스펙은 CLDC 1.0의 사용을 지시하고 있지만, 어떤 버전의 MIDP에서나 CLDC 1.1을 베이스로 사용해도 아무런 문제가 없다.

IMP-NG라고도 알려진 JSR 228은 IMP의 차세대 버전이다. 새 버전에서는 MIDP 2.0의 새로운 보안 및 네트워킹 타입과 API, 그리고 PushRegistryplatformRequest()를 비롯한 기타 API를 포함하고 있으며, IMP 1.0과 마찬가지로 UI, 게임, 미디어 API는 포함되지 않았다.

CDC 기반 프로파일: FP, PBP, PP

CDC는 CLDC보다 풍부한 컨피규레이션이다. 메모리 용량과 처리 능력이 더 큰 하이엔드 휴대형 단말기와 임베디드 기기를 겨냥하고 있지만 컨피규레이션-프로파일 패턴은 동일하다. CDC는 디바이스에 대해 포괄적인 로우 레벨 인터페이스를 제공하며, 하나 이상의 CDC 기반 프로파일이 특정한 종류의 디바이스에 적합한 기능을 가진 클래스를 제공한다. 그림 8은 Foundation Profile, Personal Basis Profile, Personal Profile의 상호 의존 관계를 보여준다.

 
Figure 8: CDC-Based Profiles
그림 8: CDC 기반 프로파일

Foundation Profile에는 CDC 내의 모든 클래스가 포함되며, 더 많은 Java SE 클래스와 보안 기능, 그리고 기타 API가 추가된다. Personal Basis Profile에는 CDC와 FP가 모두 포함되며, 사용자 인터페이스 클래스의 최소 코어 세트가 다른 기능들과 함께 추가된다. Personal Profile에는 CDC, FP, PBP가 모두 포함되며, 중량(heavyweight) AWT(Abstract Window Toolkit) API 및 애플릿(Applet) 지원을 포함하여 더욱 완비된 AWT 세트를 제공한다.

Foundation Profile

Foundation Profile은 이름이 의미하듯 다른 CDC 기반 프로파일을 구축하기 위한 토대가 된다. Foundation Profile은 CDC의 인터페이스와 클래스를 모두 제공할 뿐 아니라, 보안, 유틸리티, 로케일(locale) 클래스를 추가하여 컨피규레이션을 확장한다. Foundation Profile은 AWT나 Swing을 비롯한 어떤 UI 클래스도 제공하지 않으므로, 사용자 인터페이스가 필요 없는 소형 기기에 적합한 프로파일이다.

최초의 Foundation Profile, 버전 1.0은 JSR 46에 의해 정의되었다. 최근에는 Foundation Profile 1.1이 JSR 219에서 정의되었다.

Personal Basis Profile

Personal Basis Profile은 Foundation Profile 위에 구축되며 Personal Profile의 서브세트이다. PBP는 CDC와 Foundation Profile 인터페이스 및 클래스를 모두 지원하는 외에도, 자동차 기기, 소비자 기기, 간단한 어플라이언스와 같이 심플한 사용자 인터페이스를 요하는 디바이스에서 그래픽, 이미지, 위짓(widgets)을 지원하는 AWT(Abstract Windowing Toolkit)의 경량(lightweight) API 서브세트를 포함한다. 이 프로파일은 또한 JavaBeans 프로그래밍과 새로운 Xlet 애플리케이션 모델을 지원한다.

최초의 Personal Basis Profile, 버전 1.0은 JSR 129에 의해 정의되었으며, 최근에는 Personal Basis Profile 1.1이 JSR 217에서 정의 되었다.

Personal Profile

PP는 이제는 단종된 PersonalJava 애플리케이션 환경을 새롭게 재편한 것이다. Personal Profile은 Personal Basis Profile의 수퍼세트이며 CDC와 Foundation Profile에 기술된 자바 패키지를 모두 제공한다. 아울러, PBP에 빠져 있는 중량 AWT 클래스 및 애플릿 지원이 추가되었다. 따라서 Personal Profile은 Java SE와 매우 유사한 모습을 지닌 더욱 풍부한 애플리케이션 환경을 제공한다. 이 프로파일은 하이엔드 PDA, 셋탑박스, 기타 하이엔드 어플라이언스와 같이 진보된 사용자 인터페이스와 안전한 네트워크 접속을 요구하는 디바이스를 대상으로 하고 있다.

Personal Profile 1.0은 JSR 62에 의해 정의되었으며, 최근에는 Personal Profile 1.1이 JSR 216에서 정의 되었다.

옵션 패키지

옵션 패키지는 일종의 프로파일 확장이라고 할 수 있다. 옵션 패키지는 메시징이나 멀티미디어, 위치 기반 서비스처럼 일부 디바이스와 애플리케이션에서만 요구하는 상대적으로 좁은 영역의 기능을 정의한다. 따라서 프로파일의 정의는 대부분의 디바이스가 필요로 하는 공통된 기능만을 지원하는 데 집중할 수 있다. 프로파일은 런타임 환경을 제공하는 한편 옵션 패키지는 특정한 종류의 기능을 제공할 수 있다.

모든 Java ME 옵션 패키지는 JCP에 의해 정의되어 표준 API가 된다. 이름에서 알 수 있듯이, 이 패키지는 옵션으로 포함된다. 핸드세트 제조업체들이 특정한 제품에 이를 포함시킬 수도 있고, PDA 개발자처럼 확장성 있는 환경에서도 이를 포함시킬 수 있다. 예를 들어, 특정한 MIDP 핸드세트는 Java APIs for Bluetooth (JSR 82)를 포함시킴으로써 블루투스 접속에 대한 지원을, Web Services API for Java ME (JSR 172)를 포함시킴으로써 엔터프라이즈 통합에 대한 지원을 추가할 수 있다.

옵션 패키지의 수는 점점 증가하고 있으며, 일부는 CLDC 환경, 일부는 CDC, 일부는 양자를 지원한다. 일부는 이미 승인을 받았으나 다수의 새로운 패키지는 현재 정의 단계에 있다.

다음 이미 승인을 받은 옵션 패키지 중에서 가장 흥미를 끄는 것들이다.

  • Java APIs for Bluetooth (JABWT)
  • Wireless Messaging API (WMA)
  • Mobile Media API (MMAPI)
  • Web Services API for J2ME (WSA)
  • Location API for J2ME
  • Security and Trust Services API (SATSA)
  • SIP API for J2ME
  • J2ME RMI Optional Package (RMI OP)
  • JDBC Optional Package for CDC/Foundation Profile

다음은 현재 개발 중인 옵션 패키지 중에서 역시 특별한 흥미를 끄는 패키지들이다.

  • Content Handler API (CHAPI)
  • Mobile Service Architecture for CLDC
  • Mobile Service Architecture for CDC
  • Device Management API
  • Mobile Operational Management
  • Mobile Internationalization API
  • Java Authentication and Authorization Service (JAAS), Java Secure Socket Extension (JSSE), and Java Cryptography Extension (JCE) for CDC 1.1
차세대 모바일 디바이스를 위한 JavaME 플랫폼

JMIDP와 JTWI가 제 1세대와 2세대의 플랫폼이었다고 한다면, JSR 248(그림 9참조) 로 정의되는 MSA(Mobile Service Architure)는 제 3세대로 나아가는 기술이다. 차세대 디바이스를 위한 더욱 풍부한 플랫폼을 정의하는 MSA는 m-commerce를 위해 더욱 강화된 보안상 안전한 API를 정희하며, 그래픽 기능은 현재 배치되어있는 Mobile Media API 뿐 아니라 3D 그래픽을 위한 API나 SVG(Scalable Vector Graphic)를 포함하여 더욱 유연하고 세련된 UI의 구성을 가능하도록 한다. 또한, 이미 널리 배치되어 있는 SMS(JSR 120)과 MMS(JSR 205) API에 추가로 SIP(JSR 180)과 Bluetooth(JSR 82)를 포함시킴으로써 통신 기능이 훨씬 강화되었다. 위치 기반 서비스를 위해 Location(JSR 179)과 개인 일정 관리를 위한 PIM(Personal Onformation Management; JSR 75)이 추가되며, 마지막으로 Web Service, Content Handler가 추가되어 더욱 강력한 웹기반의 애플리케이션 연결성을 제공한다. MSA는 현재 JCP 중에 있으며 올 8월경에 최종 릴리즈될 예정이다. (그림10 참조)

사용자 삽입 이미지


그림 9: CLDC를 위한 MSA


사용자 삽입 이미지



그림 10: CLDC와 CDC의 진화 방향
 
모바일 자바의 미래

그렇다면, MSA 이후에 나아갈 진화방향은 어떤것일까? 제 4세대에는 좀 더 나은 그래픽 환경을 제공할 것이다. Advanced Graphical User Interface(JSR 209)로 정의되는 이런 그래픽 환경은 레이아웃 기능, 더욱 풍부한 컴포넌트, 더 뛰어난 2D 그래픽 등을 선보이게될 것이다.이런 아이템들은 CDC 기반의 디바이스와 맞물려 Java SE 플랫폼의 일부가 모바일 디바이스에서 실현되도록 할 것이다

제 1세대 모바일의 핵심 분야였던 게임은 Open GL ES(JSR 239)과 더불어 더욱 발전할 것이다. 미래의 디바이스에는 MSA로 정의되는 현재의 성능을 뛰어넘는 그래픽 기능을 강화한 하드웨어와 3D 성능을 선보이게 될 것이며, 온라인 게임은 모빌리티 커뮤니티로 확대될 것이다.

Web 2.0과 JSR 290으로 정의된 자바 기술은 마크업(markup)과 자바 사이에 독특한 통합을 만들어낼 것이다. 자바는 마크업을 로딩, 랜더링, 조작하는 데 사용될 것이며, 동시에 마크업에 임베디드될 수도 있다. 결과적으로 좀 더 나은, 또 좀 더 많은 UI 요소들이 사용자와 디바이스에 모두 적용될 것이다.

"Java ME" 카테고리의 다른 글

2006/07/26 11:39 2006/07/26 11:39

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/228

  1. kj의 생각

    Tracked from kjunine's me2DAY  삭제

    모바일 자바 플랫폼의 현재와 미래

    2008/06/19 13:44

댓글을 달아 주세요

  1. 이우철  수정/삭제  댓글쓰기

    자바 잘 쓰고 있습니다 자바 덕분에 웹서핑이 편해요
    개발자분들 덕분입니다 감사합니다

    2007/09/07 20:06
  2. 윤태호  수정/삭제  댓글쓰기

    모바일 자바는 미래에도 각광을 받을 것으로 생각합니다.
    전반적인 내용과 향후 전망까지 내용 좋았습니다.
    예전에 휴대폰 게임을 조금 다루어 본 경험이 있는데 조금 어렵지만 재미가 있었던 경험이 생각납니다.

    2007/09/08 15:33
  3. 고진구  수정/삭제  댓글쓰기

    쉬운 예제와 설명 잘 읽었읍니다. 큰 도움이 되겠어요.

    2007/09/09 23:06
  4. 권미자  수정/삭제  댓글쓰기

    많은것을배우고갑니다.

    2007/09/12 18:19
  5. 박정숙  수정/삭제  댓글쓰기

    좋은 정보 감사해요~

    2007/09/19 04:17
[로그인][오픈아이디란?]

◀ Prev 1  ... 362 363 364 365 366 367 368 369 370  ... 626  Next ▶