OSGi 서비스 플랫폼의 코어 파트는 Java™에 기반한 보안 및 관리 서비스 플랫폼을 정의합니다. 이 플랫폼은 번들로 알려진 확장 및 다운로드 가능한 애플리케이션의 배치를 지원합니다. 스펙에서는 보안 모델, 애플리케이션 라이프사이클 관리 모델, 서비스 레지스트리, 실행 환경, 모듈을 정의합니다.
실행 환경 계층은 번들이 실행되는 Java 환경(예: Java EE 또는 Java SE)을 지정합니다. WebSphere Application Server에서 실행되는 OSGi 애플리케이션의 경우 실행 환경을 지정하지 않아도 됩니다.
모듈 계층은 OSGi 프레임워크가 번들의 모듈 측면을 처리하는 위치입니다. OSGi 프레임워크가 번들을 처리할 수 있도록 지원하는 메타데이터는 번들 Manifest 파일에서 설정됩니다.
OSGi의 번들 라이프사이클 관리 계층은 런타임에 Java 클래스 로드 관련 문제점과 클래스를 찾을 수 없음 예외(이를 찾을 수 없으므로 종속 클래스를 로드할 수 없음)가 발생한 가능성을 제거합니다. 프레임워크에 설치된 번들이 배치되면 먼저 프레임워크는 선언된 모든 종속성을 해결합니다. 해결되지 않은 종속성이 있으면 프레임워크는 이러한 종속성을 보고하고 번들을 시작하지 않습니다.
애플리케이션은 일반적으로 번들 액티베이터를 제공하지 않아도 됩니다. 그러나 번들을 시작하거나 중지할 때 초기화가 필요한 경우 번들 액티베이터를 작성할 수 있습니다.
OSGi에서 서비스 레지스트리 계층은 본질적으로 SOA(Service-Oriented Architecture)를 지원합니다. 번들은 서비스를 서비스 레지스트리에 공개하므로, 다른 번들은 서비스 레지스트리에서 이러한 서비스를 검색할 수 있습니다.
이 서비스는 번들 간 협업을 위한 주요 수단입니다. OSGi 서비스는 사용자 정의 특성(이름-값 쌍)으로 저장된 선택적 메타데이터와 함께 하나 이상의 Java 인터페이스 이름 아래 서비스 레지스트리에 공개되는 POJO(Plain Old Java Object)입니다. 검색하는 번들은 인터페이스 이름으로 서비스 레지스트리에서 서비스를 검색한 후 사용자 정의 특성을 사용하여 잠재적으로 서비스를 필터링할 수 있습니다.
서비스는 완전히 동적이며 일반적으로 이를 제공하는 번들과 라이프사이클이 동일합니다.