Os gi 기술교육

14
OSGi 소소

description

OSGI

Transcript of Os gi 기술교육

Page 1: Os gi 기술교육

OSGi 소개

Page 2: Os gi 기술교육

Agenda

•OSGi 소개

•OSGi 특징 및 구조

•OSGi Framework

•예제

Page 3: Os gi 기술교육

What is OSGi

•Open Service Gateway initiative

•OSGi Alliance 에서 동적인 플랫폼을 만들기 위해 시작

•Dynamic Module System for Java

• 동적인 컴포넌트 모델을 지원하는 프레임워크

Page 4: Os gi 기술교육

What is OSGi

•번들 (Bundle) 라는 모듈 단위를 기반으로 동작

•여러 개의 번들로 애플리케이션 구성

•동적으로 프레임워크 상에 설치 , 실행 , 업데이트 , 중단 , 제거

•라이프 사이클 모델을 지원

Page 5: Os gi 기술교육

OSGi Feature

•자바 플랫폼 위에 , 번들이라 불리는 작고 재사용 가능한 컴포넌트로부터 조립

•시스템의 재시작 없이 연결구조를 동적으로 변경

•번들이 동적으로 추가 / 삭제되고 서로 간에 호출

•Service Registry 에 서비스를 등록 서비스를 export / import

Page 6: Os gi 기술교육

OSGi framework Architecture

Page 7: Os gi 기술교육

Bundle

•번들 (Bundle) 이라는 모듈 단위를 기반으로 동작

•Bundle 구성 = resources + mainfest file + OSGI-OPT

Page 8: Os gi 기술교육

Bundle• manifest.mf : 20 가지 헤더 정보를 가짐 + Bundle-ManifestVersion : 1 = OSGi release 3, 2 = OSGi release 4 + Bundle-Name : human-readable name + Bundle-SymbolicName : unique name + Bundle-Activator : BundleActivator 를 상속 . start/stop 관련 + Import-Package : package 를 정의 . 사용할 번들 + Export-Package : package 를 정의 . 외부노출

Page 9: Os gi 기술교육

Bundle

Page 10: Os gi 기술교육

Bundle Life Cycle• OSGi 는 다이내믹 플랫폼으로 ,  프레임워크가 동작하고 있는 도중에 번들을 설치 ,  시작 ,  업데이트 ,  멈춤 ,  제거 할 수 있다 . 

Page 11: Os gi 기술교육

Service• 번들은 서비스 인터페이스를 구현하여 서비스 객체를 생성하며 , 프레임 워크

서비스 레지스트리에 등록한다 .• 또한 서비스 레지스트리를 통해서 등록된 서비스를 찾고 Interact 할 수 있다 .

Page 12: Os gi 기술교육

Framework

Page 13: Os gi 기술교육

Getting startedpackage com.ymtech;

import org.osgi.framework.BundleActivator;import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {public void start(BundleContext context) throws Exception {

System.out.println("Hello!!");} public void stop(BundleContext context) throws Exception {

System.out.println(“byebye~");}

}

Page 14: Os gi 기술교육

Example

•사전 서비스 - 번들의 결합을 보여주고 서비스를 등록하며 서비스를 찾아 서비스를

이용하는 예제

• DEMO_OSGi_DICTIONARY: 사전 서비스의 구현 인터페이스

• DEMO_OSGi_DICTIONARY_KOREA: 한국어 사전 서비스

• DEMO_OSGi_DICTIONARY_JAPAN: 일본어 사전 서비스

• DEMO_OSGi_DICTIONARY_RUN: 사전 메인