■ OSGi(Open Services Gateway Initiative - Dynamic Module for Java)

- 한개의 번들 또는 여러 개의 번들로 이루어진 애플리케이션 자체를 언제든지 동적으로 프레임워크상에 설치, 실행, 업데이트, 중단, 제거하는 것을 가능하게 하는 매우 유연한 라이프 사이클모델을 지원하는 프레임워크

- JSR-291 : Dynamic Component Support for Java

- JSR-277 : Java Module System

■ OSGi History

- OSGi Alliance(http://www.osgi.org) 1999년 3월 IBM, Sun, NOKIA, Samsung

- 홈네트워크를 지원하기 위한 플랫폼으로 개발

■ OSGi 특징

- 각 애플리케이션이 번들이라고 불리는 작고 재사용 가능한 컴포넌트로부터 조립될수 있도록 도와준다

- 여러개의 번들로부터 조합된 애플리케이션들은 OSGi 프레임워크가 설치된 곳은 어디든지 배포될 수 있다.

- 조합된 어플리케이션들은 시스템의 재시작없이 컴포넌트의 연결 구조를 동적으로 변경할 수 있다.

■ OSGi의 사용처

- 이클립스 : 포함된 equinox가 OSGi의 구현체로 번들로 구성된다.

- 프린터 및 복합기 : Canon MEAP, Ricoh OSA

- WAS

IBM Websphere, Oracle WebLogic, Redhat JBoss, SpringSource Application Platform, Sun GlassFish Enterprise Server

■ OSGi의 구현체

- OSGi는 Specification만이 존재하므로 여러 구현체가 있게 된다. 이 구현체의 목록은 아래와 같다.

구현 Spec

License

URL

Eclipse Equinox R4

EPL

http://www.eclipse.org/equinox

Apache Felix

R4 APACHE

http://www.felix.apache.org

Knopflerfish R4&R3 BSD http://www.knopflerfish.org

Concierge

R3 BSD

http://concierge.sourceforge.net

ProSyst mBedded Server R4

EPL&Professional Edition

http://www.prosyst.com

■ OSGi 의 특징 2

- 여러개의 번들로부터 조합된 애플리케이션들은 OSGi 프레임워크가 설치괸 곳은 어디든지 배포 가능

- 애플리케이션들은 시스템의 재시작 없이 컴포넌트의 연결구조를 동적으로 변경할 수 있다.

- 동적으로 변경하기 위해 OSGi는 서비스 지향 아키텍처(SOA)를 사용

- OSGi에서 제공하는 Service Registry에 자신의 서비스를 등록하여 OSGi를 통해 서비스를 import/export 가능

※ SOA - 소프트웨어를 구축할 때, 각각의 컴포넌트에 의해 처리되는 작업들을 잘 정의된 인터페이스를 가지는 서비스들로 도출한 후, 이를 연동/조합하여 시스템을 구축하는 형식

즉 '서비스'와 '이를 조합하여 하나의 어플리케이션을 구축하는 것'이 중심

■ OSGi API - 구현체인 관계로 API는 동일하며 OSGi Alliance(http://www.osgi.org/Release5/Javadoc) 에서 서비스 한다. 현재 버전 5

 

[펌] : http://pirrip.tistory.com/122

http://mobicon.tistory.com/34

http://cafe.naver.com/eclipseplugin/2278
posted by cozyboy
: