책 소개
JBoss 애플리케이션 서버는 전 세계에서 가장 많이 사용하는 애플리케이션 서버다. 오랜 역사만큼 안정적인 배포판과 혁신적인 기술을 지원하는 오픈소스 애플리케이션 서버지만 기술 지원을 받아도 국내에서 가장 많이 사용하는 웹로직에 비해 4분의 1 정도로 비용이 저렴하다. 기술 지원을 받지 않는다면 이마저도 필요 없다. 게다가 성능은 웹 로직보다 더 좋은 평가(EDC Application Servers 2008 Ranking)를 받고 있다. 국내에서도 JBoss 애플리케이션 서버 사용이 늘어나는 추세지만 아직 전문 인력이 부족하고 JBoss 애플리케이션 서버의 매력이 제대로 알려지지 않았다. 이 책은 이러한 JBoss 애플리케이션 서버에 대해 기본적으로 알아야 할 내용을 모두 담고 있다.
이 책에서 다루는 내용
■ 새로운 AS 인프라스트럭처와 AS 7의 설치, 시작, 중지에 대한 이해
■ 데이터베이스 연결, JMS 서브시스템 및 트랜잭션 서비스 등 핵심 AS 7 서비스 설정
■ 관리콘솔 및 새로운 커맨드라인 인터페이스를 사용한 애플리케이션 서버 관리
■ 가능한 모든 툴과 도구를 사용해 AS에 애플리케이션 배포
■ 구성 및 응용프로그램 서버노드의 클러스터를 실행하고 응용프로그램에 고가용성 제공
■ 애플리케이션 서버와 구동애플리케이션 보안
■ 플랫폼로서의 서비스인 오픈시프트를 활용해 클라우드에서 JBoss AS 7 애플리케이션을 수행하는 방법
■ 애플리케이션 서버 튜닝 및 슬림화
이 책의 대상 독자
이 책은 자바 시스템 관리자, 개발자 및 애플리케이션 테스터에게 도움이 될 것이다. 전에 JBoss AS를 사용했든 안 했든 간에 이 책에서 AS 7의 완전 새로운 기능에 대한 지식을 얻을 수 있다.
이 책의 구성
1장. JBoss AS 7 설치에서는 가장 중요한 기능을 설명하고 장비에 설치하는 방법을 보여줄 새로운 애플리케이션 서버를 소개한다.
2장. 애플리케이션 서버 설정에서는 애플리케이션 서버 주요 설정 파일과 스레드 풀 설정과 로깅 서브시스템과 같은 일부 핵심 부분이 포함되어 있다.
3장. 엔터프라이즈 서비스 설정에서는 어떻게 스탠드얼론 설정 파일을 사용해 핵심 자바 엔터프라이즈 서비스를 모델링하는지 알려준다.
4장. JBoss 웹 서버 설정에서는 웹 서브시스템을 확인해 스탠드얼론 서버 구성을 완료한다. 이 장에는 JBoss AS 7에서 자바EE 6 애플리케이션을 만들고 구성하는 방법을 배울 수 있는 전체 자바EE 예제가 포함되어 있다.
5장. JBoss AS 도메인 설정에서는 스탠드얼론 또는 도메인 서버 설정의 선택 기준이 되는 도메인 서버 설정 구성 방법을 알려준다.
6장. JBoss AS 7 애플리케이션 배포에서는 애플리케이션 배포와 관련된 실무 내용이 포함되어 있다. 또한, 애플리케이션이 로드될 때 애플리케이션 서버에 의해 사용되는 클래스로딩 메커니즘을 설명한다.
7장. 애플리케이션 서버 관리에서는 애플리케이션 서버 인스턴스를 제어하는 데 사용할 수 있는 관리 도구를 알려준다.
8장. 클러스터링에서는 애플리케이션에 확장성과 고가용성을 제공하는 필수 컴포넌트 역할인 AS 7 클러스터링 기능이 포함되어 있다.
9장. 웹 애플리케이션 로드밸런싱에서는 여러 서버가 동일한 서비스에 참여하고 동일한 작업을 수행할 수 있는 능력인 클러스터링의 두 번째 중요한 문제인 가용 서버의 리퀘스트 부하를 분산하는 방법에 대해 설명한다.
10장. JBoss AS 7 보안에서는 JBoss의 보안 프레임워크의 기초와 엔터프라이즈 애플리케이션과 서버 관리 인터페이스를 보호하는 방법이 포함됐다.
11장. 클라우드에도 매력적인 JBoss AS 7에서는 레드햇 오픈시프트 플랫폼을 사용하여 클라우드 환경에서 자바EE 애플리케이션을 제공하는 방법을 보여준다.
부록에서는 CLI를 사용하여 애플리케이션 서버를 관리하는 데 사용할 수 있는 가장 일반적인 명령어 및 작업에 대한 요약 정보를 제공한다.
목차
목차
- 1장 JBoss AS 7 설치
- 애플리케이션 서버의 시작
- 자바 환경 설치
- JBoss AS 7 설치
- JBoss AS 시작하기
- 커맨드 라인 인터페이스 서버 연결
- JBoss 정지
- 종료 스크립트 위치
- 원격 머신에서 JBoss 정지
- JBoss 재시작
- 이클립스 개발환경 설치
- JBoss tools 설치
- 애플리케이션 서버 파일 시스템 알아보기
- bin 폴더
- docs 폴더
- domain 폴더
- standalone 폴더
- welcome-content 폴더
- modules 폴더
- 애플리케이션 서버 모듈 로딩하기
- 요약
- 2장 애플리케이션 서버 설정
- 애플리케이션 서버 설정
- 확장(Extensions)
- 경로(Paths)
- 관리 인터페이스(Management interfaces)
- 프로파일(Profiles)
- 인터페이스(Interfaces)
- 소켓 바인딩 그룹(Socket binding groups)
- 시스템 프로퍼티(System properties)
- 배포(Deployments)
- 코어 서브시스템 설정
- 스레드 풀 서브시스템 설정
- 스레드 팩토리 설정
- 제한 스레드 풀
- 무제한 스레드 풀
- 큐 없는 스레드 풀
- 스케줄 스레드 풀
- 스레드 풀 서브시스템 설정
- 애플리케이션 서버 로깅 설정
- 로깅 구현체 선택
- 로깅 서브시스템 설정
- 로거 설정
- 애플리케이션에 Log4j 설정
- 로깅 구현체 선택
- 요약
- 3장 엔터프라이즈 서비스 설정
- 데이터베이스 연결 설정
- JDBC 드라이버 설치
- 로컬 데이터소스 추가
- 커넥션 풀 설정
- 명령문 캐시 구성
- xa-datasource 추가
- 데이터소스 설치 간소화
- 올바른 드라이버 배포 전략 선택
- 프로그래밍 적 데이터소스 설정
- 엔터프라이즈 자바 빈즈 설정
- EJB 컴포넌트 설정
- 무상태 세션 빈 설정
- 상태유지 세션 빈 설정
- 메시지 드리븐 빈 설정
- 타이머 서비스 설정
- 메시징 시스템 설정
- 전송 설정
- 커넥션 팩토리 설정
- JMS 목적지 설정
- 주소 설정으로 목적지 사용자 정의
- 호넷큐 지속성 설정
- 트랜잭션 설정
- EJB 컴포넌트 설정
- 요약
- 4장 JBoss 웹 서버 설정
- 웹 컨테이너 설정
- 웹 서버 설정은 어디서?
- 웹 서버 커넥터 설정
- 웹 서버 리소스 설정
- 정적 리소스 설정
- 동적 리소스 설정
- 웹 서버 설정은 어디서?
- 웹 애플리케이션 생성 및 배포
- 새로운 동적 웹 프로젝트 생성
- JSF 컴포넌트 추가
- EJB 레이어 추가
- 애플리케이션 웹 컨텍스트 선택
- 웹 애플리케이션 배포
- 루트 컨텍스트에 웹 애플리케이션 배포
- 리모트(remote) EJB 클라이언트 추가
- 데이터 퍼시스턴트 설정
- JPA 서브 시스템 기본 데이터소스 사용
- 엔티티스 설정
- 다른 애플리케이션 아카이브 퍼시스턴트 설정
- 다른 제공자로 변경
- 새로운 동적 웹 프로젝트 생성
- 요약
- 5장 JBoss AS 도메인 설정
- JBoss AS 도메인 소개
- 기본 도메인 설정 이해
- 도메인 시작 및 종료
- 도메인 설정
- domain.xml 파일 설정
- host.xml 파일 설정
- 관리 인터페이스 설정
- 네트워크 인터페이스 설정
- 도메인 컨트롤러 설정
- JVM 설정
- 서버에 JVM 옵션 추가
- 요소들 사이의 우선순위
- 서버 노드 설정
- 도메인 설정 적용
- 도메인 설정 예제
- 런타임에 도메인 설정 변경
- 요약
- 6장 JBoss AS 7 애플리케이션 배포
- 애플리케이션 서버에 리소스 배포
- JAR 아카이브
- WAR 아카이브
- EAR 아카이브
- JBoss AS 스탠드얼론에 애플리케이션 배포
- 애플리케이션 자동화 배포
- 사용자 정의 폴더에 애플리케이션 배포
- 애플리케이션 스캐너 작동 변경
- CLI를 사용한 애플리케이션 배포
- 웹 어드민 콘솔을 사용한 애플리케이션 배포
- 이클립스 환경에서 애플리케이션 배포
- 이클립스 배포를 위한 패키징 스타일 선택
- 애플리케이션 수동 배포
- 애플리케이션 자동화 배포
- JBoss AS 도메인 애플리케이션 배포
- CLI를 사용해서 AS 도메인에 배포
- 전체 서버 그룹 배포
- 단일 서버 그룹 배포
- 어드민 콘솔을 사용해서 AS 도메인에 배포
- CLI를 사용해서 AS 도메인에 배포
- JBoss AS 7 클래스 로딩 설명
- 모듈 이름 알아내기
- 격리 수준 찾기
- 암시적 의존성
- 명시적 의존성
- 전역 모듈 설정
- 고급 배포 전략
- 단일 모듈 의존성 설정
- 서버의 자동 의존성 제거
- 서브 배포 격리
- 의존성 해결을 위한 클래스 경로 사용
- 요약
- 7장 애플리케이션 서버 관리
- 커맨드 라인 인터페이스(CLI)
- CLI 사용법
- 리소스 탐색과 오퍼레이션 실행
- CLI의 명령어 실행
- CLI에서 도움받기
- 배치 CLI 스크립트 실행
- 고급 배치 명령어
- 파일을 이용한 스크립트 실행
- 비대화형 출력 리다이렉션
- 설정의 스냅 샷 찍기
- 애플리케이션 서버가 자동으로 저장하는 것
- 스냅 샷 찍기
- CLI의 히스토리
- CLI 사용법
- 새로운 웹 어드민 콘솔
- 어드민 콘솔 접속
- 서버 프로파일 설정
- 데이터 소스 설정
- JMS 목적지 설정
- 소켓 바인딩 그룹 설정
- 커맨드라인 인터페이스 혹은 웹콘솔?
- 요약
- 8장 클러스터링
- JBoss 클러스터링 설치
- 스탠드얼론 서버 클러스터링 설치
- 다른 장비에서 운영되는 AS 노드 클러스터
- 같은 장비들에서 서버 클러스터링
- 도메인 서버 클러스터링 설치
- 클러스터링 트러블슈팅
- 스탠드얼론 서버 클러스터링 설치
- JBoss 클러스터링 설정
- 제이그룹스 서브시스템 설정
- 프로토콜 스택 커스터마이징
- 제이그룹스 서브시스템 설정
- 인피니스팬 서브시스템 설정
- 세션 캐시 컨테이너 설정
- 복제와 분산 선택
- 하이버네이트 캐시 설정
- 하이버네이트 캐시를 위한 복제 사용
- 고급 인피니스팬 설정
- 인피니스팬 스레드 설정
- 인피니스팬 전송 설정
- 세션 캐시 컨테이너 설정
- 메시징 서브시스템 클러스터링
- 메시징 인증서(credentials) 설정
- 요약
- 9장 웹 애플리케이션 로드밸런싱
- JBoss AS 7과 아파치 웹서버 사용
- mod_jk 설정
- mod_proxy 설정
- mod_cluster로 로드 밸런싱
- mod_cluster 설치
- CLI로 mod_cluster 관리
- CLI로 웹 컨텍스트 관리
- 네이티브 관리 기능들 추가
- 설정파일을 이용해서 웹 컨텍스트 관리
- mod_cluster 트러블 슈팅
- mod_cluster 테스트
- 노드 간에 로드 밸런싱
- 로드 매트릭 사용
- 클러스터에서 다이나믹 매트릭 설정 예제
- 애플리케이션에서 클러스터링 설정
- 세션빈 클러스터링
- 엔티티 클러스터링
- 엔티티 캐싱
- 쿼리 캐싱
- 웹 애플리케이션 클러스터링
- 요약
- 10장 JBoss AS 7 보안
- 자바 보안 API에 접근
- JBoss AS 7 보안 서브 시스템
- UserRoles 로그인 모듈
- 데이터베이스 로그인 모듈
- 패스워드 암호화
- LDAP로그인 모듈
- Jboss AS에 LDAP 연결
- 웹 애플리케이션 보안
- EJB 보안
- 웹서비스 보안
- AS 7 관리 인터페이스 보안
- 전송계층 보안
- JBoss AS의 보안 소켓 계층 사용
- 인증서 관리 도구
- 자체 서명된 인증서를 사용한 HTTP 통신 보안
- CA가 서명한 인증서로 HTTP 통신 보안
- 요약
- 11장 클라우드에도 매력적인 JBoss AS 7
- 클라우드 컴퓨팅이란?
- 클라우드 컴퓨팅 vs 그리드 컴퓨팅
- 클라우드 컴퓨팅의 장점
- 클라우드 컴퓨팅의 형태
- 침입 탐지 시스템(IDS)
- 클라우드 컴퓨팅의 종류
- JBoss 클라우드 인프스트럭처
- 오픈시프트 온라인 시작
- 오픈시프트 클라이언트 툴 설치
- 오픈시프트 온라인 도메인 생성
- 오픈시프트 온라인 애플리케이션 생성
- 서버에 무슨 일이 일어나는지 보기
- AS7 애플리케이션 관리
- 클라우드에서 애플리케이션 설정
- 오픈시프트 스토리지 관리