JBoss 퓨즈-Apache Karaf
이 장에서는 Apache Karaf에 대해 설명하고 장점 및 기타 중요한 기능과 함께 경량 OSGi 컨테이너로 불리는 이유에 대해 설명합니다.
JVM 문제
JVM 또는 Java 가상 머신은 실제 가상 머신으로 작동하지 않습니다. 내부에서 실행중인 구성 요소를 즉시 중지, 시작 또는 다시 시작할 수있는 시스템입니다. 때로는 클래스 수준에서 핫 배포를 허용 할 수 있지만 다시 시작하지 않고 가상 머신에서 애플리케이션의 구성 요소를 배포하거나 배포 취소 할 수있는 방법은 없습니다.
이 문제를 해결하고 Java 애플리케이션에서 모듈화를 허용하기 위해 Fuse는 Apache Karaf로 알려진 OSGi 기반 런타임을 사용합니다.
OSGi
OSGi 기술은 Java 용 동적 구성 요소 시스템을 정의하는 일련의 사양입니다. 이러한 사양은 응용 프로그램이 (동적으로) 여러 다른 (재사용 가능) 구성 요소로 구성된 개발 모델을 허용합니다.
OSGi의 이점
Reduced Complexity − 애플리케이션은 서로의 구현 세부 사항을 숨기는 협업 구성 요소로 구축되어 복잡성이 감소합니다.
Reusability − 많은 구성 요소가 컨테이너에 배포 된 동일한 구성 요소를 활용할 수 있습니다.
Deployment − OSGi는 컨테이너를 다시 시작하지 않고도 수명주기 관리 API를 통해 구성 요소의 시작, 중지 및 업데이트를 즉시 지원합니다.
번들 대 기능
다음은 번들과 기능을 비교 한 것입니다.
묶음
번들은 JVM에 대한 jar가 무엇인지 OSGi와 동일합니다. 번들은 OSGi 컨테이너에 배포 할 수있는 아티팩트입니다. 번들은 응용 프로그램을 형성하기 위해 함께 또는 독립적으로 작동하는 구성 요소입니다.
이러한 번들은 컨테이너를 다시 시작하지 않고도 런타임에 설치, 제거, 업데이트, 시작 또는 중지 할 수 있습니다.
풍모
기능은 여러 번들을 함께 배포하는 방법입니다. 때로는 그룹으로 번들을 배포하는 것이 더 합리적입니다. 기능을 통해 단 하나의 명령으로 번들 그룹을 배포 할 수 있습니다.
왜 다른 컨테이너인가?
Apache Karaf는 OSGi 기반 런타임이며 애플리케이션 번들이 실행되는 곳입니다. Fuse는 번들이 실행되고 협업하여 비즈니스 기능을 제공하는 런타임으로 Apache Karaf를 사용합니다.
Karaf는 OSGi 프레임 워크 인 Felix 및 equinox를 기반으로합니다.
Karaf 아키텍처
Apache Karaf는 기본 OSGi 런타임에 다음과 같은 추가 기능을 추가합니다.
핫 배포
Karaf는 핫 배포를 지원합니다. 핫 배포 디렉터리가 포함되어 있습니다. 이 디렉토리에있는 모든 항목은 Karaf에 번들로 자동 배포 및 설치됩니다.
벌채 반출
Karaf는 모든 번들에 대한 로그를 생성하여 중앙 집중식 로깅을 제공합니다. $Fuse_home/data/log. 로거 구성을 편집 할 수 있습니다.org.ops4j.pax.logging.cfg 에 $Fuse_home/etc directory.
관리 콘솔
Karaf는 실행중인 fuse 인스턴스와 상호 작용할 수있는 정교하고 명쾌한 관리 콘솔을 제공합니다. 또한 런타임에 구성 요소 (번들)를 관리하고 모니터링하는 데 사용할 수있는 사전 설치된 명령 집합을 제공합니다. 이 콘솔은 확장 가능하므로 콘솔에 새 번들을 추가하여 콘솔에 새 명령을 추가 할 수 있습니다.
SSH 액세스
Karaf는 SSH를 통해이 관리 콘솔에 대한 원격 액세스를 허용합니다. 유효한 자격 증명을 가진 사람은 누구나 SSH 터미널을 통해 karaf 관리 콘솔에 연결할 수 있습니다.