2014-02-14 1 views
0

같은 ClassLoader로 동일한 이슈의 다른 버전을 격리하는 것과 같은 몇 가지 측면을 의미합니다 .Net은 다른 AppDomains로 어셈블리를 격리 할 수 ​​있습니다.OSGI가 Java에서 AppDomains 부재를 해결합니까?

+1

현재 귀하의 질문은 .Net AppDomains와 OSGi에 대한 지식이 필요합니다. 그 기술의 조합은 드뭅니다. 나는 OSGi에 대해 많이 알고 있지만 .NET에 대해서는 거의 알지 못한다. 그래서 AppDomains의 특정 기능이 Java에서 누락되었다고 설명하면 OSGi가 적합한 지 말할 수있다. –

답변

1

나는 그렇게 생각하지 않는다. OSGi는 응용 프로그램의 다른 부분 사이에서 경계와 종속성을 구조적으로 정의하고 적용하는 방법입니다.

Tomcat과 같은 서블릿 컨테이너와 같이 서로 다른 응용 프로그램이 서로를 잘 모르는 상태로있는 응용 프로그램 컨테이너입니다.

기본적으로 OSGi 기반 응용 프로그램 컨테이너 인 Apache Karaf와 같이 둘 다 수행 할 수있는 솔루션이 있습니다. 이러한 컨테이너에서 모든 응용 프로그램은 고유 한 OSGi 환경을 갖습니다.

+0

잠깐, Karaf는 아직 OSGi 서브 시스템을 구현하지 않습니까? 그러면 어떤 의미에서 Karaf는 핵심 OSGi가 제공하는 것보다 "응용 프로그램"을 추가로 분리합니까? –

+0

Karaf 3.0의 최신 버전 인 Aries는 그렇게 할 수 있다고 생각합니다 (아직 시도하지는 않았습니다). 내 말은 당신이 고립 된 osgi 하위 인스턴스를 배포 할 수 있다는 것입니다. 잘못 입력하면 .NET AppDomains와 유사합니다. –

+0

나는 그렇게 생각하지 않는다. .NET의 App Domains에는 모듈로드 격리뿐 아니라 메모리, CPU 사용 등의 격리도 포함되지 않는다고 생각합니다. JVM의 한계로 인해 OSGi에 이와 같은 내용이 없습니다. –

0

프랭크

@

"기본적으로은 OSGi 기반 응용 프로그램 컨테이너 아파치 Karaf. 모든 응용 프로그램이 자체 OSGi 프레임 환경을 얻는다 그 용기에."

나는 그렇게 생각하지 않는다. Karaf (또는 ServiceMix)에 OSGi 구성 요소를 배포 할 때 특정 응용 프로그램을 지정할 수 없습니다. 예 : 예 : osgi : install componentX.jar Application1

그래서 응용 프로그램 경계가없는 것처럼 보입니다. 동일한 SMX 또는 Karaf 인스턴스 내에 배치 된 모든 OSGi 모듈은 서로를보고 서로의 기능을 가져올 수 있습니다. 이 짜증 ESB가있다 SMX를 들어

, ...

사람이를 확인할 수 있습니까?

또한 일부 OSGi 모듈은 라이브러리이며, 일부는 애플리케이션입니다 (예 : 포트를 수신하여 처리). 이를 확인하시기 바랍니다

나는 모든 일 JVM에서 실행되는 생각 ...

사람은 ...

응용 프로그램 도메인은 다른 것입니다. OSGi는이 개념을 제공하지 않는다. 우리가 그것을 필요로합니까?

+0

경계를 제공하는 Karaf에는 '인스턴스'및 '기능'이라는 개념이 있습니다. AppDomain과 다릅니다. 나는 각각의 인스턴스가 자신의 JVM임을 확신하지 못한다. – atam

관련 문제