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 티스토리 가입하기!
2007. 11. 20. 11:11

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

우리는
지난호에 OSGi Application 구현을 위한 실행과 개발 환경에 대하여 살펴보았다. 이번호에서는 OSGi Application (Bundle) 직접 구현하고, OSGi Framework 등록,수행,테스트 원격관리에 대한 일련의 번들 라이프 싸이클에 대해서 살펴보기로 한다. 많은 OSGi 관련 툴들이 나와있으나 이번호에서도 역시 IBM Websphere 솔루션을 사용하여 구현해보기로 한다. 구현할 내용은 다음과 같다
.

1. HttpLogService
이용한 Bundle 구현

2. OSGi Framework
상에서 Bundle Test

IBM
에서는 OSGi 관련 솔루션들을 IBM Workplace Client Technology, Micro Edition 이라는 이름으로 One-stop 솔루션을 제공하는데, 이클립스 기반의 통합개발툴인 WSDD (WebSphere Studio Device Developer), OSGi 기반의 미들웨어 툴킷 Micro Environment Toolkit for WebSphere Studio, J2ME 런타임모듈과 DB2e 제공하는 WebSphere Everyplace Micro Environment으로 구성되어있다. SMF(Service Management Framework) IBM OSGi 솔루션의 명칭이면서 또한 Front-End Solution 핵심 컴포넌트의 하나이다. IBM Front-End Solution Workplace Client Technology 이라고 통칭하기도 하는데, 주로 PC based Business Application, Device Control, Embedded & Mobile Device 타겟으로 운용된다.

OSGi Bundle Architecture


OSGi
에서는 모든 기능과 서비스들이 번들로 의해서 구현되고 서비스로 운영된다. 번들이 기본적인 구성요소인 이유로는 loosely-coupling reusability 있는데, 번들은 Dependency static sharing dynamic services 각각의 독립성(Dependency) 유지하게 된다. 번들의 독립성이란 무슨 뜻일까?  OSGi 같은 번들이라고해도, 다른 버전의 번들을 동시에 사용할 수가 있다. 1.0 A번들과 1.5 번들이 함께 구동될수가 있다는 뜻이다. 그렇게 운영되는 것은 번들이 다음의 구성요소들로 구분되고, 요청하는 번들이나 서비스에 인터페이스로 제공되기에 가능하다.

  • Bundle manifest file : 번들의 가장 기본적인 명칭, 버전, 제공 기능 다른 번들과의 static & dynamic interaction 방법들을 서술하고 있다.
  • Bundle activator implementation : 우리는 번들이 OSGi System Framework로부터 install, update, start, stop되는 일련의 라이프 싸이클을 갖는다는 것은 알고있다. 이렇게 번들이 System Framework 연동되고 컨트롤할수있게 해주는 것이 바로 OSGi BundleActivator interface이다.
  • Custom service interface : Besides those OSGi defined services, bundle vendors can develop custom services. To do that, you should define a Java™ interface for each custom service (번들은 반드시 R3, R4 규약에 나온 서비스들만 구현될수있는 것은 아니다. 벤더에서 독자적인 번들을 서비스 형태로 구현할 수가 있는데, 이렇게 벤더별 독자적으로 구현한 번들과 서비스를 사용하려고 필요한 것이 바로 Custom service interface 이다)
  • Custom service implementation : custom service interface 정의한 Class 메소드