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:14

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

SOA(Service Oriented Architecture), Web 2.0
으로 대변되는 웹 플랫폼과 서비스는 과거 인터넷 빅뱅을 능가하는 새로운 비즈니스의 기회와 그에 따른 마켓을 형성하기 시작했다. 그러한 변화는 기존의 엔터프라이즈 및 PC 애플리케이션 비즈니스뿐만 아니라 모바일 시스템에까지 영향을 미치게 되는데, 전세계 유수의 통신사업자들은 기존의 모바일 서비스보다 훨씬 더 빠르고 다양한 컨텐츠들을 고객들에게 제공하기 시작했다. 그러한 새로운 모바일 서비스는 빠른 컨텐츠 서비스 사이클 대체와 저렴한 가격을 전면에 내세우고 있다. 따라서 기존의 모바일 서비스 및 컨텐츠 개발 방법론과 운영환경을 고집하는 벤더들은 도저히 이길 수 없는 싸움을 하게될것이다. 이러한 급변하는 모바일 컨텐츠 서비스에 대응하고자 태어난 기술이 바로 MJSP(Mobile Java Service Platform)이다. MJSP는 하나의 모바일 플랫폼 기술로 운영환경의 구조와 개발방법론, 배포/운영/관리 등의 모든 절차들을 담고있는 포괄적인 아키텍쳐링 기술인데, JSR 232에 의해서 스펙이 제정되었고 현재도 계속해서 발전되고 있다. JSR 232 홈페이지에는 이 기술을 MJSP로 바로 소개하지 않고 Mobile Operational Management 라고 표기가 되어있는데, 그것은 바로 플랫폼의 구조와 운영환경이 다양한 컨텐츠들을 운영하고 관리하는데 초점을 맞췄다는 것을 보다 확실하게 나타내려 했다는 것을 우리는 알 수가 있다. MJSP는 웹2.0을 대응하는 새로운 모바일 자바기술로 휴대폰이 네트워크 환경이나 엔터프라이즈 환경에 연결되었을 때 (Network Connected) 다양하고 다이나믹한 서비스를 제공하는 것을 그 목적으로 한다. 이를 간단히 줄여서 모바일 매쉬업(Mash-up) 서비스라고도 하는데, 우리가 기존의 웹이나 PC 환경에서 제공받던 다양한 서비스들을 그대로 모바일 환경으로 가져왔다고 생각하면 될 것이다.

사용자 삽입 이미지
[그림 6] MJSP 블록 다이어그램

 

그렇다면 어떻게 모바일 환경에서 그런 다양하고 다이나믹한 서비스들을 구현할 수가 있었을까? 우리는 모바일 환경이 하드웨어와 리소스의 제한으로 멀티미디어 서비스조차 제대로 구현하기 힘든 조건임을 잘 알고 있다. 위에서 이야기한 모바일 매쉬업 서비스는 다양한 서비스들의 결합으로 이루어져서 제공되는 컨텐츠 서비스인데, 과연 그러한 복잡한 애플리케이션들이 모바일 환경에서 가능할까? 다양한 컴포넌트나 컨텐츠들을 연동하고 찾고 보여주고 관리하려면 리소스의 관리나 상당히 가볍고 빠른 컴포넌트 구조가 필수적이어야 한다. 이러한 요구사항에 적합한 구조가 바로 OSGi 서비스이다. JSR 232의 구조는 실제 OSGi구조와 거의 비슷하다. OSGi의 기본 구조를 더욱 가볍게 슬림하게하여 모바일 환경에 적용했다고 보면 정확한 표현일 것이다. JSR 232 Draft에 보면 MJSP는 멀티 벤더의 모바일 운영 환경을 구현을 목적으로 구현되었으며 일련의 공통적인 모바일 자바 컴포넌트 운영 프로세스 개발, 배포, 수행, 관리를 다양한 통신 서비스업체, 개발자들의 요구에 의해서 구현한 자바 애플리케이션과 서비스 플랫폼이라고 정의하고 있다. 또한 JavaOne Conference 2006, 2007 에서는 JSR 232를 소개하는 세션에서 MJSP를 제 3세대 터미널 혁명이라고까지 표현하고 있다. 1세대의 기본적인 API 형태의 표현 서비스를 거쳐 2세대 Native Platform을 통한 독자 API 서비스를 현재의 각 벤더들의 상황으로 진단하고 차세대의 모바일 웹2.0 3세대 MJSP를 통해서 서비스되고 표현될것을 예측하고 있다.

사용자 삽입 이미지
[그림 7] Mobile Mash-up Service Concept

 

MJSP의 핵심 개념은 역시 SOA OSGi이다. 하드웨어와 리소스의 제한으로 핸드셋에 다양한 애플리케이션들을 인스톨하여 서비스하기는 여전히 어려운 부분이 있다. 따라서 방대한 서비스들을 제공하는 엔터프라이즈 네트워크에 연결되어서 빠르게 서비스들을 찾고 그 서비스들의 결과값만을 나의 휴대폰에서 보여주고 서비스하는 모델로 진화하고 있는 것이다. 또한 그렇게 나의 핸드셋으로 표현되기위해서 다운로드받은 컨텐츠 내지 컴포넌트들을 일괄적으로 관리 수행하는 기능을 OSGi가 담당하고 있게된다. SOA는 종종 웹서비스와 같은 개념으로 혼돈되고 있는데, 정확히 말하면 SOA는 개념적인 요소로서 간단하고 확장 가능한 구조, Self-contained 서비스 그리고 Loose Coupling을 기본으로 하고 있다. 따라서 번들과 서비스로 구현되는 OSGi 구조는 SOA 개념을 충실하게 구현한 Intra-VM 모델로 볼수가 있는 것이다. JSR 232의 구조는 레이어로 구분된 핵심 프래임워크와 서비스로 구성되고 있으며, 컴포넌트 모델은 바로 번들이다.

사용자 삽입 이미지
[그림 8] MJSP Architecture

 

MJSP 구조를 살펴보면 거의 OSGi와 같다는 것을 볼수가 있다. 다른 것이 있다면 일반적인 OSGi 실행환경이 CDC 기반의 임베디드 환경인데, 여기서는 CLDC 기반의 모바일 환경이라는 것이 다르다. 그것을 가능케 하는 것이 바로 JSR 248 MSA 규격이다. 이렇듯 JCP는 다양한 JSR을 로드맵에 의해서 점차로 발전시켜나가고 있는 것을 볼수가 있다. 기본적인 구조와 번들 운영환경은 기존의 OSGi와 같으며, 특이한 부분은 바로 Management Architecture와 외부 애플리케이션 연동부분이다. 기존의 OSGi가 하나의 독립적인 실행 환경에서 모든 것들이 대부분 수행된 구조였다면, MJSP은 모바일 매쉬업으로 외부와 연결된 네트워킹된 상태에서 다양한 서비스들을 연동하고 표현하는 것이 가장 큰 차이점이라고 할 수가 있다. 따라서 외부의 네트워크와 연결되어 서비스들을 관리하는 아키텍쳐가 중요한 핵심요소중의 하나이다. OSGi에서도 외부와 연동되어 관리하는 원격관리모듈들과 프로토콜들이 개발되었다. OMA-DM SOAP을 사용하는 웹서비스등이 그것인데, MJSP에서도 동일하게 사용된 것을 볼수가 있다. 과거 통신서비스업체들이 자사의 서버에 휴대폰을 접속할경우에는 독립적인 프로토콜이나 좀더 발전된 경우에는 Native Platform에서 제공되는 API 레벨에서 접속을 허용했다. 이러한 폐쇄적인 연결구조로는 오픈된 모바일 매쉬업 서비스를 수행하기가 매우 어렵다. 따라서 MJSP에서는 보다 진보된 모델을 구현했는데, 바로 OMA-DM을 기본으로 채택하여 사용한것이다. 이 모델은 기존의 프로토콜과 API를 모두 혼용하여 구현한 모델로서 오픈된 모바일 접속 환경을 제공하게 된다.

사용자 삽입 이미지
[그림 9] Management Architecture

 

또 하나의 기존 OSGi와 차이가 있는 부분이 바로 외부 애플리케이션 연동부분이다. MSA, MJSP을 지원하지 않는 기존의 모델이나 외부의 애플리케이션일 경우 상호호환성을 위해서 열어놓은 일종의 인터페이스 게이트웨이인 셈이다. 그러나 지켜야 할 규약이 있는데, 그것은 바로 OSGi 기본정책인 것이다. 애플리케이션 타입은 JAR이며, 해당 JAR 파일은 번들로 인스톨될 수가 있다. 또한 인스톨된 번들은 핵심 프레임워크를 통해서 번들 라이프사이클 형태를 통해서 관리를 받게 된다. 마지막으로 외부 애플리케이션은 공용의 패키지로 사용될수있어야하며 (Import-Package 사용) 서비스의 등록과 사용은 XML을 통해서 구현해야 한다.  이러한 외부 애플리케이션 역시 모바일 매쉬업 서비스의 한 축을 담당하게 되는데, 현재의 모든 서비스들이 MSA, MJSP을 지원하지 않는 상황에서 적절한 구조이기도 하다. 현재 MJSP를 이용하여 제공되는 서비스들이 하나둘씩 생겨나고 있는데, 노키아와 스프린트의 매쉬업 서비스가 대표적이다. 미국의 대표적인 통신업체인 스프린트 사는 JSR 232, OSGi를 이용한 Titan Platform Project로 차세대 모바일 매쉬업 서비스에 박차를 가하고 있다. 2007 4/4분기에는 PDA을 기반으로 하는 서비스를 런칭하고, 내년 2/4분기에는 자사의 모든 휴대폰에 플랫폼을 탑재하여 서비스 할 계획을 가지고 있다. 이에 따라서 현재 스프린트 사는 자사의 모든 개발자들에게 JSR 232, OSGi, 그리고 OMA-DM을 핵심 컴포넌트로 규정하고 그것들을 이용하여 개발하는 기술들을 습득하도록 권장하고 있을 정도이다. 또한 스프린트 사는 전미의 광역 커버리지를 보유한 몇안되는 업체로서 자사의 강점을 살려서 GPS, 지리정보 등의 특화된 매쉬업 서비스를 구상하고 있다. 또한 MJSP 기반의 OSGi 구조와 기존의 MIDP 연동 서비스, Servlet/JSP/AJAX를 통한 다이나믹 웹서비스, eRCP/eSWT를 통한 수려한 UX 서비스, OMA-DM을 통한 원격 실시간 모니터링, 다이나믹 업그레이드, 컨텐츠 배포 서비스들을 핵심 컨텐츠로 정하고 개발을 진행하고 있다.