BLOG main image
OSGi Story (31)
Hot Issue (11)
Equinox (9)
Spring-OSGi (0)
J2ME (7)
OSGi-UFK (2)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2008. 1. 24. 18:08

[작성 - 김석우, dolbi / 본 원고는 마이크로소프트웨어 2007년 12월호에 실린 기사입니다]

JSR 248/249
에 나와있는 MSA는 바로 J2ME의 미래이다. 과거 J2ME는 보다 파워풀한 임베디드 환경의 CDC와 모바일 환경의 CLDC로 구분되어 운영되었다. 그러나 두개의 운영환경은 바로 하나의 모델로 통합되는데, 그것이 바로 MSA (Mobile Service Architecture)이다. MSA는 급격하게 발전하고 변화하는 모바일 환경에 적절하게 대응하기위한 하나의 방안으로 출발하게 된다. 최근 3-4년간 J2ME를 중심으로 모바일 애플리케이션의 시장은 매우 빠른 기술 발전을 하게된다.

사용자 삽입 이미지
[그림 1] 발전하는 J2ME

 

지난 20064, 컨설팅 회사 Strategy Analytics Nokia, SUN사와 공동으로 다음과 같은 자료를 발표한다. 전세계적으로 자바 기술을 이용하여 서비스하는 수행하는 모바일 통신 회사는 220개 넘고, 임베디드/모바일 자바가 탑재된 디바이스는 4억개가 넘는다. 35개가 넘는 벤더에 의해서 650개가 넘는 자바 휴대폰 모델들이 지금까지 출시가 되었으며, 모바일 환경에서 자바를 이용하여 개발하는 모바일/휴대폰 관련 엔지니어는 35만명이 넘는다. 또한 모바일 환경에서 구동되는 모바일 자바용 애플리케이션은 5만개가 넘으며, 지금까지 J2ME 관련 툴킷(SDK) 1백만개가 넘게 전세계 개발자들에게 다운로드되고 배포되었다. 이렇게 급격하게 발전하는 J2ME 환경에서 CDC/CLDC로 구분되는 운영/개발환경을 보다 효율적으로 관리/발전시키기위해서 MSA가 탄생하게 되는데, 더 이상 CDC/CLDC로 구분하여 각각 프로파일들을 올려서 실행하는 것이 아닌 공동의 서브셋(Subset)과 컴포넌트 API로 통일하여서 개발자들에게 보다 통일된 애플리케이션 구조를 갖게 한다.

사용자 삽입 이미지
[그림 2] MSA 다이어그램

 

그렇다면 JSR 248/249 MSA로의 발전은 개발자와 업체, 서비스 운영자, 그리고 최종적으로 사용하는 고객들에게는 어떠한 장점을 가져다줄것인가? 자바 진영에서는 그것을 다음과 같이 표현하였다. 우선 개발자들에게는 Interoperability가 가장 큰 장점으로 다가오게 된다. 과거 CDC, CLDC 환경에서는 해당 프로파일 F/P, P/P, MIDP 등 양분된 개발환경을 통해서 개발된 애플리케이션은 서로 상호호환성이 매우 약했으나, MSA 환경에서 개발된 애플리케이션은 상호 운영성과 호환성면에서 매우 강력한 힘을 발휘하게 된다. 또한 임베디드/모바일 자바환경에서 개발과 다른 플랫폼으로의 포팅이 과거보다 쉽고 효율적이 되며, 임베디드와 모바일 애플리케이션으로 양분화된 시장을 하나의 마켓으로 통합하고 개발비용 측면에서 더욱 효율적으로 운영할 수가 있게된다. 개발 및 제조업체에서도 개발자들에게 가져다 준 장점을 그대로 계승하게 되는데, 점차 효율적이고 편한 개발환경에서 자바 개발자들이 보다 높은 생산성과 다양한 애플리케이션을 개발하게되면 보다 다양한 고객들로부터 수많은 요구사항들을 빠르게 다양한 디바이스에서 최적화되고 특성이 나타난 애플리케이션 개발로 대응할 수가 있게된다. 마지막으로 최종적인 사용자 고객들은 다양한 고객의 요구사항에 맞게 개발된 컨텐츠와 향상된 사용자 편의성(UX, GUI)등을 통해 고객의 서비스 품질이 향상됨을 느끼게 될 것이다.

사용자 삽입 이미지
[그림 3] MSA MSA Subset

 

이제 JSR 248 MSA에 대해서 좀 더 자세히 살펴보자. JSR 248 MSA의 개발 타겟은 무엇보다 대중화된 CD(Consumer Devices)와 해당 애플리케이션이었다. 그렇다면 대중화된 CD란 무엇인가? 대표적으로 우리가 사용하는 휴대폰을 생각하면 된다. 현재 우리가 사용하고 있는 휴대폰의 특징은 다소 제한된 하드웨어와 리소스를 가지고 있으며, 단순한 비즈니스 모델 즉, 원하는 애플리케이션을 바로 사서 나의 휴대폰으로 다운로드하는 단순한 구조를 가지고 있다. 웹이나 일반적인 애플리케이션에서 사용하는 컴포넌트 기반의 구조나 다이나믹한 실시간 업그레이드등은 현재 수행하기가 불가능하다. 또한 멀티태스킹 기능도 매우 미약하며, 보안적인 측면에서도 미비한 부분이 나타난다. 이러한 일반적인 휴대폰의 환경에서 보다 효율적이고 빠른 개발과 애플리케이션 수행을 위해서 MSA는 탄생하게 된다. 일단 MSA 환경하에서 개발되고 운영되는 애플리케이션은 다운로드된후에 자바의 보안 모델인 Sandbox에서 수행되며 하나의 완전 독립적인 애플리케이션 모델로 실행된다. 다른 수행중인 애플리케이션과 API를 공유할 수가 없고, 오직 하나의 애플리케이션만을 지원하게 된다. 또한 MSA는 모바일 미디어, 메시징, 파일처리, 3D그래픽, 블루투스, 웹서비스, 지불결재 등의 필수적인 기능을 정의한 17개의 컴포넌트 JSR을 포함하고 있다. 이러한 공통의 정의된 컴포넌트 규약들은 모바일 자바 환경에서 통일된 개발환경과 보다 높은 서비스 품질을 보장하면서 많은 애플리케이션을 개발을 예고하고 있다. 다음 버전에는 약 20개의 새로운 컴포넌트 JSR들이 표준화 승인을 기다리고 있는데 UI/UX 개인화, 탤레포니, 센서, 디바이스 관리 등등 보다 세련되고 멀티미디어의 요소가 가미된 휴대폰과 임베디드 모바일 디바이스의 컨텐츠들을 나타내고 있다.  

사용자 삽입 이미지
[그림 4] MSA 환경에서 개발된 다양한 모바일 애플리케이션 3D 게임

 

JSR 248 MSA에 이어서 JSR 249 MSAA (MSA Advanced)가 있는데, JSR 248 MSA이 일반적인 모바일 디바이스에 초점을 두었다면 JSR 249 MSAA (MSA Advanced)은 제목에서도 나타난바와 같이 보다 강력하고 파워풀한 모바일 디바이스용으로 구현되었다. 모바일 디바이스 관점에서 본다면 일반적인 휴대폰보다 더욱 강력한 기능들과 향상된 하드웨어 스팩을 보유한 디바이스일것이다. 이러한 기기들에서는 단순하게 구매해서 다운로드하는 방식보다 실시간으로 업그레이드가 되거나 아니면 교체/대체할 수 있는 향상된 비즈니스 모델을 사용하며 내부적으로는 애플리케이션, 컨텐츠 서비스 그리고 미들웨어 등의 다양화된 계층(Layer)들이 존재하게 된다. 따라서 MSA가 하나의 애플리케이션에 집중하는 고정적인 방식이었다면, MSAA는 다양하고 다이나믹한 애플리케이션 확장성에 초점을 둔 개발/운영 환경이다. 애플리케이션 수행환경도 MSA와는 매우 다른데, MSA가 애플리케이션 하나에 중점을 두었다면 MSAA는 서비스, 애플리케이션, 그리고 라이브러리 등 다양한 객체를 수용하는 운영환경으로 되어있다. MSAA는 애플리케이션/패키징 모델, 다이나믹 관리환경, 보안 관리 모델, 애플리케이션 협업 관리, 다양한 멀티테스킹 환경을 지원하게 된다.

사용자 삽입 이미지
[그림 5] MSAA 수행 환경 구조

 

이상으로 우리는 MSA, MSAA에 대해서 살펴보았다. 현재 2007 1/4분기에 MSA 기반의 휴대폰들이 노키아, 소니 에릭슨등의 제조업체를 통해서 판매되고 있으며, 내년초 1/4분기중 MSAA 기반의 스마트폰과 PMP, 셋탑박스등이 벤더들을 통해서 일반인들에게 서비스될것으로 기대하고 있다. MSA는 과거 CLDC 기반에서, MSAA CDC 기반에서 성장하고 확장하는 구조로 진행되고 있다. 보다 효율적이고 빠른 개발환경과 통일된 운영환경을 제공하기 위해서 발전하는 MSA 구조는 향후 모바일, 임베디드 자바의 표준으로 확산될것으로 예상되며, 또한 MSAA의 애플리케이션, 컨텐트, 라이브러리에 대한 관리 모델로 OSGi가 많은 지원을 하고 있다. 임베디드, 가정용 기기의 상호 호환성을 위해서 탄생한 OSGi는 이제 모바일 휴대폰에서도 확고한 미들웨어로 자리매김하는 시대가 도래한 것이다.