infatuation

OSGi - 임베디드를 넘어 엔터프라이즈로! 본문

Study/OS&Linux

OSGi - 임베디드를 넘어 엔터프라이즈로!

화령 2009. 5. 14. 02:55

OSGi관련 발표를 맡게되어 자료를 검색하던 중 MASO 에서 연재했던 자료가 거의 기본으로 모든 블로그에 포스팅되어있다.ㅋㅋ 저자 : 김석우(suhgoo@samsung.com)
연재는 총 6회 연재이나 5회까지만- 2007년 7월부터 12월까지 연재되었다. OSGi에 대해서는 기본바탕도 없던터라 UPnP와 같이 전체적임 내용에 대해 정리하고 소스를 분석할 예정이다.6월 10일 발표할 예정이나- 양이 많기 때문에 미리 준비 :)


OSGi는 운영체제, 플랫폼에 독립적으로 운영되는 미들웨어 프레임워크이다. 또한 표준화된 스펙, 컴포넌트 구조 그리고 분산 네트워크 서비스에 최적화된 컴퓨팅 환경을 제공해주는 서비스 플랫폼이기도 하다.

* OSGi - Open Service Gateway Initiatives
일종의 Middleware Framework / 자바환경에서 구현되며 자바를 위한 Dynamic Module System이라고도 불린다.
홈 네트워크 분야에서 인터넷에 연결되는 정보 및 가전기기들의 호환성이 문제가 대두되었다.
이에 IT, 가전, 통신, 주택, 환경 분야를 대표하는 업체들이 모여 로컬 네트워크상에서 상호 호환성을 보장하고, 각 디바이스에서 관리되는 서비스들이 배포 및 공유에 대한 공개 스펙을 제정하였다. 이런 배경으로 탄생한 것이 바로 OSGi 기술이다.

* OSGi Alliance - 모든 개발 및 스펙 제정 활동의 승인을 맡음.
* 현재 홈 네트워크의 기능 
가전기기의 상태 정보/모니터링, 기기의 원격제어 컨트롤, A/V 및 주방 가전의 홈 솔루션 통합
가정의 네트워크에 속한 단말이나 가전에 접근하기 위해서 디바이스에 대한 표준화된 네트워킹(이더넷, 블루투스, 무선 LAN, IEEE1394, PLC)과 범용 미들웨어(Universal Middleware)가 필요 - UPnP, HAVi, JINI 등이 등장

* OSGi특징
OSGi는 서비스가 작동하고 운영되는 서비스 환경에 관한 표준이다. 현재 다양한 디바이스간의 상호 운용성을 위해 UPnP, HAVi, JINI같은 표준이 만들어져 주로 장비의 제어나 데이터 전달 등을 처리하므로 이는 OSGi 기술과 상호 보완적인 위치에 있다고 할 수 있다.

< S/W Component Management >

자바 기반의 컴포넌트 구조로 설계되어 있다. 따라서 자바 런타임 환경하에서 작동하도록 만들어진 표준이다. 자바 VM은 이질적인 임베디드 운영체제와 임베디드 CPU 에서 발생하는 차이점에 대한 환충 역할을 한다.
또한 서비스 기반의 구조를 지향한다. 서비스는 모두 번들(Bundle)이라 불리는 물리적 묶음에 포함된다. 
복수 개의 OSGi 서비스가 하나의 번들에 포함될 수도 있으며, 번들에 배포와 관리의 기본 단위를 형성한다. 이 번들을 관리하는 것이 바로 프레임워크(Framework)이다. 프레임워크는 서비스에 대한 등록/관리(Service Registry)를 가지고 있어 서비스에 대한 등록, 조회, 실행, 삭제 등을 수행한다. 

* OSGi의 주요 구성 요소
1. Bundle : 서비스를 제공하기 위한 기능적 배포 단위
2. Framework : 번들의 라이프 사이클을 관리하는 번들 실행환경
3. Service : 특정 기능을 수행하는 자바 인터페이스와 실제 구현 객체

< 원격 컴포넌트 관리 >
번들 단위로 서비스를 형성하고 운영하는데, 번들을 업데이트하거나 원격에서 업데이트를 관리 및 제어할 수 있다. 
자바 Virtual Machine을 재부팅할 필요없이 사용 중에 원격으로 업데이트할 수 있는 것은 매우 큰 장점이다. 이를 위해 원격관리 표준 프로토콜을 제정했다.
 
< application간의 협업 >
OSGi는 SOA의 기본적인 구조, 즉 공통적으로 사용되기 위한 서비스 또는 라이브러리 API를 서버나 공간의 어느 디바이스에 등록해(Registry) 배포 및 공유하면(Contribute) 접근 가능한 어떤 애플리케이션이라도 사용할 수 있는 연결 구조(Loosely Coupled)를 지향한다. 

SOA(Service Oriented Architecture)
많은 자바 애플리케이션 서버 환경에서 구동하는 자바 애플리케이션들은 독립성을 보장하기 위해 극히 폐쇄적인 컨테이너 환경에서 동작.
따라서 다른 자바 애플리케이션과 연동이나 통합이 이뤄지려면 라이브러리 코드를 각각 가져와 구동해야 하므로 오버헤드가 필연적으로 발생
이를 해결하기 위한 솔루션 서비스.

< Architecture > 


OSGi는 우선 자바 런타임 화경에서 구동된다. 자바 런타임은 하드웨어 환경에 의해 J2ME, J2SE, J2EE로 구성되며, 하나의 VM에서 서로 다른 복수 개의 클래스 로더들에 의해 각각의 OSGi 애플리케이션을 실핸한다. 자바 런타인 환경 위에서는 OSGi 프레임워크가 실행된다. 
 프레임워크는 크게 번들이 실행주기(설치, 시작, 중단, 제거, 업데이트)와 기본 실행 단위인 번들과 서비스에 대한 운영관리, 이어서 리소스와 서비스 레지스트리 등을 담당한다.  

 


 

'Study > OS&Linux' 카테고리의 다른 글

리눅스 압축파일 사용 명령어  (0) 2009.06.08
QT 프로그래밍  (0) 2009.05.14
OSGI Technology  (0) 2009.05.14
OSGI & UPnP 참고사이트  (0) 2009.05.12