OSGi 아키텍처

OSGi 서비스 플랫폼의 코어 파트는 Java™에 기반한 보안 및 관리 서비스 플랫폼을 정의합니다. 이 플랫폼은 번들로 알려진 확장 및 다운로드 가능한 애플리케이션의 배치를 지원합니다. 스펙에서는 보안 모델, 애플리케이션 라이프사이클 관리 모델, 서비스 레지스트리, 실행 환경, 모듈을 정의합니다.

OSGi는 Java용 동적 모듈 시스템을 정의합니다. 코어 OSGi 서비스 플랫폼은 계층화된 아키텍처를 보유하며 다양한 표준 Java 프로파일에서 실행하도록 디자인되었습니다. OSGi는 모듈 단위로 번들의 개념을 도입하며 플랫폼 아키텍처는 배치 단위로 번들에 기반합니다. OSGi 아키텍처는 다음과 같은 계층으로 구성됩니다.
실행 환경 계층
모듈 계층
라이프사이클 계층
서비스 레지스트리 계층
OSGi 아키텍처에 대한 자세한 정보는 핵심 OSGi 서비스 플랫폼 스펙을 참조하십시오.

실행 환경 계층

실행 환경 계층은 번들이 실행되는 Java 환경(예: Java EE 또는 Java SE)을 지정합니다. WebSphere Application Server에서 실행되는 OSGi 애플리케이션의 경우 실행 환경을 지정하지 않아도 됩니다.

모듈 계층

모듈 계층은 OSGi 프레임워크가 번들의 모듈 측면을 처리하는 위치입니다. OSGi 프레임워크가 번들을 처리할 수 있도록 지원하는 메타데이터는 번들 Manifest 파일에서 설정됩니다.

OSGi의 주요 장점 중 한 가지는, Manifest 파일에서 메타데이터를 사용하는 해당 클래스 로더 모델입니다. OSGi는 글로벌 클래스 경로를 보유하지 않습니다. 번들이 OSGi 프레임워크에 설치되면 모듈 계층에서 메타데이터가 처리되고 설치된 다른 모듈에서 선언한 버전화된 내보내기에서 선언된 외부 종속성이 조정됩니다. OSGi 프레임워크는 Manifest를 사용하여 종속성을 판별하고 각 번들에 대한 독립된 필수 클래스 경로를 계산합니다. 이 방식을 사용하면 다음과 같은 요구사항이 충족되므로 일반 Java 클래스 로드의 단점이 해결됩니다.
  • 메타데이터를 통해 명시적으로 특정 번들에 의해 내보낸 패키지만 다른 번들에서 가져오기용으로 표시됩니다.
  • 각 패키지는 특정 버전으로 분석될 수 있습니다.
  • 여러 개의 패키지 버전을 여러 클라이언트에서 동시에 사용할 수 있습니다.

라이프사이클 계층

OSGi의 번들 라이프사이클 관리 계층은 런타임에 Java 클래스 로드 관련 문제점과 클래스를 찾을 수 없음 예외(이를 찾을 수 없으므로 종속 클래스를 로드할 수 없음)가 발생한 가능성을 제거합니다. 프레임워크에 설치된 번들이 배치되면 먼저 프레임워크는 선언된 모든 종속성을 해결합니다. 해결되지 않은 종속성이 있으면 프레임워크는 이러한 종속성을 보고하고 번들을 시작하지 않습니다.

번들 라이프사이클에서:
  • 번들은 동적이며, 나머지 프레임워크와 독립적으로 시작 및 중지할 수 있습니다.
  • 각 번들은 시작 및 중지 이벤트에서 프레임워크가 호출하는 번들 액티베이터를 제공할 수 있습니다. 번들 액티베이터는 번들 Manifest에서 선언됩니다.

애플리케이션은 일반적으로 번들 액티베이터를 제공하지 않아도 됩니다. 그러나 번들을 시작하거나 중지할 때 초기화가 필요한 경우 번들 액티베이터를 작성할 수 있습니다.

서비스 레지스트리 계층

OSGi에서 서비스 레지스트리 계층은 본질적으로 SOA(Service-Oriented Architecture)를 지원합니다. 번들은 서비스를 서비스 레지스트리에 공개하므로, 다른 번들은 서비스 레지스트리에서 이러한 서비스를 검색할 수 있습니다.

이 서비스는 번들 간 협업을 위한 주요 수단입니다. OSGi 서비스는 사용자 정의 특성(이름-값 쌍)으로 저장된 선택적 메타데이터와 함께 하나 이상의 Java 인터페이스 이름 아래 서비스 레지스트리에 공개되는 POJO(Plain Old Java Object)입니다. 검색하는 번들은 인터페이스 이름으로 서비스 레지스트리에서 서비스를 검색한 후 사용자 정의 특성을 사용하여 잠재적으로 서비스를 필터링할 수 있습니다.

서비스는 완전히 동적이며 일반적으로 이를 제공하는 번들과 라이프사이클이 동일합니다.

주제 유형을 표시하는 아이콘 개념 주제
Information Center의 이용 약관 | 피드백

시간소인 아이콘 마지막 업데이트 날짜: 2014-05-22

파일 이름: cosgiarchitecture.html