다가오는 혁신의 각 회에서는 개발자와 실행자 둘 다의 관점에서 신흥 기술에 관련된 주제에 관한 새 정보와 토론 외에도 최첨단의 IBM® WebSphere® 제품의 이면에서 보기를 특징으로 한다.
IBM WebSphere Application Server Community Edition은 오픈 소스 프로젝트 Apache Geronimo를 기반으로 한다. Apache Geronimo는 핵심 Java EE 런타임 및 컴포넌트들 뿐만 아니라 Java 개발자들에게 경량 배치로 애플리케이션 개발 도구를 제공하는 몇 가지 Apache 프로젝트들로 구성된 모듈형 서버 프레임워크이다. Geronimo는 일반적으로 종속성 주입이라고 하는 제어의 역행(Inversion of Control)을 기반으로 하는 아키텍처형 설계를 가지고 있다. Geronimo 커널은 Java EE 서버 배치를 형성하는 종속성을 관리하도록 특별히 제작되었다. 이 설계를 통해 Geronimo 개발자들은 Java Persistence API(JPA), Enterprise JavaBeans™(EJB) 및 Java Message Service(JMS)와 같이 서비스를 제공하도록 테스트된 오픈 소스 컴포넌트를 함께 통합할 수 있다.
Apache Geronimo 2.0 애플리케이션 서버는 호환 가능하며 Java EE 5 스펙으로 인증되었다. Geronimo 3.0은 Java EE 6 레벨 서비스들과 컴포넌트들이 포함된 새 릴리스이며, OSGi 프레임워크 위에서 실행한다. 이제 Geronimo 3.0은 Apache Aries 컴포넌트들과의 통합을 통해 제공되는 Enterprise OSGi 프로그래밍 모델로 애플리케이션을 개발하기 위한 지원을 제공한다. 번들에서 정의되는 애플리케이션들은 서버 런타임의 유지보수성을 개선하기 위한 서비스로서 별개로 관리할 수 있다.
이 릴리스는 개발자들이 오픈 소스 애플리케이션 서버를 사용하기에 가장 유연하며 간편하다고 생각하는 것을 더한다. Geronimo 3.0 M1 중요 드라이버는 2010년 6월에 출시되었다. 이 기사는 Geronimo 3.0-M1에 사용 가능한 중요한 일부 새 기능에 대해 강조한다.
Apache Aries는 다양한 OSGi 엔터프라이즈 스펙을 구현하는 컴포넌트들을 많이 제공한다. Aries Blueprint는 Blueprint Container 스펙을 구현하여, OSGi 애플리케이션에 대한 종속성 주입 컨테이너를 제공한다. Blueprint는 Spring에서부터 규칙을 표준화하고 XML 정의를 사용하여 컴포넌트 구성 및 연결을 설명한다. Geronimo 3.0은 Apache Aries에서 다른 컴포넌트들과 함께 Blueprint 컨테이너를 사용하여 EBA(Enterprise Business Archive) 프로그래밍 모델과 패키지 배치를 제공한다.
EBA 파일은 OSGi 애플리케이션을 지정하는 하나의 방법이다. OSGi 애플리케이션은 Java EE 프로그래밍 모델에서 EAR 파일과 같이 일관된 하나의 비즈니스 함수를 함께 형성하는 번들의 콜렉션이다. 예를 들어, EBA 파일은 Blueprint 번들과 JPA 지속성 번들을 포함할 수 있다. Blueprint 번들은 지속성 번들에서 정의한 지속성 단위로 주입되는 컴포넌트들을 포함할 수 있다. JPA(Java Persistence API)는 POJO(Plain Old Java Object)에서부터 지속성 계층으로 관계를 맵핑하는 표준 방법이다. JPA 2.0은 이제 Enterprise JavaBeans 3.0 스펙과 구별되는 하나의 독립형 스펙이다. Geronimo는 Apache OpenJPA 컴포넌트를 사용하여 지속적인 데이터 액세스를 제공한다.
등록된 서비스로 분배된 EBA는 애플리케이션들 사이에 모듈 재사용을 간소화한다. 또한 이를 통해 개발자들은 사용 가능한 도구화로 서버 환경에 독립적인 단위 테스트에 유연성을 사용할 수 있다.
Geronimo 3.0 M1은 Apache Aries에서부터 JNDI(Java Naming and Directory Interface) 컴포넌트도 통합한다. 이는 JNDI 검색으로 서비스 레지스트리에 액세스를 제공하는 간편한 방법을 제공한다. 이 기능을 통해 OSGi 서비스를 @Resource 어노테이션으로 정규 Java EE 모듈에 주입할 수 있다.
Geronimo 3.0 M1도 OSGi 웹 애플리케이션들을 지원한다. OSGi 웹 애플리케이션들은 WAR 모듈들에 대한 지원을 OSGi에 제공한다. Geronimo에서 OSGi 애플리케이션 지원은 Java EE 6 프로그래밍 모델에 상호 보완적이며, 이를 통해 애플리케이션 모듈과 웹 자원의 콜렉션으로 모듈형 방식으로 Java 컴포넌트들을 사용할 수 있다. 이러한 애플리케이션 모듈들은 JAR 형식화된 파일 내의 자원 파일, 클래스 및 메타데이터가 들어있는 번들로 패키지화된다. 번들 메타데이터는 XML로 모듈 버전, 종속성 선언 및 패키지 가시성을 지정한다. 이러한 방식으로 번들은 자체적인 클래스경로 내에서 동시적으로 활성화되어 라이프사이클 변경에 독립적으로 반응할 수 있다. 번들은 라이프사이클 상태 이벤트를 기반으로 동적으로 종속성을 해결할 수 있으며, 런타임 시 해결에 실패하는 경우 원활하게 분해할 수 있다. 웹 애플리케이션 번들(WAB)은 지정된 특정한 일반 종속성이 있는 번들이며, 적절한 OSGi 메타데이터가 있는 근본적으로 하나의 WAR 파일이다. WAR 파일은 번들 설치 도중에 특수 "웹번들" URL을 사용하여 자동으로 WAB으로 변환될 수 있다. 기존 WAR 모듈들은 매니페스트 파일에서 특정 버전으로 번들 종속성을 지정하여 WAB 아카이브들이 될 수 있다. 이러한 방식으로 WAR : WBA :: EAR : EBA라고 할 수 있다. WAB는 Servlets, JSP 및 어노테이션을 지원한다.
Geronimo 3.0 M1에는 새 Java EE 6 웹 프로파일 기능의 일부가 들어있다. Servlet 3.0 및 JSP 2.2는 이제 Tomcat 7 컨테이너에 대한 지원이 포함되어 제공된다. Servlet 3.0 스펙의 기본 초점은 웹 프레임워크 확장성이다. 새 Java 언어 기능은 이전에 web.xml 디스크립터 파일에서 구성된 메타데이터를 설명하는 서블릿 어노테이션들을 제공하도록 노출되었다. 어노테이션 지원은 서블릿, 서블릿 필터 및 컨텍스트 리스너의 프로그래밍형 등록과 초기화를 제공한다. 컨테이너는 서블릿과 필터를 선언하기 위해 하나의 긴 web.xml 파일을 사용하는 것이 아니라 여러 web.xml 단편들을 사용하여 충돌을 방지하도록 제공되는 규칙으로 애플리케이션의 디스크립터를 조립할 수 있다.
Tomcat에서 Servlet 3.0은 또한 요청/응답 사이클의 비동기적 처리를 제공한다. 이는 중요한 기능이며, 애플리케이션 또는 서비스에서 웹 2.0 스타일 작동을 빌드하기 위한 비차단 입력, 처리 및 결과물을 사용한다.
Servlet 3.0 스펙은 또한 Java Server Pages 2.2 지원에 맞춰 조정된다. JSP 2.2의 주요 초점은 개발자 생산성이다. 접속 가능한 웹 티어 API는 약어인 EL로 알려진 새 통합 표현식 언어(Unified Expression Language)를 통해 제공된다. EL 2.2는 JSP 및 Java Server Faces에 표현식 언어를 함께 제공하여 태그 평가, 오브젝트 특성 및 그 참조들을 더 잘 처리한다. EL 표현식들은 JSP 태그 파일들 내에서 또는 페이지들 자체 내에서 직접 사용할 수 있다. Java Server Faces 2.0은 이제 간단한 뷰 템플리트를 제공하여 사용자 인터페이스에 대한 Facelet을 사용한다.
JSF 2.0은 또한 관리형 bean 액세스, 리스너 등록 및 기타 등등에 대한 어노테이션들을 제공한다. 이는 올바르게 어노테이션된 POJO가 별도의 구성 없이 런타임 시 관리형 bean이 될 수 있다는 것을 의미한다. bean 라이프사이클의 범위는 이 규칙을 통해 관리된다. 이러한 어노테이션들은 컴포넌트, 유효성 검증기(validator) 또는 렌더러에 사용할 수 있다.
탐색 모델도 업데이트되어 구성에서 명시적인 조치 대신에 비즈니스 로직을 기반으로 하는 선언적인 규칙 기반 처리를 허용한다. 구성이 없거나 최소 구성으로 탐색을 지정하는 세 가지 방식들이 있으며, API는 쿼리와 수정을 사용하여 런타임 시 탐색 규칙을 만든다. 이렇게 매우 편리한 기능 때문에 Geronimo 3.0을 통해 웹 애플리케이션들을 더 간편하게 개발할 수 있다.
Apache Geronimo 오픈 소스 프로젝트의 기본적인 임무는 최상의 소프트웨어를 사용하는 오픈 소스 컴포넌트들에서부터 모듈형 애플리케이션 서버 프레임워크를 작성하는 것이다. Apache Geronimo 3.0은 사용자 정의를 염두에 두고 개발된 유연한 Java EE 애플리케이션 서버이다. 이는 사용 편의성이 더 훌륭하고 공간을 적게 사용하여 향상된 개발자 경험을 제공한다. Apache Geronimo 3.0의 다섯 가지 배포들에서는 Tomcat 또는 Jetty 웹 컨테이너 및 OpenJPA 또는 지속성 서비스 없이 사용하는 사용자 정의 어셈블리 옵션들을 제공한다. Geronimo 3.0 M1 릴리스는 OSGi 서비스로 제공되는 몇 가지 핵심 Java EE 6 컴포넌트들 뿐만 아니라 OSGi 애플리케이션 프로그래밍 모델에 대한 지원도 제공한다. 이 서버는 재사용 가능한 애플리케이션 인프라 서비스를 맞추기 위해 견고한 프레임워크를 추구하는 Java 개발자들을 위한 강력하며 중요한 단계이다.
교육
제품 및 기술 얻기
토론
-
Apache Geronimo 위키
-
Apache
Geronimo 문서 위키
-
IBM developerWorks WebSphere Emerge 그룹
-
IBM WebSphere Application Server Community Edition 포럼
Ryan Boyles is a software engineer in IBM Software Group working on the WebSphere Technical Evangelism team in Research Triangle Park, North Carolina. He is a developer advocate for emerging technology and web application software. He worked for nine years in user interface development in Tivoli Software. Ryan writes about WebSphere application infrastructure on his blog.