BLOG main image
OSGi Story (31)
Hot Issue (11)
Equinox (9)
Spring-OSGi (0)
J2ME (7)
OSGi-UFK (2)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2007. 11. 1. 21:03

[작성 - 김석우, dolbi / 본 원고는 마이크로소프트웨어 2007년 11월호에 실린 기사입니다]

5. Equinox Server

 

Equinox OSGi는 일반적으로 임베디드 시스템이나 PC 애플리케이션에서 사용되지만, 점차 서버로서의 기능을 확장해 나가고 있다. 대표적으로 http같은 웹서버, JSP 또는 Servlet 컨테이너들이 있으며 점차 그 영역을 확장하여 Application Server로서의 가능성을 보여주고 있다. 많은 애플리케이션 서버들이 Equinox 상에서 구현되고 있으며, 대표적으로 Jetty, Jasper들이 있고, 그 외에도 다앙한 API 패키지로 구현되어 수행된다. 이렇게 처음부터 설계되고 구현된 번들이 아닌, 다른 서드파티에서 구현된 서버들을 API 패키지로 구현할경우에는 별도의 전용 repository가 존재하여 모든 관리를 담당하게 된다. 바로 Orbit 프로젝트가 그것이다. Orbit 프로젝트의 목적은 다양한 번들의 버전 관리를 담당하는 것인데, 일반적으로 다른 서드파티의 API 라이브러리들을 Equinox의 번들화시켜서 관리하는 경우를 뜻한다. 이렇게 별도의 번들 관리가 필요한 것은 원본격이 되는 다른 서드파티에서 API 라이브러리들을 업데이트하게되면 함께 같이 버전에 대한 관리가 필요하기 때문이다.

 

5.1 Equinox Server Architecture


일반적으로 Equinox Server의 기능은 http 서버와 Servlet, JSP를 수행하는 컨테이너 기능이 있으며, 두가지 방법으로 서버를 구동할 수가 있다.


1) Servlet Container
Equinox 연동 : servletbridge를 통하여 Equinox Bundle과 기존의 서블렛 컨테이너간의 연동으로 서블렛 수행


2) Equinox
에 내장된 http Server 구동 : 우선적으로 권장하는 방법이다. Equinox에 최적화된 http service 번들을 활용하는 방법으로 가장 적은 메모리를 사용하여 서비스한다. 우선 Equinox에서는 2개의 서비스 번들을 제공하는데, org.eclipse.equinox.http org.eclipse.equinox.http.jetty 이다.

Equinox.http
Servlet API 2.1까지 지원하지만 안정적이면서 가장 작은 메모리를 사용하는 장점이 있고, Equinox.http.jetty는 다소 많은 메모리를 사용하지만 Servlet API 2.4까지 지원하는 장점이 있다.

Equinox server
에서 JSP, Servlet을 사용하려면 2가지 방법이 있는데...

1) org.eclipse.equinox.http, 2) javax.servlet, 3) org.eclipse.equinox.http.registry  3
개의 번들을 실행하거나

Jetty를 활용하여 1)
org.eclipse.equinox.http.jetty, 2)  org.eclipse.equinox.http.servlet, 3) org.mortbay.jetty, 4) org.apache.commons.logging 5) javax.servlet, 6) org.eclipse.equinox.http.registry 6개의 번들을 로딩하면 된다.

따라서 메모리와 하드웨어 성능이 여유가 있다면 jetty를 이용하면되고 그렇치않다면 일반적으로 http를 이용하여 서버 서비스를 수행하면 된다.

 

5.2 주요 Server-Side Bundles


대부분 HTTP service JSP, Servlet을 구동하기위한 Container 기능을 제공하고 있다.


HTTP service, HTTP registry, Servlet Bridge, HTTP Servlet, HTTP ServletBridge, Servlet API, Servlet JSP API, Jetty, HTTP Jetty
등이 있으며 특별히 ServletBridge 기능을 통하여 기존의 애플리케이션 서버와 인터페이스할 수 있는 확장된 기능을 선보이게 되었다