블로그 이미지
윤영식
Full Stacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2012. 10. 27. 14:10 Middleware, Cloud/OSGi

▶ OSGi (Open Services Gateway Initiative)


OSGi 기술은 java에서 동적 컴포넌트 시스템을 정의한 스펙이다. 

The OSGi technology is a set of specifications that define a dynamic component system for Java. 


컴포넌트 모듈을 만들고 이들을 추가하면 동적으로 반영되고 상호 모듈끼리 통신하여 대화할 수 있도록 만들어 주는 부분이 필요하다. 이를 위하여 OSGi는 어떤 Layer를 가지고 있나 보자 



참조 http://www.osgi.org/Technology/WhatIsOSGi


위의 관계를 간단히 보면 다음과 같다


  - 자바 인터페이스와 실제 구현 개체를 Service로 만든다 - Services Layer

  - 서비스를 제공하기 위한 기능적 배포단위로 Bundle을 만든다 (Jar 파일롤 묶음. MANIFEST 파일 포함) - Module Layer

  - 번들의 생명주기 관리는 Bundle Context가 해준다 (번들의 설치, 실행, 정지, 삭제 생명주기관리) - Life Cycle Layer

  - Installed -> Resolved -> Start -> Active -> Stop -> Resolved -> Uninstalled 

  - OSGi 프레임워크는 소량의 메모리로 효율적인 통합된 컴포넌트 개발환경을 제공하고, 애플리케이션 실행 중에도 동적 다운로드 
    및 업그레이드가 가능하게 해준다. 이는 OSGi가 애플리케이션간의 의존성을 관리하고 확장성(Scalable)를 제공한다. 

OSGi 프레임워크는 Bundle을 관리하는 Bundle Context를 가지고 있고 Bundle이 가지고 있는 Service를 등록하여 Bundle끼리 상호 대화할 수 있도록 해준다. 결국 Service를 등록하는 Registry가 OSGi Framework안에 존재하고 해당 Registry가 Service들을 상호 연결시켜주는 방식이다. 해당 방식은 Spring Framework의 DI (Denpendency Injecttion)가 같고, 결국 SOLID의 DIP 원리를 구현하여 서비스끼리의 Loosed Coupling을 지원한다는 말씀되시 겠다. 




* OSGi 사용 장점

  - 개발자입장에서 큰규모의 분산환경 구현 및 배포를 컴포넌트 기반으로 하기 때문에 이에대한 복잡성을 제거하여 단순화 해준다. (Eclipse, JBoss, Spring등에 쓰이고 있다)

  - 사업면에서는 운영비용을 줄여주고 네트워크환경의 멀티디바이스 통합을 손쉽게 해준다 

  - 또다른 이점은  http://www.osgi.org/Technology/WhyOSGi 여길 참조하자. 좋은 점은 다가졌다는 이야기


* OSGi 이론 다시 정리 참조http://blog.secmem.org/107


'Middleware, Cloud > OSGi' 카테고리의 다른 글

[Eclipse Virgo] 사용하기  (0) 2012.11.03
[OSGi] 서비스 Layer 만들기  (0) 2012.10.30
[OSGi] BundleContext에 의한 LifeCycle 관리  (0) 2012.10.30
[OSGi] manifest.mf 파일 설정  (0) 2012.10.30
[OSGi] Felix 설치 사용하기  (0) 2012.10.29
posted by 윤영식