1. Introduction
OSGi Framework Overview
- OSGi 프레임워크는 OSGi 서비스 플랫폼 스팩의 핵심요소다.
- 번들 보안과 배포 다운로드, 설치, 제거를 동적이고 확장가능한 형태로 담당한다. 그러기 위해서 번들과 서비스의 종속성을 관리하는데 이 부분은 나중에 자세히.
- 프레임워크의 기능 세분화
- Security Layer: Java 2 security를 기반으로 다양한 제약 사항들과 blank(?)들을 추가했다. 보안 패키징 형식을 정의한다.
- Module Layer: 모듈화 된 모델을 정의한다. 자바 배포 모델의 단점을 극복한다. 자바 패키지를 번들에서 공유하거나 다른 패티지로부터 숨기는 등의 규칙을 가지고 있다. Life Cycle Layer와 Service Layer 없이도 사용할 수 있다. Life Cycle Layer는 번들을 Module Layer에서 관리할 수 있는 API를 제공한다. Service Layer는 번들 간의 의사소통 모델을 제공한다.
- Life Cycle Layer: 번들에 라이프 사이클 API를 제공한다. 번들을 다루기 위한 런타임 모델을 제공한다. 어떻게 번들을 시작하고 멈추고 설치하고 업데이트하고 언인스톨할지 정의한다. 추가적으로 다양한 이벤트 API를 제공하여 번들이 서비스 플랫폼의 기능을 제어할 수 있도록 한다. Life Cycle Layer는 Module Layer가 꼭 필요하며 Service Layer는 선택사항이다. 나중에 좀 더 자세히.
- Service Layer는 자바 번들 개발자들에게 동적이고, 정확하며, 탄탄한 프로그래밍 모델을 제공한다. 인터페이스와 구현체 사이를 디커플링 함으로써 서비스 번들의 개발과 배포를 단순화 시킨다. 이 모델은 번들 개발자들이 그들의 인터페이스만 가지고 서비스를 묶을 수 있도록 한다. 번들이 프레임워크 서비스 레지스트리를 통해서 동적으로, 가용한 구현체를 선택할 수 있도록 허용한다. 번들은 새로운 서비스를 등록하고, 서비스 상태에 대한 정보를 받고, 기존의 서비스를 룩업 할 수 있다. 프레임워크의 이런 측면으로 인해 번들을 배포된 이후에도 확장성을 보장한다. 즉, 시스템을 재시작 할 필요없이 새로운 기능을 추가한 번들을 설치하거나, 이미 존재하는 번들을 수정하고 업데이트 하는 것이 가능하다.
- 레이어들 사이의 관계
참조: OSGi Spec