programing

OSGi는 무엇이며 그 사용의 몇 가지 예는 무엇입니까?

javaba 2021. 1. 14. 23:03
반응형

OSGi는 무엇이며 그 사용의 몇 가지 예는 무엇입니까?


GlassFish 및 Spring과 같은 일반적인 Java EE 컨테이너에 대한 자습서를 읽으면서 OSGi 라는 용어 가 사용되는 것을 막 듣기 시작했지만 OSGi 에 대한 간단하고 직관적이며 이해하기 쉬운 설명을 찾을 수 없었습니다. 저와 같은 기업 초보자도 이해할 수 있다는 것입니다.

누군가가 그러한 더미 증거 설명을 제공 할 수 있습니까? 몇 가지 예제 또는 코드 발췌가 있습니까?

감사!


간단히 말해서 OSGi는 Java 용 동적 모듈 시스템입니다. 모듈을 설치, 제거, 업데이트, 시작 및 중지하는 수단을 정의합니다. 이러한 모듈을 번들이라고하지만 가장 단순한 형태로 실제로는 특수 Manifest가있는 Java jar 파일입니다. Java VM을 중지하거나 다시 시작하지 않고도 모듈을 설치하거나 제거 할 수 있습니다.

OSGi 프레임 워크는 설명 된 라이프 사이클과 번들 간의 종속성을 안전한 방식으로 관리합니다. 번들은 내보내는 Java 패키지와 가져 오는 패키지를 명시해야합니다. 가져 오기 및 내보내기 문은 버전 정보로 주석을 달 수 있으므로 동일한 Java VM에 동일한 패키지의 버전이 둘 이상있을 수도 있습니다.

OSGi Alliance는 OSGi 프레임 워크 및 구성 데이터, 장치 액세스 등을 관리하기위한 많은 관련 서비스를 지정하는 조직입니다.

이것은 매우 기본적인 개요입니다. OSGi는 그 이상입니다. 한 번 봐 제발 https://www.osgi.org/developer/architecture/ (은 OSGi의 아키텍처에 대한 소개) 및 https://www.osgi.org/developer/where-to-start/ (링크가 많이있다 OSGi Alliance에서 권장하는 추가 자료).


약간의 반대표를 희생하여 ;-), 나는 내 말로 대답하고 싶습니다 (내 이해에 대해 수정할 수 있도록).

우리는 응용 프로그램을 모듈 세트로 빌드하고 각 모듈은 기능적으로 자체적으로 응집되고 다른 모듈과 느슨하게 결합됩니다. 이것은 이미 알고있는 많은 이점이 있습니다. 시간이 지남에 따라 모듈화 단위는 함수에서 클래스, 패키지, 배포 단위 (예 : Java의 jar 및 .Net의 어셈블리)로 향상되었습니다. 그러나이 모든 것은 개발 기간에만 해당됩니다. 일단 응용 프로그램 (모듈 집합)이 배포되면 서버는 여전히 하나의 거대한 단일 응용 프로그램으로 간주합니다. 즉, 논리적 경계가 런타임 동안 유지되지 않습니다. OSGi는 여기에 설명다른 이점 과는 별도로 개발 및 런타임 중에 이러한 경계를 명시 합니다.

OSGi를 실제로 시작하는 데 도움이되는이 훌륭한 무료 책을 제안합니다.

Java 플랫폼에서 작업하는 경우 다음 프레젠테이션도 확인하십시오 . OSGi 사양이 Java ™ 기술을 기반으로 한 이유는 무엇입니까?

참조 URL : https://stackoverflow.com/questions/4578850/what-is-osgi-and-what-are-some-examples-of-its-use

반응형