7장. JBoss EAP 서브시스템
이번 장에서는 서브시스템(Subsystem)의 개념을 설명한다. JBoss EAP 6에서 하나의 서브시스템은 JBoss의 어떤 기능 하나를 의미한다. 이런 서브시스템들을 묶어서 프로파일이라고 한다.
이번 장에서는 서브시스템과 프로파일에 대해서 설명한다.
1.서브시스템 개요
JBoss EAP 6는 도메인 모드나 스탠드얼론 모드에서 하나의 설정 파일을 사용하여 단순한 관리 방법을 제공한다. 설정 파일인 XML 을 직접 수정하여 변경할 필요 없이 관리 콘솔이나 CLI를 사용하면 자동으로 변경사항이 XML에 반영된다. 또한, 설정 관리 API를 통해 각종 설정 정보를 업데이트할 수도 있다. 커맨드 라인 기반 관리방법인 CLI 및 웹 기반의 관리 콘솔을 통해 JBoss EAP의 여러 가지 설정 정보를 변경할 수 있다.
Java EE 표준의 구현 및 기타 JBoss EAP 6가 제공하는 기능을 서브시스템이라는 기능 단위로 제공하고 있다.
JBoss EAP 6는 모듈 기반의 클래스 로딩을 기반으로 하고 있다. JBoss EAP 6 자체도 모듈이다. 제공하는 모든 API와 서비스도 모두 모듈로 구성하였고 JBoss EAP 6도 모듈로 동작한다. 이러한 모듈들은 애플리케이션에서 해당 기능의 모듈을 요청할 때 로드하고, 사용하지 않으면 언로드된다. 모듈 대부분은 서브시스템이라는 설정 가능한 항목들이 포함되어 있으며, 서브시스템 구성 정보는 관리 도메인의 경우에는 $JBOSS_HOME/domain/configuration/domain.xml 이라는 파일에, 스탠드얼론 서버의 경우에는 $JBOSS_HOME/standalone/configuration/standalone.xml 라는 파일에서 각 모듈에 대한 설정을 변경할 수 있다. 서브시스템들은 JBoss EAP 5버전에서 배포 디스크립터에서 사용하던 대부분의 설정 정보를 포함하고 있다.
- 서브시스템 설정 스키마
각 서브시스템의 설정을 위한 XML 스키마가 정의되어 있다. 설정 스키마 파일들은 JBoss EAP 6설치 디렉터리의 $JBOSS_HOME/docs/schema/ 디렉터리에 있다.
ee, ejb, jaxrs, pojo, sar, threads, weld등의 서브시스템은 구성 가능한 속성이 없어서 간이 서브시스템이라고 하며 일반적으로 설정 파일의 윗부분에 지정되어 있다.
2.프로파일
JBoss EAP 6가 제공하는 주요 서브시스템들은 프로파일별로 구분하면 다음 그림과 같다.

그림 1. JBoss EAP 6의 프로파일
JBoss EAP 6가 제공하는 네 가지 프로파일을 구성하는 서브시스템을 그림으로 표현한 것이다. full 프로파일은 default 프로파일에 CMP(Container Managed Persistence), CORBA, JMS 등의 기능이 추가된 것이다. 또 뒤에 ha가 붙은 프로파일들은 jgroups와 mod cluster 서브 시스템이 추가되어 클러스터링 기능을 제공하는 프로파일들이다.
스탠드얼론 모드에서 default 프로파일은 standalone.xml 파일을 사용하며, ha 프로파일은 standalone-ha.xml, full 프로파일은 standalone-full.xml, full-ha 프로파일은 standalone-full-ha.xml 파일을 사용한다.
다음 장부터 JBoss EAP 6가 제공하는 서브시스템에 대해 하나씩 자세히 살펴보려고 한다.