3장. JBoss EAP 6 설치하기

Revision History

Name

Date

Reason For Changes

Version

오픈나루

2013/11

Initial Version

1.0

전준식, jjeon@opennaru.com

2018/02

Second Version

2.0

이 장에서는 JBoss EAP 6를 설치하는 방법에 대해서 소개한다.

JDK 설치 방법과 JBoss 다운로드 방법을 설명하고 JBoss를 설치하는 여러 가지 방법(rpm, 압축파일, 인스톨러를 사용하는 방법) 중에서 ZIP 파일을 이용하여 설치하는 방법을 설명한다.

03-1.기본 환경

이 책의 JBoss EAP 6 테스트 환경은 리눅스 환경을 기반으로 설명한다. 사용하고 있는 운영체제가 윈도우즈 환경이라면, VirtualBox나 VMWare등을 이용하여 RHEL 6나 CentOS 6리눅스 가상 머신을 설치하여 테스트 환경을 구성한다.

Red Hat Enterprise Linux(이하 RHEL)는 30일간 사용할 수 있는 평가판 버전을 제공하고 있다. 다음 사이트에서 다운로드 할 수 있다. RHEL 6 버전을 다운로드 받아 설치한다.

또는 RHEL의 소스를 다시 빌드해 제공하는 CentOS(Community ENTerprise Operating System)는 http://www.centos.org/에서 다운로드 받을 수 있다. CentOS 6 최신 버전을 다운로드 받아 가상 머신에 설치한다.

03-2.JBoss EAP 6의 다운로드와 설치

JDK설치

JBoss EAP 6가 지원하는 Java 버전은 1.6, 1.7버전이다. 오라클 JDK(Java SE Development Kit)를 다운로드 받아 설치하자. 리눅스에서는 rpm 버전으로 설치하는 것이 설치, 제거, 버전 업그레이드 등 설치 프로그램에 대한 관리가 편리하기 때문에 rpm 버전을 다운로드 받아 설치한다.

따라하기

  1. JDK 다운로드

  2. JDK 설치

  3. java alternative 설정

  4. Java 버전 확인

  1. JDK 다운로드

    oracle.com사이트에서 jdk-7u45-linux-i586(x64).rpm을 다운로드한다.

  1. JDK 설치

    $ rpm -ivh jdk-7u45-linux-x64.rpm
    
    Preparing... #################################### [100%]
    
    1:jdk ##################################### [100%]
    
    Unpacking JAR files...
    
    rt.jar...
    
    jsse.jar...
    
    charsets.jar...
    
    tools.jar...
    
    localedata.jar...
    
    jfxrt.jar...
  1. java alternative 설정

    $ *alternatives --install /usr/bin/java java /usr/java/latest/bin/java 20000*
    
    $ *alternatives --config java*
    
    There are 3 programs which provide 'java'.
    
    Selection Command
    
    -----------------------------------------------
    
    * 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
    
    2 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
    
    + 3 /usr/java/latest/bin/java
    
    Enter to keep the current selection[+], or type selection number: 3
  1. java Version 확인

    $ java -version
    
    java version "1.7.0_45"
    
    Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
    
    Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

Path 추가

Java를 rpm 버전으로 설치하고 alternatives 명령을 이용하여 java를 설정했기 때문에 경로는 /usr/bin/java → /etc/alternatives/java → /usr/java/latest/bin/java로 심볼릭 링크로 연결되어 있어 경로를 설정하지 않아도 java를 사용할 수 있다. 하지만, java 이외의 jar, javac, jps등 JDK가 제공하는 다른 유틸리티들을 사용하려면 사용자 PATH에 JDK 설치 경로를 추가하는 것이 좋다.

다음과 같이 ~/.bashrc 파일에 PATH를 추가한다.

따라하기

  1. .bashrc열기

  2. PATH추가

  3. PATH 확인

  1. .bashrc 열기

    $ vi ~/.bashrc
  1. PATH 추가

    .bashrc파일의 맨 뒤에 다음 내용을 추가한다.
    
    ## added by jboss
    
    export JBOSS_HOME=/EAP6book/jboss/jboss-eap-6.2
    
    export HTTPD_HOME=/EAP6book/web/jboss-ews-2.0/httpd
    
    export PATH=$PATH:/usr/java/latest/bin
  1. PATH 확인

    source ~/.bashrc
    
    echo $PATH

JBoss EAP 6 지원 환경

JBoss EAP 6 를 설치하기 전에 해당 버전이 지원하는 구성 환경에 대한 확인이 필요하다.

JBoss EAP 6로 테스트된 플랫폼과 Java VM, JDBC 드라이버와 DB 등에 대한 상세한 지원 내용은 아래의 URL을 참조하자.

image

그림 1. JBoss EAP 6 지원하는 구성 환경

JBoss EAP 6 다운로드

JBoss EAP 6는 레드햇의 서브스크립션을 구매하면 사용할 수 있지만, 커뮤니티 개발자를 위해서 jboss.org 에서 개발 환경에서만 사용할 수 있는 JBoss EAP 6버전을 제공하고 있다.

다운로드를 하기 위해서는 jboss.org 에 사용자 등록을 해야 한다. http://www.jboss.org/products/eap 에서 다운로드 할 수 있다.

다음은 이미 서브스크립션을 보유한 경우 레드햇 고객 포탈에서 다운로드할 수 있다.

순서 작업

1

고객 서비스 포털(https://access.redhat.com)에 로그인한다.

2

메뉴에서 Downloads → JBoss Enterprise Middleware → Downloads 를 선택한다.

3

Product 콤보 박스에서 Application Platform 을 선택한다.

4

Application Platform 6.2 버전을 찾아 Download 링크를 클릭한다.

5

Quickstarts, Maven Repository, HTTP Connectors 네이티브 바이너리 등 필요한 다른 패키지를 다운로드 한다.

JBoss EAP 6 설치

JBoss EAP 6 설치는 Red Hat의 RPM 저장소인 yum 레파지토리를 이용한 설치 방법, GUI 설치 방법 또는 ZIP 압축파일을 사용하는 방법이 있다.

윈도우의 인스톨러처럼 GUI를 이용한 방법으로도 설치 가능하지만, ZIP 파일을 사용하는 방법은 원하는 디렉터리에 단순히 unzip 하기만 하면 설치가 완료되어 이 방법을 더 많이 사용한다.

RPM 을 이용한 설치

RPM 패키지를 사용하여 JBoss EAP 6를 설치하는 방법은 Red Hat Enterprise Linux 6(RHEL 6)에서만 사용할 수 있다. 설치 방법은 Red Hat Network(RHN)를 사용하여 리눅스 서버에 JBoss EAP 채널을 추가하여 설치하는 방법이다. 물론 RHEL 6의 서브스크립션과 JBoss EAP 6 서브스크립션이 사용 가능한 상태여야 하고 RHEL 6서버가 RHN에 등록된 상태여야 한다.

GUI설치 프로그램을 이용한 설치

JBoss EAP 6 GUI설치 프로그램은 여러 가지 설치 방법이 제공된다. 표준 그래픽 사용자 인터페이스 (GUI)를 이용한 설치나, 명령 줄 인터페이스(CLI) 모드를 사용할 수 있다. 또, 자동 설치 모드를 사용하면 향후 똑 같은 설치를 여러 번 반복해야 할 경우에 유용하다. 설치 시에 선택한 히스토리를 설정 XML 파일에 보관할 수 있어, 이를 반복하여 사용할 수 있다.

  • GUI 설치

    $ java -jar jboss-eap-6.2.0-installer.jar
  • CUI 설치

    $ java -jar jboss-eap-6.2.0-installer.jar -console
  • 자동설치

    $ java -jar jboss-eap-6.2.0-installer.jar NameOfXML.xml

Zip 파일을 이용한 설치

Zip 파일을 이용한 설치 방법은 JBoss EAP 6를 설치할 디렉터리로 이동하여, unzip프로그램을 사용하여 zip파일의 압축을 해제한다. 가장 간편한 방법이어서 실제 운영환경에 설치할 때는 대부분 이 방법을 사용한다.

$ unzip jboss-eap-6.2.0.zip

관리자 등록

JBoss EAP 6에서 관리 인터페이스는 기본적으로 보안이 적용되어 있고 등록된 사용자가 없는 상태이다. 이유는 제품 설치 시에 기본 관리자가 있는 경우 이를 변경하지 않아 향후 원격 시스템에서 침입하는 보안 사고 발생을 막기 위한 예방책이다. GUI 방식으로 설치하면 설치 과정에서 관리자 아이디와 패스워드를 설정하게 되지만, ZIP 파일을 이용하여 설치할 경우에는 add-user.sh 를 실행하여 초기 관리자 아이디와 패스워드를 등록해야 한다. 로컬 HTTP 이외의 액세스는 SASL(Simple Authentication and Security Layer) 메커니즘에 의해 보호되고 있어, 로컬 호스트에서 클라이언트가 연결할 때마다 클라이언트와 서버간에 협상이 이루어진다.

다음의 작업은 웹 기반 관리 콘솔 및 관리 CLI에 접속하여 JBoss EAP 6를 설정하고 관리 할 수 있는 초기 관리자를 생성하는 방법이다.

$JBOSS_HOME/bin/ 디렉터리로 이동한 후 “./add-user.sh” 를 실행한다.

$ ./add-user.sh

What type of user do you wish to add?

a) Management User (mgmt-users.properties)

b) Application User (application-users.properties)

(a): a

Enter the details of the new user to add.

Realm (ManagementRealm) :

Username : admin

Password : [패스워드 입력]

Re-enter Password : [패스워드 입력]

About to add user 'admin' for realm 'ManagementRealm'

Is this correct yes/no? yes

Added user 'jboss' to file '/EAP6book/jboss/jboss-eap-6.2/standalone/configuration/mgmt-users.properties'

Added user 'jboss' to file '/EAP6book/jboss/jboss-eap-6.2/domain/configuration/mgmt-users.properties'

Is this new user going to be used for one AS process to connect to another AS process?

e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.

yes/no? yes

To represent the user add the following to the server-identities definition <secret value="b3Blbm5hcnUhMjM0" />

JBoss 관리자를 추가하려면, a) Management User를 선택하여야 하며, ‘Username :’에는 관리자의 로그인 아이디, ‘Password :’에는 관리자의 패스워드를 입력한다. 패스워드는 8자 이상으로 입력하여야 하며, 특수문자와 숫자가 반드시 포함되어야 한다.

사용자명:admin, 패스워드:opennaru!234 를 입력한다.

관리자 추가 후에 맨 마지막에 출력되는 secret value는 도메인 모드를 구성할 때 필요한 보안키 값이다. 향후 도메인 모드를 구성하려면 이 값을 사용하기 때문에 기록해 두어야 한다.

JBoss EAP 6시작/정지

JBoss EAP 6에는 도메인과 스탠드얼론 모드라는 두 개의 구성 중 하나를 선택할 수 있다. 각각의 구성에 대해서는 “5장. JBoss EAP 6 아키텍처”에서 자세하게 설명한다.

여기에서는 각 모드에 대한 시작과 정지 방법에 대해서만 설명한다

스탠드얼론 모드에서 시작과 정지

스탠드얼론 모드로 서버를 시작하려면 $JBOSS_HOME/bin/standalone.sh를 실행한다.

따라하기

  1. 스탠드얼론 모드 서버 실행

  2. Welcome 페이지

  3. 웹 콘솔 로그인

  4. 웹 콘솔 화면

  5. 서버 정지

  1. 스탠드얼론 모드 서버 실행

    $ $JBOSS_HOME/bin/standalone.sh
  1. Welcome 페이지

    웹 브라우저에서 http://localhost:8080/로 접속한다.

    image

  1. 웹 콘솔 로그인

    image149

    패스워드는 앞 절 “2.5 관리자 등록” 에서 설정했던 패스워드를 사용하도록 한다. 사용자명:admin, 패스워드:opennaru!234 를 입력한다

  1. 웹 콘솔 화면

    로그인후 표시되는 화면이다.

    image

  1. 서버정지

    콘솔에서 Ctrl + C를 눌러 서버를 정지한다.

    standalone.sh 스크립트를 실행할 때 옵션들을 파라미터를 지정할 수 있으며, 파라미터를 확인하려면 -h 매개 변수를 사용한다.

도메인 모드에서 시작과 정지

도메인 모드의 서버를 시작하려면 $JBOSS_HOME/bin/domain.sh를 실행한다.

따라하기

  1. 도메인 모드 서버 실행

  2. Welcome 페이지

  3. 웹 콘솔 로그인

  4. 웹 콘솔 화면

  5. 서버 정지

  1. 도메인 모드 서버 실행

    $ $JBOSS_HOME/bin/domain.sh
  1. Welcome 페이지

    웹 브라우저에서 http://localhost:8080/로 접속한다.

    image

  1. 웹 콘솔 로그인

    管理コンソールのログイン画面。

    사용자명:admin, 패스워드:opennaru!234 를 입력한다

  1. 웹 콘솔 화면

    로그인후 표시되는 화면이다.

    image

  1. 서버정지

    콘솔에서 Ctrl + C를 눌러 서버를 정지한다.

    domain.sh 스크립트를 실행할 때 여러 옵션을 파라미터로 지정할 수 있으며, 파라미터를 확인하려면 -h 매개 변수를 사용한다.

서버 실행 파라미터

JBoss EAP 6 시작 시 파라미터를 통하여 다양한 옵션을 지정할 수 있다. 예를 들어 기본 설정 파일인 standalone.xml, domain.xml 및 host.xml 외에 다른 설정 파일을 이용하여 서버를 시작할 수 있다. 사용 가능한 파라미터는 시작할 때 다음과 같이 ‘-h’를 사용하여 확인할 수 있다.

$JBOSS_HOME/bin/domain.sh -h
파라미터 설명

-b=<value>

시스템 프로퍼티 jboss.bind.address를 설정한다.

-b <value>

시스템 프로퍼티jboss.bind.address를 설정한다.

-b<interface>=<value>

시스템 프로퍼티jboss.bind.address. <interface>를 설정한다.

-D<name>[=<value>]

시스템 프로퍼티를 설정한다.

-h

도움말 메시지를 표시하고 종료한다.

-help

도움말 메시지를 표시하고 종료한다.

-P=<url>

해당 URL에서 시스템 등록 정보를 로드한다.

-P <url>

해당 URL에서 시스템 등록 정보를 로드한다.

-properties=<url>

해당 URL에서 시스템 등록 정보를 로드한다.

-server-config=<config>

서버 설정 파일 이름을 지정한다. 기본값은 standalone.xml이다.

-V

애플리케이션 서버 버전을 표시하고 종료한다.

-v

애플리케이션 서버 버전을 표시하고 종료한다.

-version

애플리케이션 서버 버전을 표시하고 종료한다.

표 . 서버 실행 옵션

CLI 사용법

CLI(Command Line Interface)는 JBoss 를 관리하기 위한 도구로 $JBOSS_HOME/bin 폴더에서 jboss-cli.sh 스크립트를 실행한다.

$ ./jboss-cli.sh --help

Usage: jboss-cli.sh/jboss-cli.bat [--help] [--version] [--controller=host:port]

……

jboss-cli.sh의 주요 옵션들은 다음과 같다.

옵션 설명

--help(-h)

jboss-cli의 도움말 표시

--controller

--connect의 명령으로 접속할 호스트 IP와 포트 번호를 ‘--controller=IP주소:포트’와 같이 지정한다.

생략하면 ’localhost:9999’를 사용한다.

--connect(-c)

시작 후 바로 서버에 접속한다.

--gui

GUI 모드로 시작한다.

--command

한 개의 명령어 또는 오퍼레이션을 지정하여 실행한다.

--commands

여러 개의 명령어 또는 오퍼레이션을 콤마로 지정하여 실행한다.

표 2. JBoss CLI 주요 옵션

다음 명령을 사용하여 JBoss EAP 6에서 CLI를 사용할 수 있다.

$ ./jboss-cli.sh --connect --controller=localhost:9999

[standalone@localhost:9999 /]

앞으로 이 책의 전반에서 CLI 명령을 사용하는 예제들을 설명하고 있다. 예제를 확인하려면 jboss-cli.sh 명령을 사용하여 CLI에 접속하여 테스트한다.

JBoss EAP 6 설치 구조 및 정보

JBoss EAP 6은 이전 버전에 비해 단순한 디렉터리 구조를 가지고 있다. 디렉터리 구조와 디렉터리에 포함하고 있는 내용들은 다음과 같다.

디렉터리 구조

디렉터리명 설명

appclient/

클라이언트 애플리케이션 컨테이너를 사용할 때 설정 정보가 포함되어 있다.

bin/

Red Hat Enterprise Linux 및 Microsoft Windows 용 JBoss EAP 6시작 스크립트 및 유틸리티 실행 스크립트가 포함되어 있다.

bundles/

JBoss EAP 6 내부 기능에 대한 OSGi 번들이 포함되어 있다.

docs/

라이센스 파일, 스키마 및 샘플들이 있다.

domain/

JBoss EAP 6를 도메인 모드로 실행하는 경우 사용되는 설정 및 배포 콘텐츠 영역이다.

modules/

EAP 6 및 애플리케이션에서 필요시 동적으로 로드하는 모듈, jar 파일들이 보관된 디렉터리이다.

standalone/

JBoss EAP 6를 스탠드얼론 모드로 실행하는 경우 사용되는 설정 파일 및 배포 콘텐츠 영역이다.

welcome-content/

기본 설치 포트 8080에서 사용하는 Welcome 웹 애플리케이션 콘텐츠가 포함되어 있다. 기본 컨텍스트 루트 애플리케이션이다.

jboss-modules.jar

모듈을 로드하는 부트 스트랩 메커니즘이 포함되어 있다.

표 3. JBoss 설치 디렉터리 구조

Domain디렉터리

도메인 모드에서 사용하는 설정이 domain 디렉터리에 설치된다.

디렉터리명 설명

configuration/

도메인 모드에 대한 설정 파일들을 저장. 이 파일들은 관리 콘솔 및 관리 CLI 를 이용하면 변경되고, 사용자가 직접 편집하지 않는 것이 좋다.

data/

배포된 서비스 정보가 보관되는 디렉터리. 이 디렉터리의 파일들은 관리 콘솔 및 관리 CLI를 사용하여 배포하면 파일들이 보관되는 디렉터리다. 이 디렉터리에 사용자가 파일을 직접 복사하면 안 된다.

log/

도메인에서 실행되는 호스트 및 프로세스 컨트롤러의 로그 파일이 저장된다.

servers/

도메인의 각 서버 인스턴스에 대해 data/, log/ 및 tmp/ 디렉터리가 있다.

tmp/

도메인 모드에 대한 로컬 사용자를 인증하기 위해 관리 CLI에서 사용되는 공유 키 메커니즘에 대한 파일 등의 임시 데이터가 저장된다.

표 4. domain 디렉터리 구조

standalone 디렉터리

스탠드얼론 모드에서 사용하는 설정이 standalone 디렉터리에 설치된다.

디렉터리명 설명

configuration/

스탠드얼론 모드에 대한 설정 파일들을 저장. 이 파일들은 관리 콘솔 및 관리 CLI 를 이용하면 변경되고, 사용자가 직접 편집하지 않는 것이 좋다.

data/

배포된 서비스 정보가 보관되는 디렉터리. 이 디렉터리의 파일들은 관리 콘솔 및 관리 CLI를 사용하여 배포하면 파일들이 보관되는 디렉터리다. 이 디렉터리에 사용자가 파일을 직접 복사하면 안 된다.

log/

서버 인스턴스의 로그가 보관된다.

표 5. standalone 디렉터리 구조

03-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 API

Management 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 LogManager

JBoss 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.1

EJB(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의 주요 용어