2013-03-22 5 views
-1

OSGI 개념에 약간의 어리석은 의심이 있지만 개념을 더 잘 이해할 수 있도록 명확하게 설명해야합니다. 아무도 OSGI 서비스와 구성 요소의 차이점을 말해 줄 수 있습니까? 내가 아는 것은 서비스가 다른 서비스 나 컴포넌트에 의해 사용될 수있는 자바의 인터페이스 파일과 같다는 것이다. 구성 요소는 서비스의 특정 구현과 같습니다.OSGI의 서비스 및 구성 요소

내가 틀렸거나 어떤 정보를 얻을 수있는 링크를 제안 해주세요.

답변

2

OSGi의 핵심 사양은 OSGi 개념의 핵심 부분 인 서비스 모델을 정의한다. 서비스는 선언 된 유형 (일반적으로 인터페이스)을 구현하는 객체 (인스턴스)입니다. OSGi 프레임 워크는 서비스 제공자와 서비스 이용자 사이의 중개자 인 서비스 계층을 제공합니다.

DS는 DS 런타임 (SCR)에서 관리하는 번들의 클래스 인 서비스 구성 요소의 개념을 도입했습니다. 구성 요소는 SCR에서 읽는 번들의 XML로 설명됩니다. 이러한 구성 요소는 일단 인스턴스화되고 서비스로 선언되면 SCR에 의해 서비스로 등록 될 수 있습니다.

구성 요소는 서비스가 될 수 있지만 서비스가 될 필요는 없으며 서비스를 사용할 수 있습니다.

+0

서비스는 선언 된 유형을 구현하는 객체 (인스턴스)입니다. 아이디어를 얻지 않았다 ?? 설명해주세요. 그것은 내 의구심을 해소하는데 도움이된다 – user2191593

+0

그것은 인터페이스를 구현하는 구현 클래스라는 것을 의미 하는가?이 클래스의 모든 객체는 서비스이다. – user2191593

1

OSGi는 서비스의 개념을 발전시켜 번들이 다른 번들과의 결합을 줄일 수있게했습니다. 느슨한 커플 링을 달성하십시오. '가장 느슨한'연결은 동적 서비스 사용에서 비롯됩니다. 동적 서비스를 사용하면 소비자가 서비스를 등록하기 위해 등록 할 때 서비스를 생성하는 번들이 동적으로 시작됩니다. 동적 서비스 모델은 서비스 등록 및 이벤트 수신, 서비스 트래커 및 최종 선언 서비스를 통해 OSGi에서 몇 가지 진화를 거쳤습니다.

마지막 (선언적 서비스)을 제외하고는 서비스 등록 코드가 번들 Activator에 저장됩니다. Declarative Services를 사용하면 서비스를 제공하는 번들을 구성 요소라고 부르며 프레임 워크에서 이해할 수있는 component.xml 파일에 선언됩니다 (활성 자 필요 없음). Eclipse IDE에서 번들을 마우스 오른쪽 단추로 클릭하고 '구성 요소 정의'를 추가하여 선언적 서비스를 사용할 수 있습니다. 자습서와 기술을 안내 주제에 정말 좋은 책이있다 :

OSGi and Equinox

+0

당신에 따르면 구성 요소는 번들입니까 ?? ? – user2191593

+0

예. Declarative Services를 사용하고 component.xml 파일을 만들 때 번들을 구성 요소로 선언합니다. DS에서 구성 요소는 0 개 이상의 서비스를 내보낼 수 있고 0 개 이상의 서비스를 소비 할 수 있으므로 내보내기 또는 소비자 또는 둘 다인 번들이 될 수 있습니다. – Rich

+0

java 파일에서 scr 구성 요소를 정의했을 때와 같은 의미입니까? 구성 요소 번들과 다른 것입니까? 관계가 있다면 무엇입니까 ??? – user2191593

관련 문제