JBoss EAP 6과 친해지기 1탄 - JBoss EAP 6란?
본문 바로가기
IT 이야기/JBoss EAP

JBoss EAP 6과 친해지기 1탄 - JBoss EAP 6란?

by 찬찬이 아빠 2020. 9. 11.
반응형
  1. JBoss EAP 6란?

JBoss EAP 6는 개방형 표준을 기반으로 개발된 오픈소스 미들웨어 플랫폼으로 Java EE6 인증을 받은 제품입니다.

엔터프라이즈 환경에서 미들웨어가 갖추어야 하는 대용량 트랜잭션(Transaction), 고가용성을 위한 클러스터링, 메시징, 분산 캐싱, 고성능 보장 등의 기술들을 제공합니다.

 

JBoss EAP 6 버전은 오픈소스 커뮤니티 프로젝트의 결과물을 이용하여 제품화합니다.

JBoss AS(Application server) 7 버전을 기반으로 만들어진 제품입니다.

다음 URL에서 JBoss EAP 6가 커뮤니티의 어떤 버전을 사용하고 있는지 확인할 수 있습니다.

 

URL : https://access.redhat.com/site/articles/112673 

 

JBoss Enterprise Application Platform Component Details - Red Hat Customer Portal

JBoss Enterprise Application Platform Component Details

access.redhat.com

 

JBoss EAP 6는 견고하고, 안전하며 확장 가능한 Java EE 기반의 응용 프로그램을 신속하게 개발할 수 있도록 API와 개발 프레임워크를 제공합니다.

 

JBoss EAP 6는 개발자가 손쉽게 애플리케이션을 개발, 배포, 운영할 수 있도록 기능을 제공해 주는 애플리케이션 플랫폼이라고 할 수 있습니다.

 

현재 레드햇의 JBoss EAP 6는 국내 WAS 시장에서 가장 빨리 성장하고 있는 클라우드 환경에 적합한 대표적인 웹 애플리케이션 서버 제품이라고 할 수 있습니다.

 

JBoss EAP 6 아키텍처

 

 

  2. JBoss란 단어의 의미

JBoss라는 단어는 여러 가지의 의미를 가지고 있습니다.

첫 번째는 오픈소스 소프트웨어 제품을 개발하는 Red Hat 미들웨어 사업부를 의미하기도 하고, 그 회사가 제작하는 모든 미들웨어 제품들에 대한 상표이기도 하며, 애플리케이션 서버의 이름이기도 합니다.

 

사람들이 JBoss라는 용어를 사용할 때는 일반적으로 JBoss 애플리케이션 서버를 지칭하는 것이며, 보통 JBoss AS라는 약어가 사용되었지만 2013년부터는 JBoss 라는 이름의 혼돈을 막기 위하여 JBoss 커뮤니티의 JBoss AS 이름을 Wildfly라는 이름으로 변경하기도 하였습니다.

 

하지만 JBoss EAP라는 이름의 레드햇 기술 보증 제품은 변경 없이 그대로 사용합니다.

 

JBoss는 1999년에 Mark Fleury가 EJB 컨테이너를 옾느 소스로 개발하기 위해 EJBOSS(Enterprise Java Beans Open Source Software)라는 이름으로 시작한 프로젝트였지만 SUN(지금은 Oracle)과의 상표권 문제 때문에 앞의 E를 빼고 현재 JBoss 라는 이름이 되었습니다.

 

JBoss AS는 JBoss.org라는 인터넷 커뮤니티에서 제공하는 Java EE 6 표준을 지원하는 오픈소스 애플리케이션 서버의 이름입니다.

JBoss는 EJBOSS에서 유래되었고 AS는 Application Server의 약자입니다.

 

  3. JBoss AS7과 JBoss EAP 6와의 차이점

JBoss EAP 6라는 사용 제품은 JBoss AS 7이라는 커뮤니티 제품을 Red Hat에서 추가 테스트와 검증 등을 통하여 안정성, 성능 그리고 보안 수준을 높인 기업용 오픈 소스 애플리케이션 서버입니다.

 

즉, JBoss EAP 6와 JBoss AS 7은 소스 코드 수준에서 거의 동일한 제품으로 벤더에 의한 유료 기술 지원을 받을 것인지 아니면 무료로 사용자 스스로 제품 문제를 해결할 것인지가 가장 큰 차이점입니다.

 

JBoss AS 7 제품은 커뮤니티에서 주로 기능 개발을 목적으로 하는 제품입니다. 기능 개발 중에 발생되니 버그는 수정되어 릴리즈에 포함될 수 있지만, 버그 수정이나 지원 환경에 대한 검증을 목적으로 한 유지 보수와 보안 업데이트는 없습니다. 즉, 주요 기능을 포함한 메이저 버전 업그레이드는 있지만, 보안이나 버그 패치 등의 유지보수 차원의 릴리즈는 없습니다. 커뮤니티 버전에서 버그 수정이 필요하다면 직접 코드 수정, 포팅 그리고 빌드해야 합니다.

 

JBoss EAP 6 제품은 상용 서비스 제품으로 기능 개발 중심의 커뮤니티 버전과는 달리 고객이 요청한 버그 수정 또는 보안 업데이트 등의 안정성과 품질 그리고 기술 지원 환경에 대한 호환성 테스트를 거쳐 출시하는 제품입니다. JBoss EAP 6와 JBoss AS 7은 버그/보안/성능에 관련된 패치 이외에는 큰 차이점이 없습니다. JBoss EAP 6 버전JBoss AS 7 버전과 동일한 소스 코드 기반으로 하여 안정된 버전을 패키징하기 때문에 대체로 JBoss EAP 버전이 JBoss AS 버전에 비해 버전이 낮습니다.

 

JBoss AS의 최신 커뮤니티 제품인 JBoss AS7을 기업에서 상업적인 목적으로 사용할 수 있지만, 보안 측면에서 여러가지 고려사항이 있어 운영 환경에서 사용하는 것은 적합하지 않습니다. JBoss AS와 같은 커뮤니티 제품들을 이용하여 최신 기능을 시험적으로 사용하거나 중요도가 낮은 내부 서비스에 적용해 보는 것은 가능할 수 있습니다. 그러나 엔터프라이즈 수준의 애플리케이션 서버 용도로 사용하기 위해서는 지속적인 보안 업데이트, 버그 수정, 성능 향상 및 벤더의 기술 지원이 가능한 JBoss EAP 버전을 사용해야 합니다.

 

<JBoss 커뮤니티 제품과 엔터프라이즈 제품의 차이점>

구분 JBoss 커뮤니티 제품 JBoss 엔터프라이즈 제품
사이트 AS7(jboss.org/Wildfly8(wildfly.org) redhat.com/jboss.com
라이선스 비용 없음 없음
기술지원 사용자 스스로 기술 지원 벤더 기술 지원
소스 코드 접근 완전한 접근 가능 완전한 접근 가능
대상 누구나 레드햇 서브스크립션 고객
개발 오픈소스 프로젝트 커뮤니티 오픈소스 프로젝트 커뮤니티 및
JBoss EAP 제품화 팀
개선 및 향상 커뮤니티의 요구에 따른 임시 또는 실험적인 소프트웨어 변경 주요 릴리스, 소규모 릴리스, 패치 및 마이그레이션 도구를 포함한 구조화된 릴리스 과정
매뉴얼 프로젝트 컴포넌트에 따라 다양 전문적이니 소프트웨어 설명서
품질 기능 검증을 위한 테스팅 위주 매우 다양한 테스트 등이 통합된 우수한 품질

 

 

  4. JBoss AS7과 Wildfly 8의 차이점

JBoss AS라는 의미가 JBoss Application Server의 약자이며 많은 경우 JBoss로 표기하여 Red Hat의 상용 오픈소스 제품인 JBoss EAP와 혼돈을 야기했었습니다. 이러한 혼란을 해소하기 위하여 JBoss AS 8 버전부터는 기존의 'JBoss'라는 이름을 'Wildfly'라는 이름으로 변경하기로 결정했으며, 현재는 jboss.org가 아닌 wildfly.org 커뮤니티에서 'Wildfly 8'이라는 이름으로 오픈소스 프로젝트를 진행하고 있습니다.

 

 

  5. JBoss 시작과 역사

JBoss는 Java를 기반으로 하는 오픈소스 미들웨어 브랜드명입니다. Java EE 스펙으르 지원하는 대표적인 제품으로 JBoss EAP 6가 있습니다. 커뮤니티 버전의 이름은 JBoss AS(Application Server)에서 Wildfly로 변경되었습니다.

 

오픈소스 소프트웨어 개발 커뮤니티인 jboss.org에는 약 100개 이상의 다양한 프로젝트가 진행 중이며 1999년부터 계속해서 발전하여 운영되고 있습니다.

 

1996년도에 Java가 처음 소개되었을 때, 개발자들은 애플리케이션에 필요한 인프라 관련 기능을 스스로 개발하여 사용해야 했습니다. 이후에 J2EE 명세서(Java 2 Enterprise Edition Specification, 현재 Java EE 명세서의 예전 이름)는 엔터프라이즈 애플리케이션을 개발하기 위한 표준화된 애플리케이션 프레임워크를제공하는 것을 목적으로 만들어졌습니다.

 

1999년에 Marc Fleury는 JBoss라는 이름의 작은 오픈소스 프로젝트를 시작했는데, 이 프로젝트는 JBoss(Enterprise Java Bean Open Source Software)라는 이름의 유래와 같이 J2EE 명세서의 Enterprise Java Bean(EJB) 부분을 구현하기 위한 것이었습니다.

 

이 프로젝트가 점차 유명해짐에 따라 JBoss 개발자들은 프로젝트 관련 문서, 컨설팅 서비스, 교육 서비스를 판매하기 시작했습니다. 2001년에 Fleury와 동료들은 JBoss Group, LLC. 라는 법인을 설립하고, 2002년도에는 개발자 지원을 제공하기 시작했습니다. 동시에 그들은 JBoss AS 3를 개발하였는데, 이것은 완전한 기능을 갖춘 J2EE 애플리케이션 서버였으며, WebSphere나 WebLogic 같은 독점 소프트웨어 제품들과 경쟁할 만큼 성장하게 되었습니다.

 

JBoss Group, LLC.는 2004년에 JBoss, Inc.로 사명을 변경합니다. JBoss AS 4를 출시하면서 JBoss, Inc.는 기업들을 위한 제품 기술 지원 서비스를 제공하기 시작하였습니다. JBoss AS 4는 매우 유명한 애플리케이션 서버로 성장하였고, 여전히 업계에서 널리 사용되고 있습니다. 도 JBoss Cache, Hibernate, jBPM, JBoss Rules 같은 JBoss AS에 포함되어 있는 많은 컴포넌트들이 JBoss AS 이외의 컨테이너에서도 독립적으로 동작할 수 있도록 하였습니다.

 

2006년 5월에 Red Hat은 JBoss, Inc.를 인수합니다. JBoss AS 5에서 새로운 혁신적인 기능들이 소개되면서 JBoss AS는 더욱 유명해졌습니다.

 

2007년부터 Red Hat은 오픈소스 커뮤니티 프로젝트인 JBoss 커뮤니티의 각종 컴포넌트를 조합하여 패키징하고 엔터프라이즈 수준의 품질 테스트를 거친 제품에 대하여 기술 지원을 보장하는 제품을 제공하였습니다. 이 제품이 JBoss Enterprise Middleware Platform입니다.

 

JBoss EAP 6는 Java Enterprise Edition 6(Java EE6) 호환 애플리케이션 서버입니다. Java 애플리케이션 서버는 애플리케이션 개발 아키텍처를 표준화합니다. Java EE는 여러 컴포넌트 모델들을 정의하는데 개발자들은 이러한 표준화된 모델을 사용하여 애플리케이션을 개발합니다. 이 애플리케이션들은 표준 배포 모델을 사용하는 애플리케이션 서버 내에 배포될 수 있습니다. 애플리케이션 서버는 배포된 애플리케이션이 동작할 수 있도록 하는 일련의 서비스들을 제공합니다.

 

 

  6. JBoss 라이선스

JBoss의 라이선스는 GNU Lesser General Public License(LGPL)입니다. JBoss AS(현재 Wildfly) 커뮤니티는 개인과 기업 모두가 라이선스 비용을 지불하지 않고 무료로 사용할 수 있습니다. 또한 다운로드, 사용, 소스 수정 및 배포도 자유롭게 할 수 있습니다.

 

JBoss 라이선스 형태는 LGPL로 한 가지 종류이지만 배포 버전은 커뮤니티 버전과 엔터프라이즈 버전 두 가지가 있습니다. JBoss EAP라는 엔터프라이즈 버전은 유료 서브스크립션 계약을 맺어 레드햇에서 검증한 JBoss 소프트웨어와 최신 패치, 버전 업그레이드를 제공해주는 서비스 제품입니다.

 

레드햇에서 테스트한 소프트웨어는 jboss.org 오픈소스 커뮤니티의 안전된 컴포넌트를 재구성하여 기업을 위한 QA 과정을 거쳐 안정성과 품질을 높인 제품이며 현재 'JBoss Enterprise Middleware'라는 제품군입니다. 또 서브스크립션 계약에 의해 JBoss 기술 지원, 컨설팅, 교육, 문서  등이 제공됩니다.

 

 

  7. Java 개발자와 오픈 소스 미들웨어

프로그래머들이 JBoss EAP를 종하나는 이유는 JBoss AS(현재 Wildfly)라는 오픈소스 프로젝트로 개발 과정이 모두 공개되어 있어 제품의 동작 방법이나 문제점에 대한 분석 등이 필요할 때 손쉽게 소스를 통하여 이해할 수 있기 때문입니다.

 

프로그래머들은 커뮤니티상에 공개되어 있는 버그 추적 시스템을 직접 확인해 볼 수 있고, 앞으로 추가될 기능들에 대한 설계에 관련된 내용을 직접 활인할 수 있으며 개발자 포럼에서 다양한 프로젝트의 핵심 개발자들이 토론하는 내용을 살펴볼 수도 있습니다.

 

공개된 소스 코드를 살펴보고 JBoss에 대해 이해하고, 문제점을 디버깅하며 JBoss가 동작하는 방식을 배울 수도 있습니다. 실제 제품을 개발하는 개발자들에게 문제점을 보고하거나, 의견을 개진하고, 토론에 참여할 수도 있습니다. 만약 사용하고 있는 JBoss의 기능에 버그가 존재한다면 그것을 해결하기 위한 패치를 직접 제작하고, 다음 버전의 제품에 그것이 채택되도록 개발자들에게 보내주는 것도 가능합니다. 이러한 형태의 커뮤니티 참여를 통하여 많은 개발자가 정규 멤버로 승격되어 JBoss AS(Wildfly) 개발에도 직접 참여할 수 있습니다.

 

오픈 소스의 본질인 참여 정신 때문에 JBoss처럼 유명한 오픈소스 제품에는 거대한 커뮤니티가 형성되어 있습니다. JBoss는 사용자 그룹, 포럼, 위키, Github를 통해서 참여하고 공유하는 커다란 국제적인 커뮤니티를 가지고 있습니다.

 

JBoss AS 같은 유명한 오픈소스 제품들은 독점 소프트웨어를 판매하는 경쟁제품들 보다 능동적으로 참여하고, 활발한 활동을 하는 사용자가 많기 때문에 오픈소스 제품에 대한 버그 발견이나 패치 개발 속도가 다른 독점 제품들과 비교해 훨씬 더 빠릅니다.

 

 

참고서적 : 거침없이 배우는 JBoss

 

반응형

댓글