본문으로 건너뛰기

3.3 JBoss EAP 6 주요 용어

JBoss EAP 6는 이전 버전과는 큰 차이점이 있으며, 완전히 새로운 기능과 개념을 많이 도입하였다. 다음에서 JBoss EAP6의 새로운 용어들을 분류하고 자세히 설명한다.

용어설명
도메인 모드도메인 모드는 JBoss EAP 6에서 사용할 수 있는 두 개의 구성 방법 중 하나이다. 도메인 모드는 여러 개의 물리적 서버와 가상 서버(호스트 컨트롤러)들을 중앙의 도메인 컨트롤러로 관리한다. 도메인 모드에서는 인스턴스(서버) 정보들을 서버 그룹이라는 논리적 단위로 묶어 관리한다. 서버 그룹의 각 서버는 동일한 설정과 배포 애플리케이션을 공유한다. 서버 그룹 설정은 프로파일이라고 한다. 도메인 모드는 중앙의 관리서버에서 설정을 단일한 구성정보로 관리하기 위한 방법이며, 클러스터링과 고가용성과는 관련이 없다.
스탠드얼론 모드스탠드얼론 모드는 JBoss EAP 6에서 실행할 수 있는 두 가지 서버 모드 중 하나이다. 동작 방식은 JBoss EAP5나 그 이전 버전의 방식과 유사하다. 각 서버는 로컬로 관리되고 각각 서버마다 고유의 설정을 가지게 된다.
도메인 컨트롤러도메인 모드에서 사용되는 용어이다. 물리적 호스트 및 서버 그룹, 서버 설정을 관리하는 프로세스이다. 기본적으로 도메인 컨트롤러는 로컬 호스트에서 실행되지만 다른 도메인 컨트롤러에 연결하도록 호스트를 설정할 수 있다.
호스트 컨트롤러도메인 모드에 사용되는 용어이다. JBoss EAP 6의 각 호스트마다 개별 실행되는 프로세스이다. 도메인 구성원은 다른 물리적 호스트에 적용되는 네트워크 인터페이스와 JVM 속성 등의 설정을 사용하도록 각 물리적 호스트를 설정할 수 있다.
domain.xml$JBOSS_HOME/domain/configuration/domain.xml 파일은 JBoss EAP 6 도메인 모드에 대한 설정 파일이다. 호스트와 관련된 정보를 제외한 설정 사항이 포함되어 있다. CLI 또는 웹 기반 관리 콘솔을 사용하여 구성 정보를 변경하면 설정 파일에 보관되기 때문에 이를 사용하여 관리하는 것을 권장한다.
standalone.xml$JBOSS_HOME/standalone/configuration/standalone.xml 파일은 JBoss EAP 6 스탠드얼론 모드에서 사용하는 설정 파일이다. 관리 CLI 또는 웹 기반 관리 콘솔을 사용하여 구성 정보를 변경하는 것을 권장한다. 파일 이름이 standalone-<PROFILE>.xml 의 형식으로 4 가지 종류의 스탠드얼론 모드 구성 예제가 포함되어 있다. <PROFILE>은 default, ha, full, full-ha 설정 파일로 기능에 따라 서브시스템 구성이 다르다.
서버 그룹도메인 모드에 사용되는 용어이다. 서버 그룹은 도메인의 여러 물리적 호스트에 존재하는 서버들의 가상 그룹이다. 서버 그룹의 각 서버들은 동일한 설정과 배포환경을 공유한다. 서버 그룹은 동일한 환경을 갖는 서버들을 관리하기 위한 것으로 애플리케이션의 배포단위이며, 고가용성 및 세션 복제를 목적으로 하고 클러스터를 의미하지 않는다. 서버 그룹의 설정은 프로파일에서 관리한다.
서버도메인 모드 및 스탠드얼론 모드에서는 서버라는 말이 다르다. 도메인 모드에서 서버는 서버 그룹의 구성원으로 물리적 호스트 컨트롤러에서 실행되는 플랫폼의 가상 인스턴스이다. 다른 물리적 호스트에서 실행되는 서버에도 동일한 서버 그룹의 구성원이 될 수 있다. 대부분의 서버 구성은 서버 그룹에서 관리하지만 일부는 물리적 호스트에서 설정할 수 있다. 스탠드얼론 모드에서 서버는 서버 인스턴스를 의미한다. 스탠드얼론 모드에서는 구성 프로파일을 하나로 관리하지만 도메인 모드는 여러 개의 프로파일을 저장할 수 있으며, 프로파일을 하나 이상의 서버 그룹에 적용할 수 있다.
소켓 바인딩 그룹도메인 모드에 사용되는 용어이다. 소켓 바인딩 그룹은 서버 그룹 설정에 적용 할 수 있는 소켓에 대한 정의이다. 서버 그룹에서 소켓 바인딩 그룹을 지정한다. 소켓 바인딩 그룹에서 사용하는 소켓 바인딩을 상세하게 제어할 수 있다.
소켓 바인딩소켓 바인딩은 물리적 네트워크 포트 및 네트워크 프로토콜 (TCP, UDP, ICMP 등)과 이름 간의 맵핑이다. 소켓 바인딩은 포트 할당을 추상화하여 이름에 지정하여 사용할 수 있도록 한다.
포트 오프셋동일한 물리적 호스트에서 여러 서버를 실행해야 하는 경우 서버가 동일한 포트를 사용하여 네트워크 포트 충돌이 발생할 수 있다. 소켓 바인딩 그룹에 포트 오프셋을 지정할 수 있다. 포트 오프셋은 사용하는 모든 포트 번호에 일괄적으로 더하는 정수값이다. 예를 들어, 8080 번 포트에 100 포트 오프셋을 적용하면 8180 번 포트가 할당된다.
모듈모듈은 클래스 로딩 및 의존성 관리에 사용되는 클래스의 논리적 그룹이다. 모듈은 정적 또는 동적 로딩이 가능하다. 모듈은 요청이 있는 경우에만 로드된다. 이것은 동적 클래스 로딩이라고 한다. JBoss EAP 시작하기 전에 정적 모듈이 존재한다. JBoss EAP에 포함되는 각 API는 정적 모듈이다. 정적 모듈은 미리 정의되어 있지만, 마찬가지로 요청이 있을 경우에만 로드된다. 동적 모듈은 배포 시에 필요할 때 즉, 요청이 있을 경우에만 로드된다.
웹 콘솔웹 콘솔은 JBoss EAP의 웹 기반 관리 인터페이스이다. 도메인 모드 및 스탠드얼론 서버 모드에 상관없이 웹 환경에서 사용할 수 있다. 관리 API를 사용하여 중앙 설정 파일의 정보를 읽어서 사용되는 웹 애플리케이션이다. 기본적으로 9990 포트로 사용하고 있다. 스탠드얼론 모드에서는 포트 오프셋을 더한 포트를 사용하며, 도메인 모드에서는 도메인 컨트롤러의 포트를 사용하여 접근한다.
CLI관리 CLI는 Red Hat Enterprise Linux 또는 Microsoft Windows 터미널에서 실행할 수 있는 커맨드라인 기반 관리 인터페이스이다. CLI는 스크립팅 및 배치 작업을 할 수 있으며 설정 파일에 대한 버전을 저장하거나 롤백 할 수도 있다. 로컬 인스턴스 및 원격 인스턴스를 관리할 수 있다. 관리 API를 사용하여 구성 세부 정보를 중앙 설정 파일에 읽고 쓴다.
Management APIManagement API는 REST와 비슷한 API로 유연하게 JBoss EAP를 관리 할 수 있다. CRUD(입력, 읽기, 업데이트, 삭제) 을 할 수 있으며 결과를 JSON 형식으로 반환한다. 웹 기반 관리 콘솔 및 관리 CLI는 코어 함수는 관리 API를 사용한다.
프로파일도메인 모드 와 스탠드얼론 모드 중 어느 것을 사용하는가에 따라 프로파일의 의미가 약간 달라지게 된다. 도메인 모드 프로파일은 서버 그룹에 적용되는 설정 옵션 그룹이다. 프로파일 및 소켓 바인딩 그룹, 배포, 서버 그룹을 설정한다. 관리 콘솔이나 관리 CLI에서 프로파일을 설정할 수 있다. 스탠드얼론 모드에서 프로파일은 JBoss EAP 구성 전체를 의미한다. 제공되는 4가지 프로파일이 있어 요구 사항에 가장 적합한 설정을 사용할 수 있다. 필요에 따라 사용자가 새로 작성하여 사용할 수도 있다. Java EE 6 프로파일은 Java EE 6 API를 의미한다.
Java EE 6 프로파일Java EE 6 프로파일은 Java EE 6 API의 하위 집합이다. Java EE 6는 풀 프로파일과 웹 프로파일의 두 가지 프로파일을 정의한다. 또한 추가 프로파일을 만드는 방법도 가능하다. JBoss EAP 6는 Full Profile 및 Web Profile을 모두 완벽하게 지원하고 있다.
모듈 클래스 로딩모듈 클래스 로딩은 JBoss EAP에서 모듈(클래스 그룹)을 로드하는 방법을 의미한다. 배포된 모듈은 요청될 때만 메모리에 로드된다. 배포된 모듈이 더 이상 필요하지 않으면 언로드된다. 모듈 클래스 로딩은 성능 및 보안에 직접적인 관련이 있다. 모듈 클래스 로딩은 자동으로 이루어 지기 때문에 이전 버전에서 수작업으로 설정하던 슬리밍 작업을 하지 않아도 된다.
서브 시스템서브 시스템은 JBoss EAP를 구성하는 컴포넌트이다. 서브 시스템의 설정은 모듈과 클래스 그룹에 적용된다. JPA, JCA, Security, modcluster 등 JBoss EAP에서 제공하는 각 API는 서브 시스템에서 설정할 수 있다. 각 서브 시스템의 설정은 JBoss EAP 6가 설치된 docs/ 디렉터리에 있는 XML 스키마를 따른다. 필요하면 자신만의 서브 시스템을 만들어 JBoss EAP 6를 확장할 수도 있다.
설정 파일 히스토리JBoss EAP 6는 수작업으로 XML을 변경하지 않고 웹 관리 콘솔과 관리 CLI 및 관리 API를 사용하여 설정할 것을 권장한다. 설정을 변경하면 파일 시스템에 자동으로 저장된다. 설정 파일의 변경사항이 버전으로 기록되어 이전 설정으로 롤백하는 것도 가능하다.
파일 시스템 경로JBoss EAP 6는 설정에서 파일 시스템 경로를 논리적 이름으로 지정할 수 있다. 이렇게 하면 특정 호스트만 다른 설치 디렉터리를 사용하는 경우 설정에서 파일 시스템 경로를 이용하여 설정하면 동일한 설정을 사용할 수 있게 된다.
암호화JBoss EAP 6는 데이터베이스 접근 암호와 같은 문자열을 암호화하여 사용하는 메커니즘이 포함되어 있다.
JBoss LogManagerJBoss LogManager는 JBoss EAP 6 서브 시스템 애플리케이션 및 JBoss EAP 6 다른 서브 시스템에서 송신된 로그 메시지를 수신한다. JBoss LogManager는 여러 종류의 애플리케이션 로깅 프레임 워크를 지원한다.
리소스 어댑터리소스 어댑터는 Java 커넥터 아키텍처(JCA) 표준을 사용하여 Java EE 애플리케이션과 엔터프라이즈 정보 시스템(EIS) 간의 통신을 제공하는데 사용하는 Java EE 컴포넌트이다. 일반적으로 리소스 어댑터는 EIS 벤더가 제공하며 이를 사용하면 벤더의 제품과 Java EE 애플리케이션간의 통합이 쉬워진다.
컨텍스트 및 의존성 삽입 (CDI)컨텍스트 및 의존성 삽입(Contexts and Dependency Injection, CDI)은 EJB 컴포넌트를 사용하는 Bean을 쉽게 만들 수 있도록 하기 위한 표준으로, 두 가지 컴포넌트 모델을 통일하여 쉽게 개발할 수 있도록 도와주는 것이다. JBoss EAP는 CDI의 참조 구현체인 Weld를 사용한다. CDI는 JCP의 JSR-299표준이다.
EJB 3.1EJB(Enterprise JavaBeans) 애플리케이션은 비즈니스 로직 레이어를 캡슐화하여 관리하는 컨테이너 관리 개체이다. EJB 3.1 표준은 세션 빈과 메시지 구동 빈을 정의한다.
포터블 JNDI 네임 스페이스EJB 3.1은 표준화된 글로벌 JNDI 네임 스페이스와 Java EE 애플리케이션의 다양한 범위와 맵핑하기 위한 여러 가지 네임 스페이스를 도입했다. Java EE 애플리케이션에서 사용되는 JNDI 네임 스페이스는 java:global , java:module , java:app 3가지이다. JBoss EAP 6는 새로운 기준을 사용하여 JNDI 이름 규칙을 사용한다. 규정되지 않은 이름이나 절대 이름은 최상위 네임 스페이스로 comp, module, app, global, jboss 중 하나를 사용해야 한다. JNDI 이름이 위와 같은 가이드를 지키지 않으면 Invalid name 오류가 발생한다.
메이븐 저장소Apache Maven은 Java 소프트웨어를 작성, 관리 및 빌드할 때 사용하는 자동 분산 빌드 도구이다. 메이븐은 POM 파일이라는 설정 파일을 사용하여 로컬 저장소와 원격 저장소에서 애플리케이션 빌드에 필요한 JAR 파일들의 의존성을 확인하고 자동으로 다운로드하여 빌드한다. JBoss EAP 6는 레드햇 고객 서비스 포털(CSP)에서 메이븐 로컬 저장소로 사용할 수 있는 파일을 제공하고 있다.
세컨드레벨 캐시 (2LC)세컨드 레벨 캐시(2LC)는 애플리케이션의 상태에 관련된 정보가 유지되는 데이터 저장소이다. 여기에 저장되는 객체들은 세션 상태, 싱글 사인온(SSO), Java Persistence API (JPA) 등이 있다. JBoss EAP 6 는 내부적으로 Infinispan을 사용하여 2차 레벨 캐쉬를 관리한다.
JBoss 로깅JBoss 로깅은 JBoss EAP에 포함된 애플리케이션 로깅 프레임 워크이다. 애플리케이션에 로깅을 추가하는 방법과 로그 메시지를 현지어화(l10n-Localization)하고 국제화(i18n-Internalization)하는 메커니즘을 제공한다. JBoss 로깅을 기본 로깅 프레임워크로 제공하지만, log4j와 같은 다른 로깅 프레임 워크를 사용할 수 있다.
영속 클래스 감사 및 버전 추적JBoss EAP 6는 데이터소스 정보를 나타내는 영속 클래스의 감사 및 버전을 추적하고 유지할 수 있도록 하는 Hibernate Envers가 포함되어 있다.
jboss-ejb3.xml 배치 디스크립터Java EE에서 정의하는 ejb3-jar.xml 배치 디스크립터에 의해 제공되는 기능을 무시하거나 추가하기 위해 이전 버전에서 사용하던 jboss.xml 대신, jboss-ejb3.xml 배포 디스크립터로 변경했다. 이 파일은 jboss.xml 과의 호환성이 없기 때문에 jboss.xml 는 배포 시 무시된다.
jboss-deployment-structure.xml 배포 디스크립터jboss-deployment-structure.xml 배포 디스크립터는 클래스 로딩을 제어하는 새로운 디스크립터이다. 이 파일은 META-INF/ 디렉터리나 WEB-INF/ 디렉터리에 만들어 놓는다. 이 디스크립터 파일에서는 자동으로 의존성이 추가되지 않도록 설정하거나, 의존성 있는 모듈을 추가하는 기능, 추가 모듈의 정의, EAR의 클래스 로딩의 방식의 변경, 모듈에 리소스 경로를 추가하는 기능 등 애플리케이션에서 모듈의 사용방법을 설정할 수 있다.

표 6. JBoss EAP 6의 주요 용어