검수요청.png검수요청.png

글래스피시

해시넷
이동: 둘러보기, 검색
글래스피시(GlassFish) 로고
글래스피시(GlassFish) 로고와 글자

글래스피시(GlassFish)는 미국 썬 마이크로시스템즈(SUN Microsystems) 회사가 개발한 웹 애플리케이션 서버(WAS) 제품의 이름이다. 오라클사에 인수되었다.

개요[편집]

글래스피시(GlassFish)는 Java EE(Enterprise Edition) 플랫폼을 위해 썬 마이크로시스템즈에서 시작하여 오라클(Oracle Corporation)에서 후원하였으며 이클립스 파운데이션(Eclipse Foundation)으로 이전했으며, 파야라(Payara), 오라클 및 레드 햇(Red Hat)에서 지원한다. 오라클 아래에서 지원되는 버전을 오라클 글래스피시 서버라고 불렀다. 글래스피시는 무료 소프트웨어로, 처음에는 CDDL(Common Development and Distributionion License과 GNU(Gnu’s Not Unix), GPL(General Public License)이라는 두 가지 무료 소프트웨어 라이선스에 따라 이중 라이선스를 받았다. 이클립스로 이전한 후에도 글래스피시는 이중 라이선스를 유지하였으나 CCDL 라이선스는 EPL(Eclipse Public License)로 대체되었다.

글래스피시는 Java EE의 참조 구현이며 엔터프라이즈 자바빈스(EPJs), 자바 퍼시스턴스 API(JPA), 자바서버 페이스(JSF), 자바 메시지 서비스(JMS), 원격 메소드 호출(RMI), 자바 페이지, 서블릿 등을 지원한다. 이를 통해 개발자는 이동할 수 있고 확장 가능하며 기존 기술과 통합된 엔터프라이즈 애플리케이션을 만들 수 있다. 추가 서비스를 위히 선택적 구성요소를 설치할 수 있다.글래스피시는 썬 마이크로시스템즈와 오라클의 탑링크(TopLink)를 기반으로, 웹 콘텐츠를 제공하는 서블릿 컨테이너는 아파치 톰캣을 사용하면서 성능과 확장성을 높이기 위해 자바 NIO(New Input Output)를 사용하는 그리즐리(Grizzly)라는 구성 요소를 추가하였다. 썬 마이크로시스템즈 는 2010년 오라클에 인수합병 되었다.[1]

연혁[편집]

  • 2005년 06월 06일 : 썬 마이크로시스템즈는 글래스피시 프로젝트 시작
  • 2006년 05월 04일 : 글래스피시는 Java EE 5사양을 지원하는 1.0 버전(썬 자바 시스템 어플리케이션 서버 9.0: Sun Java Syetem Application Server 9.0) 출시
  • 2007년 05월 08일 : 프로젝트 세일핀(Project SailFin)은 자바원(JavaOne)에서 프로젝트 글래스피시의 하위 프로젝트 발표
  • 2007년 09월 17일 : 글래스피시 2.0 출시, 엔터프라이즈 클러스터링 기능인 마이크로소프트 상호 운용 가능한 웹 서비스
  • 2009년 01월 21일 : 글래스피시 2.1 출시, 세일핀 1.0의 기반이 되는 버전
  • 2009년 12월 10일 : 글래스피시 3.0 출시, Java EE 참조 구현인 이것은 Java EE6 JSR(Java Specification Request) 316 완전히 구현한 최초의 애플리케이션 서버
  • 2010년 03월 25일 : 썬 마이크로시스템즈 회사를 인수한 직후 오라클은 클러스터링, 가상화 및 Chherence 및 기타 오라클 기술과의 통합 3.0.1, 3.1, 3.2, 및 4.0 로드맵 발행
  • 2011년 02월 28일 : 오라클은 글래스피시 3.1 출시, ssh 기반 프로비저닝, 중앙 집중식 관리, 클러스터링 및 로드 밸런싱 지원
  • 2011년 07월 28일 : 글래스피시 3.1.1 출시, 구성 업데이트 및 자바 개발 도구(JDK) 7, AIX(Advanced Interactive Executive) 지원
  • 2012년 02월 29일 : 글래스피시 3.1.2 출시, 관리 콘솔 향상, 데이터베이스에서의 트랜잭션 복구 및 새로운 스레드 풀 특성을 포함한 버그 수정 및 새로운 기능
  • 2012년 07월 17일 : 글래스피시 3.1.2.2 출시, 제품의 일부 예외적인 문제를 해결하기 위한 마이크로 출시[2]
  • 2013년 06월 12일 : 글래스피시 4.0 출시, 자바 플랫폼(Java Platform), 엔터프라이즈 에디션(Enterprise Edition) 7 지원[3]
  • 2014년 09월 09일 : 글래스피시 4.1 출시, 많은 버그 수정(1,000개 이상) 및 최신 MR CDI(Cellular Data, Inc.) 및 웹 소켓 포함[4]
  • 2015년 10월 07일 : 글래스피시 4.1.1 출시, 기본 구성 요소 업데이트 및 버그 수정, 보안 수정[5]
  • 2017년 03월 31일 : 글래스피시 4.1.2 출시, 버그 수정[6]
  • 2017년 09월 21일 : 글래스피시 5.0 출시, Java EE 8 오픈 소스 참조 구현[7]
  • 2019년 01월 29일 : 이클립스 Foundation은 글래스피시 5.1 출시, 오라클 글래스피시 5.1이랑 동일하지만 오라클이 이클립스로 전송 한 후 EPL로 재 라이선스 된 소스 코드로 빌드됨 오라클 글래스피시 5.0과 마찬가지로 5.1은 Java EE 8 인증 받았지만 RI(Right in) 상태는 없다.[8]

구성[편집]

  • 글래스피시 웹 스택 : LAMP(Linux + Apache + Mysql + Php) 통합 스택으로 경량화된 웹 솔루션 제공하고, 톰캣, 멤캐시드를 포함하고 있으며 PHP(Hypertext Preprocessor), 루비, 자바를 지원한다. 운영체제는 레드 햇 엔터프라이즈 리눅스이다.
  • 글래스피시 웹 스페이스 서버 : 라이프레이를 기반으로 웹 사이트 개발 기능을 제공한다.
  • 글래스피시 ESB(Enterprise service bus) : 공공/SOA(Service Oriented Architecture) 개발을 위한 경량화된 엔터프라이즈 서비스 버스(ESB)이다.
  • 엔터프라이즈 매니저 : 오픈소스가 아닌 컴포넌트로, 글래스피시 포트폴리오 전반의 관리 기능 담당[9]

특징[편집]

글래스피시는 썬 마이크로시스템즈와 오라클의 탑링크를 기반으로 하고 있다. 물론 웹 콘텐츠를 제공하는 서블릿 컨테이너는 아파치 톰캣을 사용하면서 성능과 확장성을 높이기 위해 자바 NIO을 사용하는 그리즐리라는 구성 요소를 추가하였다.[10] 글래스피시는 jsp형태의 웹 애플리케이션뿐만 아니라 Java EE5기반의 서비스를 할 수 있는 매우 강력한 애플리케이션 서버이다. 오픈 자바 개발 도구와 함께 자유롭게 소스 또는 바이너리를 가져다가 서버를 구축할 수 있게 해준다. 글래스피시는 V2를 출시하고 있으며 다운로드는 다음 사이트에서 각 운영체제별로 구할 수 있다.[11]

최초 버전은 글래스피시 (2006.05.04)이고, 2018년 10월 기준으로 안정 버전, 최신 버전은 모두 Glashfish 5.0 (2017.09.21)이며 라이선스로 공동 개발 및 유통 면허와 GNU 일반 공공 면허(Common Development and Distribution License & GNU General Public License)를 소지하고 있다. 개발 후원사는 오라클이며 개발 프로그래밍 언어로 자바를 사용한다. 여러 나라의 언어를 지원하고, 크로스-플랫폼(Cross-platform)을 OS로 지원한다. 하드웨어 사양(시스템 요구 사항)으로 CPU: 펜티엄4, 메모리 1GB, 디스크 250MB를 필요로 한다. 보안 취약점에 대해 취약점 ID는 CVE-2017-10400이고, 심각도는 5.4 Medium(V3)이다. 관리 그래픽 사용자 인터페이스에 원격 보안 취약점으로 인해 HTTP를 통한 네트워크 액세스 권한이 없는 공격자가 오라클 글래스피시 서버를 손상시킬 수 있다. 글래스피시 3.0.1v, 3.1.2v 이상으로 업데이트하는 것으로 대응 방안이 있다.[12]

발전 계획[편집]

2018년[편집]

엔터프라이즈 자바를 개발하고 있는 이클립스 파운데이션이 2018년 안에 글래스피시 자바 애플리케이션 서버 2개 버전을 공개한다고 밝혔다. 여기에는 이클립스의 새로운 엔터프라이즈 자바 표준과 호환되는 버전도 포함된다. 엔터프라이즈 자바 플랫폼을 더 개선하려는 이클립스 파운데이션의 첫번째 성과물이 될 전망인데, 앞으로 마이크로서비스와 클라우드 지원 기능을 강화할 예정이다. 글래스피시는 그동안 Java EE의 레퍼런스 구현 역할을 해 왔다. Java EE는 자카르타 EE로 이름이 바뀌었으므로, 글래스피시는 이제 자카르타 EE의 레퍼런스가 된다. 2018년 3분기에 이클립스 글래스피시 5.1이 공개되면 이클립스 엔터프라이즈 자바(EE4J) 최고 수준 프로젝트의 첫번째 결과물이다. 글래스피시 5.1은 Java EE 8 호환 인증도 받을 예정이다. 2018년 4분기에는 자카르타 EE 8 호환 인증을 받고 이클립스의 엔터프라이즈 자바 절차를 따른 이클립스 글래스피시 5.2를 개발할 예정이다. 이클립스의 수석 디렉터 마이크 밀린코비치(Mike Milinkovich)는 "Java EE 8과 자카르타 EE 8은 약간 차이가 있지만 거의 유사하다"라고 말했다. 이클립스의 자카르타 EE 출시 일정은 아직 최종 확정되지 않았다. 이클립스 파운데이션의 발표에는 글래스피시 개발 계획 외에도 자카르타 관련된 개발 계획과 장기적인 목표 등이 상세하게 포함됐다.

개발자와 이해관계자의 의견을 취합해 도출한 핵심 개선사항이다.
  • 마이크로서비스 아키텍처 지원 강화 : 기존 이클립스 마이크로프로파일(Eclipse MicroProfile) 커뮤니티가 이 작업을 주도할 예정이다. 이를 통해 자카르타에 마이크로서비스에 적합한 UI와 더 단순한 활용 모델을 추가한다. 이렇게 되면 기업은 자카르타 전체를 쓰지 않고도 필요에 따라 이 플랫폼을 다양하게 사용할 수 있다.
  • 클라우드 네이티브 자바로의 이동 : 도커(Docker) 컨테이너와 쿠버네티스(Kubernetes) 컨테이너 오케스트레이션과의 통합이 더 강화된다. 일부는 자바 가상 머신(JVM) 수준에서 통합해야 하는데, 이를 위해 이클립스 자카르타 커뮤니티는 오픈 자바 개발 도구, 이클립스J9 가상기계(VM) 팀과도 협업할 예정이다.
  • 생산 수준의 레퍼런스 구현
  • 활발한 개발자 커뮤니티 구축
  • 이클립스를 오픈소스의 중심으로 육성 : 클라우드 우호적인 자바, 마이크로서비스, 도커, 쿠버네티스 같은 다른 기술을 적극적으로 포용하고 이끌어간다는 구상이다.

이클립스가 클라우드 지원과 마이크로서비스 지원을 강조한 것은 과거 오라클이 엔터프라이즈 자바의 발전 방향으로 제시했던 것과 비슷하다. 자바 개발이 이클립스로 넘어온 이후 이클립스 파운데이션은 개발자의 커뮤니티 참여를 더 쉽게 할 수 있도록 노력하고 있다. 이전에 오라클이 주도하던 시절의 자바 커뮤니티 프로세스(Java Community Process)는 자바 커뮤니티와 활발하게 교류했지만 글래스피시나 저지(Jersey) 웹 서비스 API(Application Program Interface) 같은 오픈소스 프로젝트에 참여하려면 OCA(Oracle Contributor Agreement)에 가입해야만 했다. 이는 일부 자바 개발자의 프로젝트 참여를 막는 요인 중 하나였다고 이클립스 측은 설명했다. 이어 자카르타 EE 표준과 개발을 진행하는 새로운 프로세스는 공개적이며 업체 중립적이고 모든 개발자에게 참여 기회를 제공할 것이다. 한편 자카르타 EE 플랫폼 표준과의 호환성을 검증하는 테스트 호환성 키트(TCK)가 2018년 안에 공개될 예정이다. 이전보다 더 공개적이고 덜 번거롭게 하기 위해서다. 이 테스트 호환성 키트는 처음에는 오픈소스 라이선스로 사용할 수 있다. 이전까지는 유료 Java EE 라이선스가 있어야만 사용할 수 있다. 호환성 인증은 자카르타 EE 트레이드마크 라이선스가 필요하다. 이 라이선스에 비용을 부과할지는 아직 결정되지 않았다.[13]

2019년[편집]

이클립스 파운데이션이 자카르타 EE8 플랫폼과 웹 프로파일 사양을 공개했는데, 자바 엔터프라이즈 에디션 8의 이클립스 버전을 구성하는 주요 요소이다. 또한 이클립스 파운데이션은 자카르타 EE 애플리케이션 서버와 구현한 결과를 테스트하는 오픈소스 테스트 호환성 키트를 함께 내놓았다. 자카르타 EE 사양과 함께 자카르타 EE 플랫폼을 적용한 오픈소스 애플리케이션 서버 이클립스 글래스피시 5.1을 발표했다. 이에 따라 다양한 업체가 자카르타 EE8 호환 서버를 내놓을 것으로 보인다. 실제로 IBM(International Business Machines Corporation)의 오픈 리버티 서버는 자카르타 EE8 호환 인증을 받았다. 이에 앞서 이클립스는 지난 2017년 오라클이 Java EE 개발에서 손을 떼기로 한 이후 후속 개발을 떠맡기로 합의했다. 이클립스는 완전히 새로운 브랜드인 자카르타 EE9을 내놓는 대신 기존 Java EE8을 자카르타 EE8으로 이식하는 단계적인 전환 작업을 해서 이를 둘러싼 이해 당사자와 함께 오픈소스 중심의 사양 선정 절차를 만들었다. 자카르타 EE는 클라우드와 마이크로서비스 등 최신 컴퓨팅 기술을 지원하는 데 초점을 맞췄다.[14]

다른 웹 애플리케이션 서버[편집]

톰캣

톰캣(Tomcat)은 아파치 소프트웨어 파운데이션(Apache Software Foundation)에서 서버인 자바를 움직이게 하기 위해 개발한 AP(application program) 서버이다. 웹프로그램은 순수한 프로그램 언어로만 이루어진 것이 아니라 클라이언트 언어인 HTML이 혼용되었는데, 톰캣은 자바 파일만 해석할 수 있다. HTML과 혼용된 경우 컴파일 과정을 거친다. JSP 페이지는 서블릿 형태로 일단 변형되어 완벽한 자바 파일로 변형된 뒤 컴파일된다. 자바 서블릿과 JSP 규격의 '참조용 구현'으로 평가되고 있는 톰캣은, 개발자들의 개방적 협력 작업의 산물로 아파치 웹사이트에서 받을 수 있다. 톰캣을 실행시키기 위해서는 JRE1.1 이상에 부합되는 자바 런타임 환경이 필요하다.[15]

글래드피시와의 차이점으로 컨테이너의 일종인 자카르타 EE 컨테이너에 속해 있지만, 톰캣은 그 자체로 웹 컨테이너를 구성하고 있다. 그리고 이러한 두드러진 차이점은 글래스피시에 여러 이점을 가져다 준다.

  • 간편한 마이그레이션 : 글래스피시 v2를 이용하면 엔터프라이즈 자바빈스(EJB), 자바 퍼시스턴스 API, 자바 메시지 서비스 등의 이점을 확실하게 누릴 수 있다. 반면에 톰캣의 경우 위의 기술을 개별적으로 추가해 줘야 하는 번거로움이 있으며, 개발자는 그 기능을 일일이 구현해서 이들이 제대로 돌아가도록 해야 한다.
  • 향상된 클러스터링 및 페일오버 지원 : 글래스피시 v2가 제공하는 클러스터링과 정교한 고가용성 기능은 애플리케이션이 엄격한 엔터프라이즈급 SLA(Service Level Agreement)를 충족할 수 있도록 설계되었다. 글래스피시 v3 Prelude는 아직 클러스터링 프로파일이 적용되지 않은 관계로 로드 밸런서를 통해 클러스터링을 지원하고 있다.
  • 강력한 관리/모니터링 기능 : 글래스피시 v2와 v3 Prelude 모두 관리 콘솔과 커맨더 라인 인터페이스(CLI)를 이용한 중앙식 관리 방식을 지원하고 있고, 특히 글래스피시 v2에서 제공하는 콜 플로우 모니터링(Call flow Monitoring) 기능은 애플리케이션 개발자 또는 서버 관리자가 애플리케이션이 가장 많이 사용되는 영역을 파악할 수 있도록 도와준다(이 기능은 글래스피시 v3에서도 지원된다). 또한 여타 벤더들도 글래스피시 업데이트 센터를 통해 글래스피시h를 간편하게 설치하고 각자의 소프트웨어를 활용할 수 있다. 반면에 톰캣의 경우 새로운 소프트웨어 사용 시 이를 일일이 구성해주어야 하는 불편함이 있다. 업데이트 센터는 또한 엔터프라이즈 자바빈스 3.1 같은 최신 기술을 손쉽게 액세스할 수 있게 해주므로 애플리케이션을 EAR 파일로 패키징하는 대신 엔터프라이즈 자바빈스를 WAR(Web Application Resource)로 번들링하는 것이 가능하다.
  • 다양한 스크립팅 언어 지원 : 글래스피시는 루비/제이루비, 파이썬/자이썬, 그루비, PHP, 자바스크립트/포보스, 스칼라 같은 다양한 언어들을 지원한다.

톰캣 애플리케이션 서버는 아파치 소프트웨어 재단에 의해 개발되었으며, 썬과 JServ 개발자들도 이 프로젝트에 참여한 바 있다(초기 코드 드롭을 썬에서 제공). 오픈 소스 라이선스가 적용된 톰캣은 초기 서버 측 자바 도입 단계에서 핵심적인 역할을 담당했으며, 대기업들 간에 오픈 소스 소프트웨어의 붐을 일으키는 데 기여하기도 했다. 일반적으로, 톰캣 상에서 구동되는 애플리케이션은 글래스피시에서도 그대로 사용이 가능하나, 두 제품 간에는 애플리케이션의 성능, 확장성, 사용성 및 개발자 생산성에 영향을 미칠 수 있는 중요한 차이점이 있다. 이러한 차이점을 이해하기 위해서는 먼저 웹 컨테이너 기술에 대해 살펴보는 것이 중요하다. 애플리케이션 서버에 속하는 웹 컨테이너는 서블릿, 자바 서버 페이지, 기타 웹 티어 컴포넌트의 관리를 담당한다.[16]

와일드플라이

와일드플라이(WildFly)는 JBoss-AS와 JBoss-EAP라는 이름을 구분하기 위해 만들었다. 일반적으로 JBoss라는 용어를 사용할 때는 JBoss-AS를 지칭하는 것이지만, 2013년 레드햇은 JBoss라는 용어가 JBoss-EAP를 불리게 만들기 위해서 JBoss-AS 8부터는 'Wildfly 8'이라는 이름으로 변경하기로 했다. 또한 커뮤니티 사이트도 JBoss.org에서 wildfly.org로 변경했다.[17]

제우스

제우스(Jeus)는 티맥스소프트가 개발한 한국산 웹 애플리케이션 서버이다. 현재 기업에서 사용하는 웹 시스템에 사용되고 있으며, 웹 서버인 웹투비와 같이 사용되고 있다.[18]

각주[편집]

  1. OSS 공식 홈페이지 - https://www.oss.kr/
  2. Guest Author, 〈GlassFish Server 3.1.2.2 Now Available〉, 《오라클 공식 블로그》, 2012-07-17
  3. Guest Author, 〈Java EE 7 / GlassFish 4.0 Launch Coverage〉, 《오라클 공식 블로그》, 2013-06-12
  4. Guest Author, 〈GlassFish Server Open Source Edition 4.1 Released!〉, 《오라클 공식 블로그》, 2014-09-09
  5. David Delabassee, 〈GlassFish 4.1.1 is now available!〉, 《오라클 공식 블로그》, 2015-10-07
  6. Yamini Kalyandurga, 〈GlassFish 4.1.2 Released〉, 《오라클 공식 블로그》, 2017-03-31
  7. David Delabassee, 〈Java EE 8 and GlassFish 5.0 Released!〉, 《오라클 공식 블로그》, 2017-09-21
  8. Dmitry Kornilov, 〈Eclipse GlassFish 5.1 is Released〉, 《이클립스》, 2019-01-29
  9. Paul Krill, 〈썬, 글래스피시 기반 오픈소스 통합 웹 플랫폼 출시〉, 《아이티월드》, 2009-02-11
  10. 글래스피시 위키백과 - http://a.to/195SDaW
  11. shaneguy, 〈글래스피시(GlassFish) 소개 및 설치〉, 《네이버 블로그》, 2008-02-12
  12. OSS, 〈(솔루션 프로파일) GlassFish〉, 《오에스에스》, 2018-11-13
  13. Paul Krill, 〈자카르타 EE 자바 개발 일정 나왔다··· 이클립스 "연내 글래스피시 2종 발표"〉, 《씨아이오코리아》, 2018-04-25
  14. Paul Krill, 〈이클립스, '자카르타 EE' 공개··· 'javax' 문제는 여전히 검토중〉, 《씨아이오코리아》, 2019-09-11
  15. 톰캣 두산백과 - https://terms.naver.com/entry.nhn?docId=1224050&cid=40942&categoryId=32839
  16. 자개비, 〈(펌)GlassFish와 Tomcat 비교〉, 《티스토리》, 2009-06-12
  17. 와일드플라이 위키해시 - http://wiki.hash.kr/index.php/와일드플라이
  18. 제우스 (웹 애플리케이션 서버) 위키백과 - https://ko.wikipedia.org/wiki/제우스_(웹_애플리케이션_서버)

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 글래스피시 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.