오픈소스 JBoss로 확장형 대용량 시스템 만들기 (세트)
- 지은이프란체스코 마르치오니, 마닉 수르타니
- 옮긴이최지웅, 김완철, 신정훈, 김상곤, 안광운, 전재홍
- ISBN : 9788960775244
- 72,000원
- 2014년 02월 20일 펴냄 (절판)
- 페이퍼백 | 952쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
세트 구성: 전3권
『JBoss AS 7 애플리케이션 개발』 소개
JBoss 애플리케이션 서버상의 단순 애플리케이션 개발에 대한 설명은 물론이고, 서버 특성에 따른 다양한 자바EE 기술, 프레임워크 통합, 개발 방법을 JBoss와 함께 제공한다. 또한 JBoss 애플리케이션 서버를 설치하고, JPA, 메시징, 웹서비스, 로드밸런싱, 클러스터링, 보안 등을 적용하여 운영하는 방법들을 함께 다룸으로써, 개발 시 JBoss를 효과적으로 활용할 수 있는 방법을 자세하게 설명한다.
이 책에서 다루는 내용
■ EJB 패러다임을 CDI 빈으로 옮기고, CDI 빈을 사용한 웹 애플리케이션 생성
■ 아퀼리언(Arquillian) 환경 구성과 컨테이너 내부와 외부에서의 애플리케이션 테스트
■ JBoss 메시징 프로바이더를 찾고, 예제에 큐과 토픽을 추가하는 방법. 고급 JMS: 외부 JMS 프로바이더를 통한 메시지 수신
■ 애플리케이션을 관리하기 위한 CLI 스크립트 작성과 상세한 관리 API 살펴보기
■ 웹 영역 클러스터링과 JBoss AS 7 서비스 컴포넌트 클러스터링
■ 애플리케이션에 로그인 모듈을 생성하고 웹 영역과 EJB 애플리케이션 영역에 대한 보안
이 책의 대상 독자
여러분이 만약 최신 버전의 JBoss 애플리케이션 서버 사용을 원하는 자바 아키텍트 또는 개발자일 경우 이 책이 아주 적합할 것이다. 자바EE의 기본 개념에 대해 반드시 알고 있어야 하지만 그렇다고 해서 애플리케이션 서버에 대한 많은 경험이 필요하지는 않다.
목차
목차
- 『JBoss AS 7 애플리케이션 개발』
- 1장 JBoss AS 7 시작하기
- 자바EE와 JBoss AS 7 개요
- 자바EE 6
- JSF 2.0
- EJB 3.1
- JPA 2.0
- CDI
- 자바 서블릿 API 3.0
- JAX-RS와 JAX-WS
- JAX-WS
- JAXB 2.2
- 자바EE 6
- JBoss AS 7의 새로운 기능
- 서버와 클라이언트 컴포넌트 설치
- 자바SE 설치
- 설치 완료 후 테스트
- JBoss AS 7 설치
- JBoss AS 구동
- CLI를 통한 서버 접속
- JBoss 중지
- JBoss 재시작
- 이클립스 설치 환경
- JBoss 툴 설치
- 다른 개발 환경들
- 메이븐 설치
- 설치 테스트
- 자바SE 설치
- 요약
- 2장 JBoss AS 7의 새로운 기능
- AS 7 핵심 개념
- AS 7 파일 시스템
- 애플리케이션 서버 관리
- 웹 인터페이스를 통한 JBoss AS 7 관리
- 웹 콘솔 실행
- JBoss AS 7 애플리케이션 배포
- 개선된 이클립스 배포 옵션
- 웹 콘솔을 통한 배포 관리
- CLI를 통한 애플리케이션 배포
- 도메인으로 애플리케이션 배포하기
- 요약
- 3장 자바EE 6 EJB 시작하기
- EJB 3.1의 새로운 기능
- 싱글톤 EJB 개발
- 프로젝트 모듈 설정
- EJB 애플리케이션 코딩
- 빈 동시성 제어
- 빈 관리 기반 동시성 사용
- 세션 빈 만들기
- 무상태 세션 빈 추가
- 상태 유지 세션 빈 추가
- EJB 애플리케이션 배포
- 원격 EJB 클라이언트 생성
- 클라이언트 프로젝트 모듈 설정
- EJB 클라이언트 코딩
- EJB 클라이언트 설정 추가
- 클라이언트 애플리케이션 실행
- 사용자 인증 추가
- EJB 타이머 서비스 사용
- 프로그램 기반의 타이머 생성
- 타이머 이벤트 스케줄링
- EJB에 비동기 메소드 추가
- Fire-and-forget 비동기 호출 사용
- Future 객체를 클라이언트로 반환
- 요약
- 4장 CDI
- CDI 소개
- 이름 빈
- CDI 범위
- JBoss AS CDI 구현
- 티켓 예약 시스템 재검토
- 필요한 의존성 추가
- 빈 코딩하기
- 뷰 만들기
- 애플리케이션 실행 준비
- 애플리케이션에 스케줄러 연동
- EJB와 JSF 관리 빈은 더 이상 쓸모가 없나?
- 요약
- 5장 CDI를 통한 퍼시스턴스 결합
- 표준을 만난 데이터 퍼시스턴스
- JPA를 통한 작업
- 애플리케이션에 퍼시스턴스 추가
- 데이터베이스 구성
- JBoss AS 7에 JDBC 드라이버 설치
- CLI를 사용한 새로운 데이터 소스 생성
- 메이븐 프로젝트 생성
- 메이븐 설정 추가
- 엔티티 만들기
- 자바 빈 유효성 추가
- 퍼시스턴스 설정
- 생산자 클래스 추가
- 애플리케이션 쿼리 코딩
- 애플리케이션에 서비스 추가
- 사용자 요청을 처리하는 컨트롤러 추가
- JSF 뷰 코딩
- 애플리케이션 실행
- 요약
- 6장 애플리케이션 테스팅
- 단위 테스팅 및 통합 테스팅
- 테스팅을 위한 도구
- 아퀼리언 시작하기
- 아퀼리언 테스트 작성
- pom.xml 파일 설정
- 첫 번째 아퀼리언 테스트 작성
- 아퀼리언 TicketTest 실행
- 관리 컨테이너를 통한 아퀼리언 TicketTest 실행
- 아퀼리언 테스트 개선
- 부가적인 정보
- JBoss 메시징 서브 시스템
- 연결 팩토리 생성 및 사용
- JMS 목적지 사용
- 애플리케이션에 메시지 드리븐 빈(MDB) 추가
- MDB 만들기
- JMS 프로바이더 추가
- 애플리케이션 컴파일 및 배포
- JMS 연결 최적화
- 셀렉터를 활용한 메시지 수신 지정
- 외부 시스템을 통합하는 JMS 사용
- 호넷큐와 액티브엠큐 통합 예제
- 액티브엠큐 리소스 어댑터 설치
- 액티브엠큐 메시지 소비
- SOAP 웹 서비스 구축 전략
- JBoss SOAP 웹 서비스 스택
- JAX WS 아키텍처 둘러보기
- JBoss AS 7을 이용한 SOAP 웹 서비스 코딩
- POJO 웹 서비스 개발
- 콘솔을 통한 웹 서비스 점검
- 단순 웹 서비스 테스트
- EJB3 무상태 세션 빈(SLSB) 웹 서비스
- 웹 서비스 소비자 개발
- 예제 컴파일
- REST 리소스 접근
- JBoss REST 웹 서비스
- RESTEasy 활성화
- 티켓 예제에 REST 추가
- REST 서비스 호출
- 티켓 예제 컴파일
- CLI 시작하기
- 원격 호스트 연결
- GUI 모드 CLI 사용
- CLI 명령어 생성
- 리소스 위치 확인
- 리소스 상의 작업 수행
- CLI를 사용한 애플리케이션 배포
- 애플리케이션의 JBoss AS 7 도메인 배포
- 모든 서버 그룹으로 배포
- 단일 서버 그룹으로 배포
- CLI 스크립트 생성
- 애플리케이션을 복수의 JBoss AS 7 노드에 배포
- 도메인 내의 서버 재시작
- 데이터소스를 모듈로 등록
- JMS 리소스 추가
- CLI 실행을 랩핑하는 스크립팅 언어의 사용
- 기본 관리 API를 통한 관리 모델 설명 읽기
- Detyped API를 사용한 자원 시계 생성
- 단독 노드 클러스터 시작
- 도메인 모드 클러스터 시작
- 도메인 컨트롤러 설정
- 호스트 설정
- 클러스터된 애플리케이션 배포
- EJB 클러스터링
- HA 상태 세션 빈 생성
- 웹 애플리케이션 부하 분산
- mod_cluster 설치
- 웹 애플리케이션 클러스터링
- JBoss AS 7 보안 서브 시스템
- 로그인 모듈 설정
- 티켓 웹 애플리케이션에 로그인 모듈 사용
- FORM 기반 보안 변경
- 데이터베이스 로그인 모듈 생성
- 패스워드 암호화
- 데이터베이스 로그인 모듈을 애플리케이션에 사용
- EJB 보안
- 웹 서비스 보안
- JBoss AS SSL 활성화
- 인증서 관리 도구
- 자체 서명된 인증서를 통한 HTTP 통신 보안
- CA에 의해 서명된 인증서를 통한 HTTPS 통신
- EJB 통신 보안
- 서버와 클라이언트 인증서 생성
- SSL 보안 영역 생성
- SSL 보안 영역 생성
- 애플리케이션 빌드 및 배포
- 자바 환경 설치
- JBoss AS 7 설치
- JBoss AS 시작하기
- 커맨드 라인 인터페이스 서버 연결
- JBoss 정지
- 종료 스크립트 위치
- 원격 머신에서 JBoss 정지
- JBoss 재시작
- 이클립스 개발환경 설치
- JBoss tools 설치
- bin 폴더
- docs 폴더
- domain 폴더
- standalone 폴더
- welcome-content 폴더
- modules 폴더
- 애플리케이션 서버 모듈 로딩하기
- 확장(Extensions)
- 경로(Paths)
- 관리 인터페이스(Management interfaces)
- 프로파일(Profiles)
- 인터페이스(Interfaces)
- 소켓 바인딩 그룹(Socket binding groups)
- 시스템 프로퍼티(System properties)
- 배포(Deployments)
- 스레드 풀 서브시스템 설정
- 스레드 팩토리 설정
- 제한 스레드 풀
- 무제한 스레드 풀
- 큐 없는 스레드 풀
- 스케줄 스레드 풀
- 로깅 구현체 선택
- 로깅 서브시스템 설정
- 로거 설정
- 애플리케이션에 Log4j 설정
- JDBC 드라이버 설치
- 로컬 데이터소스 추가
- 커넥션 풀 설정
- 명령문 캐시 구성
- xa-datasource 추가
- 데이터소스 설치 간소화
- 올바른 드라이버 배포 전략 선택
- 프로그래밍적 데이터소스 설정
- EJB 컴포넌트 설정
- 무상태 세션 빈 설정
- 상태유지 세션 빈 설정
- 메시지 드리븐 빈 설정
- 타이머 서비스 설정
- 메시징 시스템 설정
- 전송 설정
- 커넥션 팩토리 설정
- JMS 목적지 설정
- 주소 설정으로 목적지 사용자 정의
- 호넷큐 지속성 설정
- 트랜잭션 설정
- 웹 서버 설정은 어디서?
- 웹 서버 커넥터 설정
- 웹 서버 리소스 설정
- 정적 리소스 설정
- 동적 리소스 설정
- 새로운 동적 웹 프로젝트 생성
- JSF 컴포넌트 추가
- EJB 레이어 추가
- 애플리케이션 웹 컨텍스트 선택
- 웹 애플리케이션 배포
- 루트 컨텍스트에 웹 애플리케이션 배포
- 리모트 EJB 클라이언트 추가
- 데이터 퍼시스턴트 설정
- JPA 서브 시스템 기본 데이터소스 사용
- 엔티티스 설정
- 다른 애플리케이션 아카이브 퍼시스턴트 설정
- 다른 제공자로 변경
- 기본 도메인 설정 이해
- 도메인 시작 및 종료
- domain.xml 파일 설정
- host.xml 파일 설정
- 관리 인터페이스 설정
- 네트워크 인터페이스 설정
- 도메인 컨트롤러 설정
- JVM 설정
- 서버에 JVM 옵션 추가
- 요소들 사이의 우선순위
- 서버 노드 설정
- 도메인 설정 적용
- 런타임에 도메인 설정 변경
- JAR 아카이브
- WAR 아카이브
- EAR 아카이브
- 애플리케이션 자동화 배포
- 사용자 정의 폴더에 애플리케이션 배포
- 애플리케이션 스캐너 작동 변경
- CLI를 사용한 애플리케이션 배포
- 웹 어드민 콘솔을 사용한 애플리케이션 배포
- 이클립스 환경에서 애플리케이션 배포
- 이클립스 배포를 위한 패키징 스타일 선택
- 애플리케이션 수동 배포
- CLI를 사용해서 AS 도메인에 배포
- 전체 서버 그룹 배포
- 단일 서버 그룹 배포
- 어드민 콘솔을 사용해서 AS 도메인에 배포
- 모듈 이름 알아내기
- 격리 수준 찾기
- 암시적 의존성
- 명시적 의존성
- 전역 모듈 설정
- 고급 배포 전략
- 단일 모듈 의존성 설정
- 서버의 자동 의존성 제거
- 서브 배포 격리
- 의존성 해결을 위한 클래스 경로 사용
- CLI 사용법
- 리소스 탐색과 오퍼레이션 실행
- CLI의 명령어 실행
- CLI에서 도움받기
- 배치 CLI 스크립트 실행
- 고급 배치 명령어
- 파일을 이용한 스크립트 실행
- 비 대화형 출력 리다이렉션
- 설정의 스냅샷 찍기
- 애플리케이션 서버가 자동으로 저장하는 것
- 스냅샷 찍기
- CLI의 히스토리
- 어드민 콘솔 접속
- 서버 프로파일 설정
- 데이터 소스 설정
- JMS 목적지 설정
- 소켓 바인딩 그룹 설정
- 스탠드얼론 서버 클러스터링 설치
- 다른 장비에서 운영되는 AS 노드 클러스터
- 같은 장비들에서 서버 클러스터링
- 도메인 서버 클러스터링 설치
- 클러스터링 트러블슈팅
- 제이그룹스 서브시스템 설정
- 프로토콜 스택 커스터마이징
- 세션 캐시 컨테이너 설정
- 복제와 분산 선택
- 하이버네이트 캐시 설정
- 하이버네이트 캐시를 위한 복제 사용
- 고급 인피니스팬 설정
- 인피니스팬 스레드 설정
- 인피니스팬 전송 설정
- 메시징 인증서 설정
- mod_jk 설정
- mod_proxy 설정
- 로드 매트릭 사용
- 클러스터에서 다이나믹 매트릭 설정 예제
- JBoss AS 7 보안 서브시스템
- UserRoles 로그인 모듈
- 데이터베이스 로그인 모듈
- 패스워드 암호화
- LDAP 로그인 모듈
- Jboss AS에 LDAP 연결
- 웹 애플리케이션 보안
- EJB 보안
- 웹서비스 보안
- JBoss AS의 보안 소켓 계층 사용
- 인증서 관리 도구
- 자체 서명된 인증서를 사용한 HTTP 통신 보안
- CA가 서명한 인증서로 HTTP 통신 보안
- 클라우드 컴퓨팅 vs 그리드 컴퓨팅
- 클라우드 컴퓨팅의 장점
- 클라우드 컴퓨팅의 형태
- 침입 탐지 시스템(IDS)
- 클라우드 컴퓨팅의 종류
- 오픈시프트 온라인 시작
- 오픈시프트 클라이언트 툴 설치
- 오픈시프트 온라인 도메인 생성
- 오픈시프트 온라인 애플리케이션 생성
- 서버에 무슨 일이 일어나는지 보기
- AS7 애플리케이션 관리
- 클라우드에서 애플리케이션 설정
- 오픈시프트 스토리지 관리
- 데이터그리드란 무엇인가?
- 캐시로서의 인피니스팬
- JSR-107 뛰어넘기
- 필수 소프트웨어 설치
- 자바 SE 설치
- 설치 확인
- 메이븐 설치
- 설치 확인
- 인피니스팬 설치
- 모듈로 인피니스팬 확장
- GUI 데모 프로그램으로 설치 확인 테스트
- 자바 SE 설치
- 요약
- 인피니스팬 동작 모드
- 내장 모드로 인피니스팬 실행
- 클라이언트-서버 모드로 인피니스팬 실행
- 멤캐시디 프로토콜
- 핫로드 프로토콜
- 인피니스팬 REST 인터페이스
- 핫로드 자바 클라이언트 사용하기
- 인피니스팬 API 배우기
- 첫 번째 프로젝트 생성
- 데이터 스토어의 크기 제어
- 데이터 제거
- 데이터 만료
- 리스너 사용
- 리스너와 동기성
- 인피니스팬과 트랜잭션
- 메이븐으로 예제 애플리케이션 실행
- 요약
- 선언적 설정 배우기
- 전역 설정 세팅
- 캐시 설정 세팅
- 캐시 로더 설정
- 공통 캐시 로더 속성
- 특정 캐시로더 속성
- 애플리케이션에 적합한 캐시 스토어 선택
- JDBC 캐시 스토어
- 캐시로더 체인
- 제거와 만료 설정
- 제거와 패시베이션 설정으로 티켓 예약 시스템 테스트하기
- 프로그램 내에서 인피니스팬 설정
- 처음부터 설정 생성하기
- 프로그램 내에서 전역 설정을 생성하기
- 요약
- 클러스터링 소개
- 네트워크 송수신 설정
- 인피니스팬 클러스터 생성
- 클러스터링을 사용하는 애플리케이션 설정
- 복제와 분산 중 선택
- 고급 데이터 분산
- 가상 노드로 데이터 분산 향상
- 불필요한 원격 접속 방지를 위한 L1 캐시
- 인피니스팬 잠금 정책
- 격리수준 설정
- 데이터 잠금과 트랜잭션
- 명시적, 암시적 데이터 잠금
- 노드 잠금 예제
- 잠금 제한시간 설정
- 캐시 키 보호 위한 잠금 풀 사용
- 데드락 감지
- 요약
- 통계 수집 활성화
- JConsole을 사용한 인피니스팬 데이터 수집
- RHQ로 인피니스팬 관리
- RHQ 설치
- Configuring the RHQ agent
- 에이전트가 인피니스팬 발견하게 하기
- 인피니스팬 플러그인 설치
- RHQ, 인피니스팬으로의 게이트웨이
- 간단한 캐시 요약 뷰
- 캐시로부터 경고 조건 얻기
- 시스템 실시간 모니터링
- 요약
- CDI 개요
- 인피니스팬과 CDI를 사용하기 위한 준비
- 인피니스팬 컴포넌트 설정과 CDI 빈으로 주입
- CDI를 사용하여 캐시 주입
- 주입대상 캐시 설정
- 캐시 매니저 설정
- 기본 설정 지정
- EmbeddedCacheManager 생성 방법 설정
- RemoteCacheManager 설정
- 복수의 설정 다루기
- CDI를 사용하여 캐시 주입
- CDI 애노테이션을 사용한 저장과 검색 제어
- CDI 애플리케이션에서 캐시 애노테이션 활성화
- 메소드 실행 결과의 캐싱
- 사용할 캐시 지정
- 캐시된 결과에 대한 캐시 키
- 커스텀 키 생성
- 캐시 엔트리 삭제
- 캐시 비우기
- 캐시 엔트리 갱신
- JBoss AS 7.x와 함께 인피니스팬 CDI 사용
- 요약
- 비동기 API
- NotifyingFuture
- 질의 API
- 인피니스팬 질의 기능을 사용하도록 프로젝트 준비
- 캐시 설정
- 객체에 애노테이션 붙이기
- 질의 작성
- 인덱스 저장
- 인피니스팬 디렉토리
- 인덱스 저장소와 캐시 모드
- 인피니스팬 질의 기능을 사용하도록 프로젝트 준비
- 전체 인덱스의 로컬 복제본
- 전체의, 공유된 인덱스
- 인피니스팬 커스터마이징
- BaseCustomInterceptor
- Command와 InvocationContext
- 커스텀 인터셉터 만들기
- 커스텀 인터셉터 설정
- 인터셉터 위치하기
- 전체의, 공유된 인덱스
- 요약
- 새로운 모듈화된 애플리케이션 서버
- AS 7 상의 인피니스팬 설정
- 설정 자세히 보기
- 설정 내 기본 엘리먼트 정의
- 설정에서 global 엘리먼트 정의
- 스레드 풀 정의
- JBoss AS 애플리케이션에서 인피니스팬 API 사용
- 아파치 라이선스 채택
- 모듈변경과 배포 패키지 정리
- 사용하지 않는 API, SPI 삭제
- 새로운 파일 캐시스토어
- 새로운 영속 API(persistence API)
- 불균질적인(heterogenous) 클러스터
- 내장/리모트 질의에 대한 변화
- 요약