2009/11/22 17:21

Enterprise Modules Project(Gemini) 살펴보기



현존하는 JEE 기술들을 Mudule 기반으로 구현하고, 구성해보자는 목적을 가지고 출발한 제안(proposal, 아직 프로포잘만 있으니까요..) 입니다. 이클립스 런타임 프로젝트를 기반으로 진행되는 오픈소스 프로젝트 입니다.

제안서에 나온 범위는 크게 두 가지 입니다.

1. 현존하는 자바 엔터프라이즈 기술을 모듈 기반 플랫폼으로 통합
   (Integration of existing Java enterprise technologies into module-based platforms)
2. 모듈 기반 플랫폼에 맞게 엔터프라이즈 기술을 구현
   (Implementation of enterprise specifications for module-based platforms)
OSGi를 간단하게나마 돌려보고나 시도해보셨다면 많은 자바 기술 모듈 기반으로 구성하기가 쉽지 않다는 점을 알 수 있습니다. (그야 당연하지만..) 이러한 관점에서 Gemini는 새로운 자바 표준을 만드는 것이 아니라, 기존 엔터프라이즈 기술을 모듈 기반으로 구성할 수 있도록 옮기거나(porting) 재구현(re-implementation)하는 걸 목표로 하고 있습니다.

The project is not concerned with creating new enterprise standards, nor with creating a new variety of full-featured enterprise container.

그럼 그 대상이 되는 엔터프라이즈 기술에는 어떤 것들이 있을까?
  • RFC 66 — Web Container
  • RFC 98 — Transactions
  • RFC 122 — Database Access
  • RFC 124 — Blueprint Services
  • RFC 139 — JMX Integration
  • RFC 142 — JNDI Integration
  • RFC 143 — JPA Integration
  • RFC 146 — JCA Connector Integration

현재 많이 사용되는 자바 엔터프라이즈 기술들을 대상으로 하고 있다.

위 표준들은 기술 구현체 자체가 아니라 기술 스펙(specification)이기 때문에, 모듈 기반으로 옮기고자 하는 최초의 시작점은 있어야 한다. 그래서 이번 프로젝트에 참여하는 커미터들의 소스를 기부한다고..

  • Blueprint Service Implementation — SpringSource
  • Web Container Integration code — SpringSource
  • JPA Integration code for EclipseLink — Oracle
  • Implementation of JMX Mbeans and composite data types — Oracle
  • Derby JDBC Service Implementation — Oracle
  • JNDI Service Integration code — Oracle

위 목록에서 볼 수 있듯이, 이번 프로젝트의 커미터는 스프링소스와 오라클이다. 현재 자바 진영의 선두 기업에서 직접 진행하므로 (아직 어떤 방향으로 진행될지는 모르지만) 상당히 기대되는 바다. 커미터로 참여하는 개인들을 봐도 흥미롭고..

진행 방식은 각 기술별로 서브 프로젝트(이클립스 개발 프로세스에서는 "operating projects" 라고 한답니다..)로 진행되며, 이 역시 모듈 기반으로 구성되고 차후에 통합되는 방식입니다.

아직 자세한 내용은 알 수 없지만, 이미 기술적인 노하우를 가지고 있는 상태에서 '모듈화 기반 구성'이라는 뚜렷한 목표를 가지고 출발하는 프로젝트인만큼 OSGi 확산에 어떤 영향을 줄지 기대해보겠습니다.


저작자 표시 비영리
Trackback 1 Comment 2
  1. BlogIcon 박성철 2009/11/25 10:11 address edit & del reply

    웹 프로그램에 osgi를 적용하는 방법이 딱히 떠오르지 않았는데 기대가 되네요. 레이어별로 번들을 만드는 건 왠지 아닌 것 같고...
    그런데 발음이 제미니가 아니라 게미니인 건가요? 전 " onclick="return openLinkInNewWindow(this)" rel="external nofollow">http://ko.wikipedia.org/wiki/%EC%A0%9C%EB%AF%B8%EB%8B%88_%EA%B3%84%ED%9A%8D 이 생각이 나서....

    • BlogIcon 찬욱 2009/12/03 10:56 address edit & del

      어떻게 발음해야 할까요? 게미니도 조금 그렇긴 해요;
      근데 링크가 깨졌어요^^