2009-07-28 3 views
5

요즘 OSGi는 인기있는 용어입니다. benefits 많은 호출 :OSGi의 손익분 대점

  • 감소 복잡성 버전 관리
  • 재사용
  • 쉬운 배포

(등)

나는 매우 구체적인 사용 사례에 대한 부탁 해요

- 중소 규모 웹 응용 프로그램. OSGi가 가져다주는 이익은 무엇입니까? 실제로 가치가 있습니까?

+0

이것은 주관적이지만 CW 자료는 아닙니다. 나는 최선의 논점을 가지고 대답을 고를 것이다. –

+0

Partly Cloudy의 대답과 일치하여 "복잡성 감소"에 대한 논란이 있습니다. – Thilo

답변

6

나는 OSGi의 팬이라해도 NO으로 위험 할 수 있습니다. 다른 OSGi 번들과 작업하고 있거나 특별한 문제가있는 경우가 아니라면이 험비함 없이는 쉽게 해결할 수 없습니다.

이점은 우아한 클래스 패스 분리 (IMHO)입니다. 동일한 JAR/클래스의 다른 버전이 필요하다면, 실행 중 앱의 특정 부분을 업그레이드하거나 많은 타사 모듈을 결합했기 때문에 OSGi가 훌륭합니다.

쉬운 일은 아니지만 OSGi에서는 쉽게 만들 수 없습니다. 그것은 깨끗하게 만들었지 만, 환경 스택에있는 또 다른 계층을 희생시켜야합니다. 배우고 유지하는 일이 많습니다.

설명서가 특별히 초보자에게 친숙하지는 않습니다.

Eclipse 플러그인을 빌드하는 것은 좋은 방법 중 하나입니다.하지만 잘 알기 전까지는 개발 계획에 빌드하지 않는 것이 좋습니다.

7

나는 항상 "그것이 달려있다"라고 말할 것입니다.

사용자 환경

것은 자랑스럽게 "일을 끝내야"숙련 된 개발자 스스로 생각없이 OSGI 경험 (과 기존 팀을 생각해 보자. 그들이 큰 통증이나 느린 시작을 경험하게 될 것입니다있는 기회가있다 .

많은 (더 당신이 생각하는 것보다) 개발자는 Ant 또는 Maven, 그리고 그들이 만의 제한된 기능을 사용하는 경우 빌드 도구와 같은 빌드 도구에 익숙하지 않은.

만들기 OSGI 번들은 Eclipse, Ant tasks 또는 Maven BND plugin VS로 jar 아카이브에 대한 스크립트 또는 수동으로 작성된 매니 페스트로 수행하는 것이 가장 좋습니다. 당신이 등 Jython, 또는 JPF 또는 SPI와 같은 플러그인 프레임 워크와 같은 동적 언어를 사용할 수있는 동안

작은 응용 프로그램을 작은 응용 프로그램의

는 OSGI 불필요한 복잡성을 소개합니다. 리플렉션과 간단한 사용자 정의 클래스 로더를 직접 사용할 수도 있습니다.

큰 응용 프로그램

큰 응용 프로그램은 그들이 처음부터 작성된 특히, OSGI 혜택을 누릴 수 있습니다. 기존 애플리케이션에 OSGI를 통합하는 IMHO는 모듈러 아키텍처를 제공하는 패치를 도입하는 것과 같습니다.

많은 경험을 통해 많은 응용 프로그램을 다시 작성한 후 프로젝트 초기에 모듈성에 대해 생각하는 것이 좋습니다.

다른 문제

배포는 : 그것은 모든 응용 프로그램에서 동일합니다. Java Web Start 애플리케이션을 배포하는 데 익숙하다면 배포가 중요하지 않습니다. OSGI에 익숙하다면 배포가 걱정되지 않아야합니다.

프로덕션 환경에서 응용 프로그램을 배포 할 때 항상 문제가 발생합니다. 이는 자연스럽지 않습니다.

버전 관리 : 응용 프로그램에서 버전 관리를 제공하는 방법은 여러 가지가 있습니다. 그러나 버전 관리를 "정보"대 도구 (종속성 요구 사항 관리)로만 사용하는 경우 버전 관리가 중요하지 않습니다.

재사용 : 는 재사용을 위해 코드를 작성하는 경향이 OSGI를 사용하지만, 어떤 잘 쓰여진 API 염두에 코드 재사용 설계되었습니다.

Eclipse는 OSGI로 작성된 성공적인 대형 응용 프로그램의 가장 좋은 예입니다. OSGI를 사용하지 않고 모듈화 된 다른 크고 멋진 도구가 있습니다.

많은 모듈 형 프레임 워크 결론

, 그것은 응용 프로그램을 다시 시작하지 않고, 의존성을 처리/정지/제거 시작/실행시 기능을 설치하기는 어렵습니다. 사용자 정의 클래스 로더, 종료 및 시작 후크 등을 가지고 놀 수 있습니다.

OSGI는 작은 비용으로 유연성을 제공합니다.

관련 문제