ajax로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

ajax로 검색한 결과
등록일:2008-03-17 13:47:31
작성자:
제목:GlassFish v2: Open for Business


오픈 소스 소프트웨어는 점점 더 많은 기업과 사내 개발자들의 관심을 끌고 있습니다. 이는 커뮤니티에서 오픈 소스 소프트웨어의 소스 코드를 자유롭게 획득하고 업그레이드할 수 있기 때문입니다. 즉, 이 소프트웨어를 사용하면 상용 소프트웨어보다 빠르게 작업을 처리하고, 기업 및 개발자에게 실제로 필요한 사항에 맞게 업그레이드할 수 있습니다. 또한 일반적으로 오픈 소스 소프트웨어는 무료로 사용할 수 있기 때문에 비용을 절감할 수 있습니다. 따라서 많은 관심이 집중되고 사용 범위가 빠르게 확장되고 있는 추세입니다.

그 러나 기업들은 오픈 소스 소프트웨어가 업무에 중요한 애플리케이션을 관리하고 로드 및 트랜잭션이 많은 환경을 처리하는 데에는 적합하지 않다고 생각하고 있습니다. 이는 오픈 소스 소트프웨어가 지원되지 않는 경우가 있으며, 상용 소프트웨어 보다 작동 용이성, 안정성 및 성능면에서 떨어지는 경우가 있기 때문입니다. 특히, 애플리케이션 서버와 같이 중요한 엔터프라이즈 구성요소의 경우 IT 결정자가 위험 수준이 낮고 애플리케이션에 적합하도록 오픈 소스를 다양하게 분류합니다.

기업에서는 오픈 소스 애플리케이션 서버를 사용할 것인지 또는 강력하고 안정적인 기업용 애플리케이션 서버를 사용할 것인지 더 이상 선택할 필요가 없습니다. 두 서버에서 모두 GlassFish v2를 사용할 수 있습니다.

그러나 GlassFish v2를 사용하려면 기업에서는 오픈 소스로 운영되며, 업무에 중요한 애플리케이션과 척박한 프로덕션 환경에 맞는 특성을 갖춘 애플리케이션 서버가 필요합니다. 기업에서는 오픈 소스 애플리케이션 서버를 사용할 것인지 또는 강력하고 안정적인 기업용 애플리케이션 서버를 사용할 것인지 더 이상 선택할 필요가 없습니다. 두 서버에서 모두 GlassFish v2를 사용할 수 있습니다.

이 기사에서는 GlassFish v2를 사용하여 중요한 비즈니스 애플리케이션 및 프로덕션 환경의 요구 사항을 처리하는 기능에 대해 집중적으로 설명합니다.


목차

- GlassFish란 무엇입니까?
- GlassFish v2 및 상용 배포판
- 고가용성 및 확장성
- 엔터프라이즈급 성능
- 중앙 집중화된 관리 및 모니터링
- 프로파일에서의 간단한 구성
- .NET과의 상호 운용성
- JBI 준비
- 뛰어난 메시지 처리 기능
- 매력적인 가격 지원 정책
- 요약
- 자세한 정보
- 저자 정보


GlassFish란 무엇입니까?

사용자 삽입 이미지
썬은 2005년 6월에 Java Platform, Enterprise Edition 5 (Java EE 5)와 호환되는 애플리케이션 서버를 개발하기 위해 자바 커뮤니티에 공개하여 GlassFish 프로젝트를 출시했습니다. 그 후, GlassFish 커뮤니티 라 는 적극적인 개발자들의 커뮤니티가 프로젝트에 참여하게 되었습니다. 초창기에 많은 노력을 기울인 결과 첫 번째 오픈 소스이자 Java EE 5 호환 애플리케이션 서버이며 Java EE 5의 참조 구현인 GlassFish v1을 개발했으며, GlassFish 커뮤니티에서는 Java Persistence API의 참조 구현인 Toplink Essentials를 발표했습니다. 또한 커뮤니티에서는 Metro, jMaki, Open Message Queue(Open MQ) , Hudson Grizzly와 같은 다양한 하위 프로젝트의 개발을 촉진합니다.

GlassFish v2에는 GlassFish v1의 기능이 모두 포함되어 있으며, 애플리케이션 서버에서 중요한 프로덕션 환경 문제를 수행할 수 있는 기능이 추가되어 있습니다.

GlassFish v1은 개발자를 위해 만들어졌으며, 개발자가 Java EE 5 애플리케이션을 배포하고 테스트할 수 있는 완전한 Java EE 5 호환 애플리케이션 서버 및 오픈 소스를 제공할 목적으로 만들어졌습니다. 목표는 간단한 배포 즉, GlassFish의 단일 인스턴스에서 애플리케이션을 배포하는 것이었습니다. GlassFish v1은 공공 개발 및 배포 라이센스(CDDL) 하에 사용할 수 있으며, 연간 다운로드 횟수가 3백만 건 이상으로 매우 많이 사용되어 왔습니다. 이는 전 세계에 보급되어 썬에서 지원하는 상용 배포판인 Sun Java System Application Server Platform Edition 9.0을 포함하여 여러 배포판에 사용할 수 있으며, 솔라리스, 윈도우 및 리눅스 운영 체제를 비롯한 여러 플랫폼에서도 사용할 수 있습니다.

2007년 9월, GlassFish 커뮤니티에서 GlassFish v1에서의 모든 기능이 포함되고, 애플리케이션 서버에서 중요한 프로덕션 환경 문제를 수행할 수 있는 기능이 추가된 GlassFish v2를 발표했습니다. 이 기사에서는 이러한 기능에 대해 설명합니다.


GlassFish v2 및 상용 배포판

사용자 삽입 이미지
앞서 설명한 대로, GlassFish v1에는 썬에서 지원하는 상용 배포판이 포함되어 있으며, 이는 GlassFish v2의 경우에도 마찬가지입니다. GlassFish v2에 포함된 썬에서 지원하는 상용 배포판은 Sun Java System Application Server 9.1입 니다. GlassFish v2와 Sun Java System Application Server 9.1에서는 동일한 코드 베이스를 사용합니다. 또한, 썬에서 Sun Java System Application Server 9.1에 대한 지원 서비스를 구매할 수 있습니다. 지원 서비스에 대한 자세한 내용은 매력적인 가격 지원 정책을 참조하십시오.

GlassFish v2와 Sun Java System Application Server 9.1는 모두 무료로 배포 및 재배포할 수 있습니다. 그러나 GlassFish v2와 달리, Sun Java System Application Server 9.1에서는 코드를 바이너리 형식으로만 사용할 수 있기 때문에 수정이 불가능합니다. GlassFish v2 소스 코드는 CDDL 또는 클래스 경로 예외가 포함된 GNU 일반 공개 라이센스(GPL) v2에 따라 수정할 수 있습니다.

이 기사에서는 주로 GlassFish v2라는 용어를 사용하여 오픈 소스 애플리케이션 서버, GlassFish v2와 해당 상용 배포판인 Sun Java System Application Server 9.1에 대해 설명합니다. 두 배포판 간의 내용이 다른 경우에 한해 GlassFish v2 또는 Sun Java System Application Server 9.1로 각각 언급합니다.

고가용성 및 확장성

애플리케이션 서버에서 중요한 비즈니스 애플리케이션을 처리하는 경우 해당 애플리케이션을 항상 사용할 수 있어야 합니다. 애플리케이션 서버를 프로덕션 환경의 요구 사항에 맞게 사용하려면 증가된 작업 부하에 맞춰 조정해야 합니다. GlassFish v2는 클러스터링 및 고가용성 데이터베이스(HADB) 기술을 통해 고가용성 및 확장성을 보증합니다.


클러스터링

클러스터는 GlassFish v2 애플리케이션 서버 인스턴스의 그룹으로 단일 논리 개체로서 관리하고 모니터할 수 있습니다. 클러스터를 생성하려면 먼저 클러스터링을 위해 GlassFish v2 도메인을 사용할 수 있어야 합니다. GlassFish v2 도메인 또는 보다 정확하게 관리 도메인은 관리자에 의해 모든 GlassFish v2 엔터티가 제어되는 논리 경계입니다. 런타임 시 도메인은 GlassFish v2 애플리케이션 서버 인스턴스 또는 클러스터와 동일합니다. 따라서 GlassFish v2를 설치할 때 도메인에 대한 클러스터링을 쉽게 수행할 수 있습니다. 예를 들어, GlassFish v2를 설치한 후 다음 명령을 사용하여 도메인을 생성하고 클러스터링을 수행할 수 있습니다.

lib/ant/bin/ant -f setup-cluster.xml

GlassFish v2 관리 콘솔에서 기존 도메인에 대한 클러스터링을 수행할 수도 있으며, 해당 내용은 이 기사의 뒷 부분에 설명되어 있습니다.

클러스터링을 수행하도록 도메인을 설정하면 해당 도메인에 클러스터 프로파일을 지정해야 합니다. 프로파일에 대한 자세한 내용은 프로파일에서의 간단한 구성을 참 조하십시오. 도메인에서 클러스터를 유연하게 제거하거나 추가하고 특정 클러스터에서 GlassFish v2 인스턴스를 제거하거나 추가할 수 있습니다. 클러스터에 인스턴스를 추가하거나 도메인 내에 클러스터를 추가하여 증가된 애플리케이션 서버 용량과 속도에 대한 요구 사항에 맞게 조정할 수 있습니다. 클러스터 관리 및 모니터링에 대한 자세한 내용은 중앙 집중화된 관리 및 모니터링을 참조하십시오.

클러스터에서 하나의 애플리케이션 서버 인스터스가 실패한 경우 계속해서 세션을 처리하도록 해당 인스턴스와 상호 작용하는 세션이 클러스터의 다른 인스턴스로 다시 라우팅됩니다.

클러스터링의 가장 중요한 측면은 메모리 복제 입니다. 메모리 복제 시 GlassFish v2 인스턴스에서 배포된 애플리케이션이 있는 사용자 세션의 상태에 대한 정보가 클러스터의 동등 인스턴스로 복제됩니다. 클러스터의 각 GlassFish v2 인스턴스가 클러스터의 다음 인스턴스 즉, 복제 파트너에 세션 상태 정보를 보냅니다. 클러스터에서 인스턴스 순서는 인스턴스의 이름을 기반으로 합니다. 모든 인스턴스에서 배포된 애플리케이션의 세션 상태 정보가 업데이트되면 클러스터 주위에 복제됩니다.

GlassFish v2에서 플러그인으로 사용할 수 있는 로드밸런서는 메모리 복제에서 중요한 역할을 수행합니다. 로드밸런서는 여러 GlassFish v2 인스턴스 간의 작업 부하를 분산시키고, 인스턴스에 실패하면 세션을 다시 라우팅합니다. 클러스터에서 GlassFish v2 인스턴스가 실패한 경우 로드밸런서가 해당 인스턴스와 상호 작용하는 세션을 클러스터의 다른 인스턴스로 다시 라우팅합니다.

사용자 삽입 이미지
그림 1. 클러스터의 장애 조치 처리


그림 1에 표시된 대로, 인스턴스 1이 실패하면 로드밸런서가 인스턴스 1과 상호 작용하는 세션을 다른 인스턴스(그림에서 인스턴스 2)로 라우팅합니다. 라우팅할 대상 인스턴스가 실패한 GlassFish v2 인스턴스의 복제 파트너인 경우 해당 위치에서 세션이 처리됩니다. 그러나 라우팅 대상 인스턴스가 복제 파트너가 아닌 경우에는 복제 파트너가 복제된 세션 데이터를 라우팅 대상 인스턴스에 전송합니다. 다시 말해서, 로드 밸런서가 세션을 복제 파트너가 아닌 인스턴스 3으로 라우팅하면 세션을 처리하기 위해 복제 파트너인 인스턴스 2가 상태 데이터를 인스턴스 3으로 보냅니다.

메모리 복제를 사용하면 GlassFish v2에서 배포된 애플리케이션을 항상 사용할 수 있기 때문에 해당 애플리케이션과의 상호 작용에 방해가 있는 경우에도 사용자는 거의 인지하지 못합니다.

클러스터 인스턴스 및 해당 복제 파트너를 다른 시스템에 배치하여 가용성을 더욱 높일 수 있습니다. 이러한 방식으로 수행하면 시스템 중 하나가 실패하는 경우에도 세션 데이터가 손실되지 않습니다.


고가용성(HADB) 기술


매우 높은 수준의 가용성이 필요한 엔터프라이즈에서는 이전 버전의 썬 자바 시스템 애플리케이션 서버에서 사용되고 버전 9.1에서도 사용할 수 있는 기능인 고가용성 데이터베이스(HADB) 기술을 이용할 수 있습니다. HADB는 99.999%("5-9(five-nines)")의 가용성을 제공하고 세션 상태 정보를 유지관리할 수 있는 영구 데이터베이스 저장소를 제공합니다. HADB는 오픈 소스가 아니지만 작업 시 무료로 사용할 수 있습니다.

그러나 GlassFish v2의 클러스터링 기능을 통해 제공되는 강력한 메모리 내 복제를 수행하는 경우 대부분의 설치에 필요한 고가용성 요건을 충족해야 합니다. 또한 메모리 내 복제를 수행하려면 HADB 또는 해당 오픈 소스보다 설치 및 관리 작업을 줄여야 합니다. 이 외에도 메모리 내 복제를 수행하면 HADB를 능가하는 여러 성능 최적화 기능을 활용할 수 있습니다. 그러나 현재 HADB를 사용하는 작업이 있는 경우 또는 5-9(five-nines) 가용성이 필요한 경우 HADB에서 Sun Java System Application Server 9.1을 선택할 수 있습니다.

클러스터링 및 HADB에 대한 자세한 내용은 GlassFish 버전 2에서의 클러스터링을 참조하십시오.


엔터프라이즈급 성능


사용자 삽입 이미지
조 정 범위에 상관없이 애플리케이션 서버를 올바르게 작동할 수 있습니다. 뛰어난 처리량과 응답 시간을 제공하므로 애플리케이션 서버에서 프로세싱 부하를 처리할 수 있습니다. GlassFish v2는 이러한 목표를 충족합니다. 사실, GlassFish v1의 상용 버전인 Sun Java System Application Server 9.0은 SPECjAppServer2004 벤치마크 결과를 공개한 첫 번째 오픈 소스 애플리케이션 서버였습니다.

SPECjAppServer2004(1)는 호환 애플리케이션 서버에서 구현된 모든 주요 Java EE 기술이 실행되는 종단간 애플리케이션으로, 복잡한 애플리케이션 및 엔터프라이즈 환경에서 일반적인 대용량 트랜잭션 처리를 반영하는 방식으로 수행됩니다.

GlassFish v2는 업계 최고의 상용 애플리케이션 서버를 능가하는 성능을 가진 가장 빠른 오픈 소스 애플리케이션 서버입니다.

GlassFish v2는 업계 최고의 상용 애플리케이션 서버를 능가하는 성능을 가진 가장 빠른 오픈 소스 애플리케이션 서버입니다. 2007년 7월에 GlassFish v2는 경쟁자들보다 20% 우수한 SPECjAppServer에서 단일 Sun Fire T2000 서버에 대한 최고 점수를 (2) 기록했습니다.

최근 GlassFish v2의 측정 결과는이 벤치마크에 공개된 점수 중 3위를 (3) 차지했습니다. GlassFish v2는 벤치마크 생산 경쟁 결과에 사용된 것보다 훨씬 적은 하드웨어, 공간 및 전력을 사용하지만 공개된 최고 점수와의 격차는 20% 내입니다.

애플리케이션 서버의 성능은 실행되는 애플리케이션의 조합에 따라 달라집니다. 따라서 사용자의 결과가 SPECjAppServer2004 벤치마크의 결과와 다를 수 있습니다.
 
GlassFish v2에서 크게 성능이 향상된 부문은 웹 서비스 기술입니다. GlassFish v2에서 웹 서비스 기술의 컬렉션을 Metro라고 합니다. Metro에는 Java EE와 Windows .NET 환경 간의 웹 서비스 상호 운용성을 지 원하는 기술뿐만 아니라 XML 기반 웹 서비스(JAX-WS)용 Java API 2.1과 같은 핵심 웹 서비스 기술이 포함되어 있습니다. JAXB(Java Architecture for XML Binding)라는 자매 기술과 제휴한 JAX-WS 2.1을 정확한 웹 서비스 벤치마크 에서 테스트했으며, 그 결과 초당 처리 요청 수에 있어 뛰어난 성능을 나타냈습니다.

GlassFish v2 성능에 대한 자세한 내용은 SJSAS 9.1(Glassfish V2)에서 새 SPECjAppServer 2004 결과 게시 및 측정 가능한 SPECjAppServer 2004 제출을 참조하십시오.
 

중앙 집중화된 관리 및 모니터링

관리 콘솔에서는 엔터프라이즈에서 GlassFish 인스턴스 및 클러스터를 제어할 수 있는 중간 지점을 제공합니다.

공 식적으로 썬 자바 시스템 애플리케이션 서버 관리 콘솔이라고 하는 단일 GlassFish v2 관리 콘솔 또는 GlassFish v2 명령행 인터페이스(CLI)에서 GlassFish v2 인스턴스 또는 클러스터를 관리하고 모니터할 수 있습니다. 이를 통해 엔터프라이즈에서 GlassFish 인스턴스를 제어할 수 있는 중간 지점을 제공할 뿐만 아니라 각 클러스터를 개별적으로 관리하거나 모니터할 수 있습니다.


사용이 용이한 관리 콘솔

관리 콘솔의 중요한 측면 중 하나는 쉽게 사용할 수 있다는 점입니다. 관리 콘솔에 로그인하면 사용의 용이성에 대해 직접 알 수 있습니다. 표시되는 첫 번째 페이지는 일반 운영 작업이 함께 표시되는 일반 작업 페이지입니다. 그림 2에 클러스터링에 사용할 수 있는 도메인에 대한 일반 작업 페이지가 표시됩니다.

사용자 삽입 이미지
그림 2. 클러스터링에 사용할 수 있는 도메인에 대한 일반 작업 페이지


새 클러스터 생성, 엔터프라이즈 애플리케이션 배포 및 데이터 모니터링과 같은 작업에 대한 버튼이 표시됩니다. 관리 작업을 수행할 수 있는 대체 경로를 제공하는 탐색 트리에 이러한 버튼이 추가됩니다. 운영 작업을 시작하려면 페이지에서 해당 버튼을 클릭하거나 트리에서 노드를 클릭합니다. 예를 들어, 클러스터링에 사용할 수 있는 도메인에 클러스터를 생성하려면 페이지에서 새 클러스터 만들기 버튼을 클릭하거나 탐색 트리에서 클러스터 노드를 클릭합니다.
또는 관리 작업에 대한 지원 문서를 일반 작업 페이지에서 직접 사용할 수 있습니다. 이러한 문서는 썬마이크로시스템즈 문서 페이지에서 사용할 수 있는 광범위한 참조 문서 라이브러리의 일부입니다.

일반 작업 페이지와 관리 콘솔의 여러 기타 요소는 동적입니다. 이러한 요소는 Project Woodstock에서 개발된 차세대 사용자 인터페이스 구성요소 집합의 일부로, ajax 기능을 활용하여 빠르게 엔트리에 응답하고 디스플레이 간에 부드럽게 전환할 수 있습니다.


포괄적인 모니터링

관 리 콘솔을 사용하면 광범위한 애플리케이션 서버 관련 데이터를 쉽게 모니터할 수도 있습니다. 일반 작업 페이지에서 모니터링 데이터 보기 버튼을 클릭하여 각 탭에 애플리케이션 서버의 다른 측면 또는 해당 운영 체제에 대한 데이터가 표시되는 탭 페이지를 표시합니다. 예를 들어, 그림 3에 표시된 대로 호출 플로우 탭에 호출 플로우 데이터가 표시됩니다.

사용자 삽입 이미지
그림 3. 호출 플로우 모니터링 


지정된 트랜잭션의 호출 플로우를 모니터링하여 그림 4에 표시된 대로 다양한 애플리케이션 서버 컨테이너를 통해 이동하는 트랜잭션을 추적할 수 있습니다.
사용자 삽입 이미지

그림 4. 트랜잭션에 대한 호출 플로우 세부사항

JMX(Java Management Extensions) 기술에 GlassFish v2를 사용할 수 있습니다. 이는 기업에서 이미 JMX를 사용하여 리소스를 모니터하고 관리하는 경우 접근 방법을 쉽게 확장할 수 있을 뿐만 아니라 GlassFish v2 리소스를 관리하고 모니터할 수 있습니다. 또한 GlassFish v2를 썬 관리 센터와 할시온의 썬 애플리케이션 서버용 PrimeAlert를 통해 구현된 모니터링 접근 방법 및 종단간 관리로 통합할 수 있습니다.


지능형 명령행 인터페이스(CLI)

CLI를 통해 GlassFish v2와 연관된 관리 작업을 전체적으로 수행할 수도 있습니다. 일반적으로 관리 콘솔 또는 CLI를 통해 거의 모든 GlassFish v2 관련 관리 작업을 수행할 수 있습니다. 예를 들어, CLI를 사용하여 GlassFish v2 도메인을 시작 및 중지하거나 클러스터를 생성하거나 호출 플로우 데이터 수집을 설정 또는 해제할 수 있습니다. 또한 CLI에는 명령을 입력할 때 오류가 발생하는 경우 대체 엔트리를 제안하는 "가장 일치하는 항목" 기능이 포함되어 있습니다. 예를 들어, 다음과 같이 asadmin 명령에 domain 키워드를 잘못 입력하는 경우가 있습니다.

asadmin start-domian

CLI에서 다음과 같이 대체 항목을 제안합니다.

Closest matching command(s):
asadmin start-domain


대규모 배포 관리

GlassFish v2에서 제공하는 관리 콘솔 및 CLI는 단일 인스턴스 또는 클러스터를 배포하고 구성할 수 있는 우수한 도구입니다. 대규모 기업 배포에 썬 N1 서비스 프로비저닝 시스템(N1SPS)을 사용할 수 있습니다. 썬 자바 시스템 애플리케이션 서버용 N1SPS 플러그인을 사용하면 기업 전체에 Sun Java System Application Server 9.1을 쉽게 설치, 구성 및 관리할 수 있습니다. 플러그인을 사용하여 기존 GlassFish v2 설치를 구성하고 관리할 수 있지만 이를 설치할 수는 없습니다. N1SPS에 대한 자세한 내용은 N1SPS을 통한 썬 자바 시스템 애플리케이션 서버 프로비저닝을 참조하십시오.

GlassFish v2의 관리 콘솔에 대한 자세한 내용은 GlassFish 프로젝트 - 관리 콘솔(GUI) 홈 페이지를 참조하십시오. GlassFish v2의 모니터링 기능에 대한 자세한 내용은 GlassFish 버전 2 모니터링 기능을 참조하십시오.


프로파일에서의 간단한 구성

최적화는 애플리케이션 서버의 중요한 요건이며, 각 서버에 각각 다른 유형의 최적화가 필요할 수 있습니다. 예를 들어, 애플리케이션을 빌드하고 테스트하는 개발자는 보안에 관계없이 애플리케이션 서버가 애플리케이션 요청에 응답하는 속도를 최적화하려고 할 수 있습니다. 그에 반해, 프로덕션 환경에서는 보안이 매우 중요하므로 애플리케이션을 배포하는 사람에게 보안은 가장 중요한 문제입니다.

애플리케이션 서버 도메인을 생성할 때 적절한 프로파일을 지정하여 간단하게 특정 유형의 용도를 위한 GlassFish v2를 구성하고 최적화할 수 있습니다.

구 성 매개변수를 설정하여 특정 요구사항을 충족하도록 애플리케이션 서버를 수동으로 조정할 수 있지만, 이렇게 하면 시간과 노력이 많이 소비됩니다. 또는 특정 유형의 용도를 위해 미리 구성되어 있는 애플리케이션 서버의 특정 에디션을 사용할 수 있습니다. 사실, 이전 릴리스의 썬 자바 시스템 애플리케이션 서버를 여러 에디션에서 사용할 수 있었습니다. 예를 들어, 플랫폼 에디션은 개발자를 겨냥해 만들어졌으며 엔터프라이즈 에디션은 대기업을 겨냥한 제품입니다. 그러나 각각의 용도에 맞게 사용하기 위해 여러 에디션의 애플리케이션 서버를 설치하고 관리하는 것은 비현실적입니다.

보다 나은 솔루션은 단일 에디션의 애플리케이션 서버를 제공하면서 특정 사용 패턴을 위해 미리 설정된 구성을 제공하는 것입니다. 실제로 이러한 방법으로 GlassFish v2를 배포합니다. 이는 하나의 적절한 크기의 배포 번들에서 사용할 수 있으며, 다양한 사용 프로파일을 지원합니다. 각 프로파일은 특정 유형의 용도를 위해 구성 매개변수를 미리 설정합니다. GlassFish v2에서는 개발자, 클러스터 및 기업과 같은 세 가지 프로파일을 지원합니다.

개발자 프로파일은 개발 환경에서 사용하기 위해 GlassFish v2를 최적화합니다. 이는 구성 매개변수가 빠른 구동(fast startup)과 같은 기능은 지원하지만 로깅 또는 세션 복제와 같은 기능은 지원하지 않는다는 의미입니다. 클러스터 프로파일은 클러스터 생성 및 세션 복제를 가능하게 하는 구성 매개변수를 설정합니다. 엔터프라이즈 프로파일은 프로덕션 환경으로 GlassFish v2를 최적화합니다. 또한 로깅 및 기타 보안 관련 기능을 지원합니다.

표 1에 세 가지 프로파일의 일부 특성에 대해 요약되어 있습니다.

표 1: GlassFish v2 프로파일 특성 및 설정
특징
설명
개발자
프로파일 값
클러스터
프로파일 값
기업
프로파일 값
보안 저장
키 및 인증서와 같은 보안 아티팩트에 사용되는 저장 유형입니다. 두 가지 주요 유형은 썬에서 제공하는 키스토어 구현의 독점 유형인 JKS(Java Key Store)와 보안 설정 클라이언트 및 서버 애플리케이션의 크로스플랫폼 개발을 지원하기 위해 설계된 라이브러리 집합인 NSS(Network Security Services)입니다. 저장 유형은 형식 및 구성하는 데 사용할 수 있는 도구에 따라 다릅니다. NSS는 엔터프라이즈 솔루션에 일반적으로 사용되는 보안 유형입니다.
JKS
JKS
NSS
빠른 시작

애플리케이션 서버를 빠르게 시작할 수 있는 옵션입니다. 빠른 시작은 온 디맨드 서비스 프레임워크의 일부인 자바 NIO 기반 구현을 통해 수행됩니다.
true (사용)
false (사용안함)
false (사용안함)
JVM

자바 가상 머신 구성 매개변수입니다.
핫 스폿 VM 구성 매개변수
핫 스폿 VM 구성 매개변수
JDK에서 확인
세션 복제 메커니즘
세션 복제 메커니즘
없음
메모리 내 복제
HADB
 

도메인을 생성할 때 프로파일을 지정합니다. 예를 들어, 다음 명령은 도메인을 생성하고 해당 도메인에 대한 엔터프라이즈 프로파일을 지정합니다.

asadmin create-domain --user admin --adminport 4848 --profile enterprise

이상, 특정 유형의 용도(이 경우 프로덕션 환경)를 위해 GlassFish v2 애플리케이션 서버 인스턴스를 구성하고 최적화하는 데 필요한 모든 내용에 대해 설명했습니다.

프로파일에 대한 자세한 내용은 자료(One Pager): 애플리케이션 서버용 사용 프로파일 지원을 참조하십시오.


.NET과의 상호 운용성

상호 운용성은 엔터프라이즈에서 중요한 요건입니다. 일반적으로 운영 환경 전체에 엔터프라이즈의 애플리케이션 리소스가 배포되기 때문입니다. 예를 들어, Java EE와 같은 하나의 환경에 애플리케이션의 클라이언트 부분이 있을 수 있고, 웹 서비스에서 해당 클라이언트가 Microsoft의 .NET 프레임워크와 같은 다른 환경에 있어야 할 수 있습니다. GlassFish v2를 사용하면 웹 서비스 기반 애플리케이션에서 Java EE와 .NET 환경 간에 상호 운용할 수 있습니다.


Metro 및 웹 서비스 상호 운용성

GlassFish v2를 사용하면 웹 서비스 기반 애플리케이션에서 안전하고 안정적으로 메시징 및 트랜잭션을 지원하는 동시에 Java EE와 .NET 환경 간에 상호 운용할 수 있습니다.

GlassFish v2에는 웹 서비스에 대한 강력한 기술을 제공하는 Metro가 포함되어 있으며, 이는 Java EE에서 실행되는 웹 서비스에 대한 기술 스택을 능가합니다. 또한 Metro를 사용하면 웹 서비스에서 Microsoft .NET 프레임워크의 웹 서비스 스택인 WCF(Windows Communication Foundation)와 상호 운용할 수 있습니다. Metro와 WCF 모두 일반적으로 WS* 규격(모두 "WS"로 시작)이라는 웹 서비스 규격의 집합을 구현하며, 이를 통해 안전하고 안정적인 트랜잭션 지향 웹 서비스 상호 작용을 수행할 수 있습니다. Metro에서는 WS* 규격의 구현을 WSIT(Web Services Interoperability Technology)라고 합니다. 그림 5에 표시된 대로, WSIT를 사용하여 GlassFish v2의 웹 서비스 클라이언트가 .NET 3.0의 웹 서비스 끝점과 상호 작용하고 .NET 3.0 웹 서비스 클라이언트가 GlassFish v2의 웹 서비스 끝점과 상호 작용할 수 있습니다. GlassFish v2 클라이언트와 GlassFish v2 끝점 간의 통신도 지원됩니다.

사용자 삽입 이미지

그림 5. .NET과 Metro의 상호 운용성

Metro 와 WCF가 안전하고 안정적인 트랜잭션 지향 웹 서비스 상호 작용을 지원하므로 웹 서비스 클라이언트가 커밋하거나 롤백할 수 있는 트랜잭션 또는 조합으로 처리되거나 안전하게 수신되는 웹 서비스와 교환하도록 요청할 수 있습니다.


웹 서비스 상호 운용성 구성을 위한 간단한 인터페이스

GlassFish v2의 웹 서비스 끝점에 대한 상호 운용성 특성은 WSIT 구성 파일이라는 XML 파일에서 지정됩니다. 웹 서비스 개발자가 파일의 필수 XML을 코드화할 수 있습니다. 그러나 XML이 장황해지고 WSIT 구성 파일의 컨텐츠가 광범위해질 수 있습니다. 상호 운용 가능한 웹 서비스를 개발하는 보다 간단한 방법은 NetBeans IDE 버전 5.5.1 또는 6.0을 사용하는 것입니다. WSIT에 NetBeans IDE 5.5.1을 사용하려면 WSIT 플러그인 모듈을 설치합니다. NetBeans IDE 6.0에는 플러그인 모듈이 이미 패키징되어 있습니다. 사용 가능한 경우, IDE에 안전한 메시징, 안정적인 메시징 및 트랜잭션 지원과 같은 WSIT 특성과 함께 웹 서비스를 구성할 수 있는 간단한 확인란 인터페이스가 표시됩니다. 그림 6에 NetBeans IDE 6.0에서의 이 인터페이스가 표시됩니다.

사용자 삽입 이미지

그림 6. 상호 운용 가능한 웹 서비스의 안전한 메시지 전달 지정

그 림 6에 안전한 메시지 전달 및 정확한 순서로 메시지 전달 확인란이 선택되어 있습니다. 이러한 확인란을 선택하면 웹 서비스에서 안전하게 메시지를 전달할 수 있으며, 클라이언트가 보낸 메시지를 보낸 순서대로 웹 서비스 끝점에 전달할 수 있습니다.
 
NetBeans IDE를 사용하여 GlassFish v2에 웹 서비스를 배포할 수 있습니다. 진행 중에 IDE에서 구성 선택 항목에 적절한 모든 XML 코드와 구성 파일을 포함하여 적절한 아티팩트를 생성합니다.

Java EE 플랫폼과 .NET 프레임워크 간의 웹 서비스 상호 운용성을 구현하는 데 소요되는 시간, 비용 및 난이도를 고려하십시오. 이를 수행하려면 일반적으로 고가의 메시징 인프라뿐만 아니라 많은 사용자 정의 코드가 필요합니다. Metro에서는 추가 비용 없이 이러한 지원을 받을 수 있으며 GlassFish v2에 이미 내장되어 있습니다.

Metro에서 .NET과의 웹 서비스 상호 운용성 지원에 대한 자세한 내용은 Project Tango: 개요(PDF)Metro Project를 참조하십시오.


JBI 준비

GlassFish v2에서는 JBI(Java Business Integration)가 구현된 Open ESB에 대한 지원이 기본적으로 제공됩니다. JSR 208에 지정된 대로 JBI는 서비스 지향 아키텍처(SOA)에 따라 비즈니스 시스템을 구성할 수 있는 자바 표준입니다. SOA 접근 방식에서는 별도의 서비스에서 애플리케이션이 조합될 수 있으며, 각 서비스는 하나 이상의 비즈니스 관련 프로세스를 수행합니다. SOA에서는 하나의 애플리케이션에 사용된 데이터 및 서비스를 다른 애플리케이션에서 공유하고 재사용할 수 있기 때문에 엔터프라이즈에서 이러한 복합 애플리케이션을 매우 빠르게 빌드할 수 있습니다. 새 애플리케이션을 만들기 위해 서비스와 데이터를 통합하는 것과 같은 접근 방법을 통합 애플리케이션 시스템이라고 하는 경우도 있습니다. 이전에는 통합 애플리케이션 시스템을 구현하려면 많은 사용자 정의 코드를 사용하거나 독점적인 시스템에 투자해야 했습니다. JBI은 통합 애플리케이션 시스템을 구성하는 방법을 표준화고 특수 코드화 또는 독점 솔루션을 수행할 필요를 없애줍니다.

JBI는 플러그인 구성요소를 정의하며, 각 플러그인 구성요소는 특정 유형의 서비스를 실행하거나, 서비스가 실행되는 순서를 조정하거나, 데이터 형식 변환과 같은 기타 비즈니스 프로세스 관련 작업을 수행할 수 있는 기술을 제공합니다. 예를 들어, 하나의 JBI 구성요소가 Java EE 엔터프라이즈 아카이브(EAR) 파일로 배포된 서비스를 실행하는 EJB 서비스 엔진일 수 있습니다. 다른 구성요소는 SQL 쿼리를 실행하는 SQL 서비스 엔진일 수 있습니다. 세 번째 구성요소는 비즈니스 프로세스를 조정하는 BPEL 문을 실행하는 비즈니스 프로세스 실행 언어(BPEL) 서비스 엔진일 수 있습니다. 일부 플러그인 구성요소는 서비스를 제공하거나 사용하기 위해 다른 환경과 통신하는 구성요소를 바인딩합니다. 예를 들어, 하나의 바인딩 구성요소에서 SOAP over HTTP를 사용하여 신용 조사를 수행하는 원격 서비스를 실행할 수 있으며, 다른 바인딩 구성요소에서 SMTP를 사용하여 신용 조사에 대한 전자 메일 알림을 보낼 수 있습니다.

즉, 해당 복합 애플리케이션에 통합할 수 있는 광범위한 서비스 유형의 선택 범위를 엔터프라이즈에 제공하고 JBI 기반 시스템을 구성하는 구성요소에 많은 유연성을 제공하는 것입니다. JBI를 구현할 때, Open ESB를 사용하여 서비스를 느슨하게 결합된 복합 애플리케이션에 통합할 수 있습니다.

GlassFish v2에서는 Open ESB의 런타임 환경을 제공합니다. 이는 특정 유형의 서비스를 실행하는 다양한 서비스 엔진 및 서비스를 제공하거나 사용하기 위해 다른 환경과 통신하는 바인딩 구성요소를 제공합니다.


Open ESB 런타임 환경

GlassFish v2에서는 Open ESB의 런타임 환경을 제공합니다. 이는 다양한 서비스 엔진과 바인딩 구성요소를 제공합니다. Open ESB는 JBI를 기반으로 하기 때문에 GlassFish v2에서 제공하는 환경에 JBI 호환 서비스 엔진 및 바인딩 구성요소를 추가할 수 있습니다.

그림 7에 표시된 대로 GlassFish v2 애플리케이션 서버에 배포된 웹 서비스는 Sun Java EE 엔진이라고 하는 구성요소와 JAX-WS를 통해 JBI 런타임 환경과 통신합니다. 일반적으로 기타 JBI 구성요소의 경우 Sun Java EE 엔진에서 표준화된 메시지 라우터(NMR)라고 하는 경량 메시징 인프라를 사용하여 다른 서비스 엔진 및 바인딩 구성요소와 통신합니다. 그림 7에서 SE는 서비스 엔진을 의미하고 BC는 바인딩 구성요소를 의미합니다.

사용자 삽입 이미지

그림 7. GlassFish v2에서 JBI 런타임 환경


Open ESB 구성요소 관리

관리 콘솔 또는 CLI를 사용하여 GlassFish v2에서 기타 Open ESB 구성요소뿐만 아니라 Sun Java EE 엔진을 관리할 수 있습니다. 예를 들어, 일반 작업 페이지에서 JBI(Java Business Integration) 서비스 어셈블리 배포 버튼을 클릭하기만 하면 관리 콘솔을 사용하여 복합 애플리케이션의 일부 또는 전체가 포함되어 있는 JBI 서비스 어셈블리를 배포할 수 있습니다. 관리 콘솔 또는 CLI에서 Sun Java EE 엔진을 시작, 중지, 종료 또는 제거할 수 있습니다. 예를 들어, CLI에 다음 명령을 입력하여 Sun Java EE 엔진을 시작할 수 있습니다.

asadmin start-jbi-component sun-javaee-engine


복합 애플리케이션 구축 도구


개발 측면에서 NetBeans IDE 6.0은 Open ESB 환경에서 실행되는 복합 애플리케이션을 구축할 수 있는 다양한 도구를 제공합니다. 이러한 도구에는 BPEL 설계 도구, 그래픽 WSDL(Web Services Description Language) 편집기, CASA(Composite Application Service Assembly) 편집기 및 스키마와 XSLT 변환을 관리할 수 있는 도구가 포함되어 있습니다.

NetBeans IDE 6.0을 사용하여 복합 애플리케이션을 구축합니다. 그런 다음 GlassFish v2에서 해당 애플리케이션을 배포, 실행 및 관리합니다.

GlassFish v2에서의 Open ESB 지원에 대한 자세한 내용은 Sun Java EE 엔진: Java EE 웹 서비스와 JBI 구성요소 브리징 Open ESB 프로젝트를 참조하십시오.


뛰어난 메시지 처리 기능

효율적인 메시징 서버는 효율적인 엔터프라이즈를 구성하기 위해 비즈니스 소프트웨어를 연결하는 데 있어 매우 중요합니다. GlassFish v2에서는 메시지 지향 시스템 통합을 위한 완전한 JMS(Java Message Service) 구현인 Open Message Queue(Open MQ)를 제공합니다. JMS는 Java EE 기반 애플리케이션 구성요소에서 메시지 작성, 전송, 수신 및 읽기를 수행할 수 있는 메시징 표준입니다. JMS를 구현할 때 Open MQ에서 완전한 메시징 서버를 제공하며, 이는 오픈 소스 버전의 썬 자바 시스템 메시지 대기열 제품 입니다. Open MQ에는 자체 관리 도구 집합이 포함되어 있어 자체적으로 실행하거나 GlassFish v2에 완전히 통합할 수 있습니다.

GlassFish v2에서는 메시지 지향 시스템 통합을 위한 완전한 JMS(Java Message Service) 구현인 Open MQ를 제공합니다.

GlassFish v2와 함께 사용하면 클라이언트에 JMS 기반 메시지 전달 서비스를 제공하는 Open MQ 구성요소인 메시지 브로커가 GlassFish v2와 동일한 프로세스에 있을 수 있습니다. 즉, 둘 모두 동일한 자바 가상 머신에서 실행됩니다. 이러한 애플리케이션 서버에 대한 Open MQ의 관계를 EMBEDDED 모드라고 합니다. 또한 LOCAL 모드에서는 메시지 브로커가 GlassFish v2와 동일한 수명 주기를 공유할 수 있으며, REMOTE 모드에서는 별도로 실행될 수 있습니다.
 

효율적이고 안전한 메시지 전달

Open MQ를 사용하면 안전한 메시지 전달을 보증하면서 기존 및 새 애플리케이션을 연결할 수 있습니다. 메시지 전달이 보장되며 보낸 순서대로 메시지가 전달됩니다. Open MQ에서는 비동기 메시징을 지원합니다. 즉, 애플리케이션에서 메시지를 전송한 후 메시지를 수신하는 동안 기다리지 않고 계속해서 처리할 수 있습니다. 메시지는 게시-구독(Publish-Subscribe) 방식으로 전송됩니다. 이러한 접근 방식에서는 그림 8에 표시된 대로 게시자(publisher)라고 하는 메시지를 발신인이 제목(topic)이라고 하는 중간 대상에 메시지를 전송합니다. 해당 제목을 구독하는 구독자(subscriber)라고 하는 여러 애플리케이션에서 제목에서 메시지를 제거하여 메시지를 사용합니다. 게시자는 구독자와 완전히 독립적입니다. 대신 메시지를 지점 간 즉, 특정 수신자에게 전송할 수 있습니다. 이러한 경우 메시지가 대기열에 전송되고 수신자는 대기열에서 메시지를 제거하여 메시지를 사용합니다.

사용자 삽입 이미지

그림 8. Open MQ에서의 게시-구독 메커니즘

처리 기능 외에도 Open MQ는 쉽게 설치하고 관리할 수 있습니다.openInstaller를 기반으로 하는 GUI 기반 설치 프로그램을 사용하여 이를 설치할 수 있습니다. 또는 아카이브 배포의 압축을 푸는 파일 기반 설치를 수행한 다음 설치 스크립트를 실행하여 사용할 Open MQ를 구성할 수 있습니다. Open MQ에서는 메시지 브로커를 시작하는 것과 같은 Open MQ 관련 작업을 수행할 수 있는 자체 관리 콘솔 및 CLI를 제공합니다. 또한 Open MQ에서는 JAAS(Java Authentication and Authorization Service)를 통해JMX(Java Management Extensions) 기반 모니터링, 클러스터링 및 인증을 지원합니다.


고성능 및 가용성

Open MQ는 독립 실행형 애플리케이션으로 테스트되거나 뛰어난 성능이 포함된 GlassFish와 통합되었습니다. 또한 Open MQ에서는 데이터와 메시지 브로커 모두에 고가용성을 지원합니다. 고가용성 JDBC 공급자와 함께 Open MQ를 사용하면 고가용성 기능이 실행됩니다. Open MQ는 mySQL, Oracle RAC(Real Application Clusters) 및 Sun Java System Application Server 9.1의 HADB 기능으로 테스트되었습니다.

Open MQ에 대한 자세한 내용은 Open Message Queue 프로젝트를 참조하십시오.


매력적인 가격 지원 정책

Sun Java System Application Server 9.1에는 다양한 구독 옵션 집합을 사용할 수 있습니다. 완전한 보증, 온 디맨드 소프트웨어 업데이트 및 업그레이드, 썬 개발 전문가 지원 등이 포함된 서비스를 지원받을 수 있습니다. 소켓 4개에 대한 구독 가격은 연 4500 달러부터 저렴하게 시작합니다. 자세한 내용은 자바 시스템 애플리케이션 서버 구독을 참조하십시오.


요약

고가용성, 확장성, 엔터프라이즈급 성능, 중앙 집중화된 관리, 간단한 구성 및 효율적이고 안전한 메시지 전달과 같은 특성을 가진 GlassFish v2는 프로덕션 환경의 요구를 처리할 수 있는 견고성과 비즈니스 위험 애플리케이션을 처리할 수 있는 안전성이 포함된 엔터프라이즈 품질의 애플리케이션 서버입니다. 웹 서비스 상호 운용성 및 JBI 호환 런타임에 대한 지원을 추가할 경우 엔터프라이즈에 애플리케이션 처리 요구에 맞는 많은 유연성을 제공하는 애플리케이션 서버의 역할을 수행합니다. 오픈 소스로서, GlassFish v2는 GlassFish v2 또는 GlassFish v2의 썬 지원 상용 배포판인 Sun Java System Application Server 9.1인지에 관계없이 비즈니스에 개방되어 있습니다.

(1) SPEC 및 벤치마크 이름인 SPECjAppServer 2004는 Standard Performance Evaluation Corporation의 등록 상표입니다. Sun Java System Application Server 9.0은 521.42 JOPS@Standard(1 Sun Fire T2000 [코어 8개, 칩 1개] 애플리케이션 서버 및 1 Sun Fire T2000 [코어 6개, 칩 1개] 데이터베이스 서버)를 확보했습니다. 최신 SPECjAppServer 2004 벤치마크 결과는 SPEC 웹 사이트를 방문하십시오.

(2) 2007년 7월 10일을 기준으로 단일 Sun Fire T2000을 애플리케이션 서버로 사용하는 모든 SPECjAppServer 2004 점수를 기반으로 비교합니다. 참조 점수: Sun Java Application Server 9.1은 883.66 JOPS@Standard(1 Sun Fire T2000 [칩 1개, 코어 8개] 애플리케이션 서버 및 1 Sun Fire T2000 [칩 1개, 코어 6개] 데이터베이스)을 확보하고, BEA Weblogic 9.1은 801.70 JOPS@Standard(1 Sun Fire T2000 [칩 1개, 코어 8개] 애플리케이션 서버 및 1 Sun Fire T2000 [칩 1개, 코어 6개] 데이터베이스)을 확보했으며, Sun Java Application Server 9.0은 521.42 JOPS@Standard(1 Sun Fire T2000 [칩 1개, 코어 8개] 애플리케이션 서버 및 1 Sun Fire T2000 [칩 1개, 코어 6개] 데이터베이스)을 확보하고, IBM WebSphere는 616.22 JOPS@Standard(1 Sun Fire T2000 [칩 1개, 코어 8개] 애플리케이션 서버 및 1 Sun Fire X4200 [칩 2개, 코어 4개] 데이터베이스 서버)을 확보했으며, BEA Weblogic 9.0은 615.64 JOPS@Standard(1 Sun Fire T2000 [칩 1개, 코어 8개] 애플리케이션 서버 및 1 Sun Fire V490 [칩 4개, 코어 8개] 데이터베이스)을 확보했습니다.

(3) 2007년 11월 23일을 기준으로 공개된 모든 SPECjAppServer 2004 점수를 기반으로 비교합니다. 참조 점수: Sun Java Application Server 9.1은 8439.36 JOPS@Standard(6 Sun SPARC Enterprise T2150 애플리케이션 서버[칩 6개, 코어 48개] 및 1 Sun Fire E6900 데이터베이스[칩 24개, 코어 48개])를 확보하고, Oracle Application Server 10.1은 10519.43 JOPS@Standard(12 HP BL860c 애플리케이션 서버 [칩 24개, 코어 48개] 및 2 HP Superdome 데이터베이스 서버 [칩 40개, 코어 80개])를 확보했으며, Oracle Application Server 10.1은 9459.19 JOPS@Standard(11 HP BL860c 애플리케이션 서버 [칩 22개, 코어 44개] 및 2 HP Superdome 데이터베이스 서버 [칩 40개, 코어 80개])를 확보했습니다.


자세한 정보


GlassFish 커뮤니티 - Java EE 애플리케이션 서버 전달 (PDF)
GlassFish 커뮤니티
Sun Java System Application Server 9.1
GlassFish v2 - 엔터프라이즈 기능 및 오픈 소스
아쿠아리움(The Aquarium)
기사: 실행 중인 썬 기술


저자 정보

Ed Ortjava.sun.com 소속이며 관계형 데이터베이스 기술, 프로그래밍 언어, 웹 서비스 및 ajax에 대해 폭넓게 저술했습니다.

이 글의 영문 원본은
http://java.sun.com/developer/technicalArticles/glassfish/GFv2OpenforBusiness/index.html

에서 보실 수 있습니다.

출처 : http://www.sdnkorea.com/blog/500