13
㈜㈜㈜㈜㈜ OSGI (Open Service Gateway initiative)

OSGI(Open Service Gateway initiative)

  • Upload
    ymtech

  • View
    299

  • Download
    1

Embed Size (px)

DESCRIPTION

OSGI(Open Service Gateway initiative) : 동적인 컴포넌트 모델을 지원하는 프레임워크

Citation preview

Page 1: OSGI(Open Service Gateway initiative)

㈜유미테크

OSGI(Open Service Gateway initiative)

Page 2: OSGI(Open Service Gateway initiative)

㈜유미테크2 ㈜유미테크 Yeoman

• Open Service Gateway initiative

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

• Dynamic Module System for Java

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

What is OSGi

Page 3: OSGI(Open Service Gateway initiative)

㈜유미테크3 ㈜유미테크 Yeoman

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

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

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

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

What is OSGi

Page 4: OSGI(Open Service Gateway initiative)

㈜유미테크4 ㈜유미테크 Yeoman

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

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

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

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

OSGi Feature

Page 5: OSGI(Open Service Gateway initiative)

㈜유미테크5 ㈜유미테크 Yeoman

OSGi framework Architecture

Page 6: OSGI(Open Service Gateway initiative)

㈜유미테크6 ㈜유미테크 Yeoman

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

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

Bundle

Page 7: OSGI(Open Service Gateway initiative)

㈜유미테크7 ㈜유미테크 Yeoman

• manifest.mf : 20 가지 헤더 정보를 가짐

Bundle

+ 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 8: OSGI(Open Service Gateway initiative)

㈜유미테크8 ㈜유미테크 Yeoman

Bundle

Page 9: OSGI(Open Service Gateway initiative)

㈜유미테크9 ㈜유미테크 Yeoman

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

Bundle Life Cycle

Page 10: OSGI(Open Service Gateway initiative)

㈜유미테크10 ㈜유미테크 Yeoman

• 번들은 서비스 인터페이스를 구현하여 서비스 객체를 생성하며 , 프레임 워크 서비스 레지스트리에 등록한다 .

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

Service

Page 11: OSGI(Open Service Gateway initiative)

㈜유미테크11 ㈜유미테크 Yeoman

Framework

Page 12: OSGI(Open Service Gateway initiative)

㈜유미테크12 ㈜유미테크 Yeoman

Getting started

package 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 13: OSGI(Open Service Gateway initiative)

㈜유미테크13 ㈜유미테크 Yeoman

Example

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

이용하는 예제

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

- DEMO_OSGi_DICTIONARY_KOREA: 한국어 사전 서비스

- DEMO_OSGi_DICTIONARY_JAPAN: 일본어 사전 서비스

- DEMO_OSGi_DICTIONARY_RUN: 사전 메인