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. 3. 01:08

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

1.4 OSGi 핵심 - 번들(Bundle), 서비스(Services)


1.4.1 번들 (Bundle)


OSGi의 가장 기본적인 실행 단위인 번들은 OSGi Framework에서 수행되는 어떤 S/W component의 resources, 동작을 위한 Java classes, Bundle 정보를 담고 있는 Manifest file, service를 포함하는 JAR 파일이다. OSGi는 단 하나의 VM 인스턴스위에서 동작하고, 복수개의 클래스로더를 수행하여 독립된 namespace를 갖게됩니다. 또한 번들은 동적 라이프 싸이클을(dynamic Install, Start, Stop, Delete, Update) 갖고 수행하며(Without a JVM restart) 성능을 위해서 여러 리소스와 인터페이스를 지원한다. (Images, GUI look & Feel, Native-JNI) 자바 애플릿처럼 서버에서 다운로드하는 형식이 아니라 로컬 디바이스에 상주하는 것도 하나의 특징이다. 다음 그림은 번들의 동적 라이프 싸이클을 나타낸다.번들이 OSGi Framework에 등록되면(Active Status) Bundle Context가 생성되는데, OSGi Framework와 번들사이의 인터페이스 역할과 다른 서비스 검색과 서비스 등록에 사용된다.

사용자 삽입 이미지

[그림 6. OSGi Bundle - Dynamic Life Cycle]


1.4.2 서비스 (Service)

OSGi Service는 자바 오브젝트로서 하나의 번들에 의해서 등록되며 다른 번들에 의해서 사용되거나, 복수개의 번들이 연동/통합하여 독자적인 서비스를 만들어내기도 한다. 명시된 형태는 Java Interface 스타일로 표현되어, 서비스의 스펙과 구현이 완벽하게 분리되어 사용된다. 이렇게 되면, 동일한 서비스 기능을 갖고도 서로 다른 번들이 서로 다른 구현(Implementation)을 서비스 레지스트리에 등록할 수가 있게된다.

사용자 삽입 이미지

[그림 7. OSGi bundle과 Service 생성]

지금까지 OSGi의 기본적인 개요와 탄생 배경에 대해서 살펴보았다. OSGi의 기본적인 개념은 새로운 개념이 아니지만, 하루가 다르게 탄생하는 새로운 플랫폼, 표준 그리고 프레임워크를 볼때에 99년부터 꾸준하게 발전해온 OSGi는 분명 독특한 장점이 있기에 계속해서 발전하고, 홈네트워크용 서비스 플랫폼이나 모바일/임베디드 프레임워크에서 점점 더 영향력을 확대해 나가는것으로 생각된다. 특히 이클립스 플랫폼에 기본 탑재되고 RCP로의 확장에 중요한 요소로 지목되는 것은 OSGi가 단순한 미들웨어나 프레임워크가 아니라는 것을 증명해주는 좋은 예가 될것이다. 물론 OSGi의 단점이 없는 것은 아니다. 자바 환경에서 하나의 VM 인스턴스로 작동되는 것은 어떤 운영체제의 종속되지않는 장점은 있지만, 디바이스와 하드웨어에 영향을 많이 받는 모바일/임베디드 환경에서는 분명 제한된 리소스와 성능에 대한 오버헤드로 나타날수가 있다. 그러나 문제점이 없는 서비스와 플랫폼, 솔루션은 없고, 단점을 극복하고 강점을 더욱 확장해 나가는 것만이 치열한 경쟁속에서 살아남을 수 있는 유일한 길이라고 생각될 때 기존의 모바일/임베디드 환경에서 RCP와 데스트탑 애플리케이션으로, 나아가 엔터프라이즈 환경의 프래임워크로 성장하고 확장해나가는 OSGi 야말로 제목에 나온것처럼 Universal Middleware Platform or Framework라고 불려도 손색이 없을것을 생각된다.

사용자 삽입 이미지

[그림 8. 다양한 OSGi Service Model]


특히 디바이스-디바이스 M2M 환경이나 센서 네트워크, 로봇 등의 새로운 솔루션과 서비스 등이 속속 등장하는 현재와 미래에는 서비스를 쉽게 생성하고 운영하고 관리할 수 있는 그리고 표준화된 스펙을 제공하는 OSGi가 더욱 더 그 영향력을 확장해 나갈것이라고 생각하게 된다. Mobile/Embedded에서 탄생하여 Desktop/RCP와 Enterprise의 확장, 그리고 다가올 새로운 M2M, Micro Sensor Networks 시대에서도 진정한 Universal Middleware Framework로 자리잡게될것을 기대해본다. 다음회에서는 실제 OSGi 솔루션과 성공적인 활용 사례 그리고 임베디드 개발 환경의 구축에 대해서 살펴본다.

/// 참고문헌
1. OSGi Service Platform Core SPEC R4 - http://www.osgi.org
2. About the OSGi Service Platform - http://www.osgi.org
3. IBM - SMF (Service Management Framework) - http://www.ibm.com/software/wireless/smf
4. The Fundamental of OSGi - 한국산업기술대학교, 서대영 교수