OSGi Layer에서 최상위에 있는 서비스 Layer는 번들이 서로 동적으로 협동하여 작업할 수 있도록 하는 방법을 제공한다. OSGi의 서비스는 SOA 처럼 구동된다
- Repository에 서비스를 Publish 한다
- 클라이언트는 서비스를 Find 한다
- 서비스가 찾아지면 클라이언트는 Repository와 Bind 된다
- clazz : 해당 서비스 객체의 패키지명 + 인터페이스명, <Interface>.class.getName() 으로 얻어온다
- Service : 인터페이스 구현체, new 로 생성한다
- properties : 서비스 속성, SERVICE_VENDOR (같은 인터페이스 상속시 구분 명칭), SERVICE_RANKING (서비스 호출 우선순위)
- BundleContext.getServiceReference(<interface>.class.getName())으로 호출하여 ServiceReference 객체를 얻는다
- 다음 BundleContext.getService() 인자값으로 얻어도 ServiceReference 객체를 넘기면 실제 서비스 객체를 얻을 수 있다.
* BundleContext API 참조 : http://kickjava.com/src/org/osgi/framework/BundleContext.java.htm
* 참조 샘플 : http://xguru.net/446
'Middleware, Cloud > OSGi' 카테고리의 다른 글
[SpringDM] Dynamic Module 만들기 (0) | 2012.11.10 |
---|---|
[Eclipse Virgo] 사용하기 (0) | 2012.11.03 |
[OSGi] BundleContext에 의한 LifeCycle 관리 (0) | 2012.10.30 |
[OSGi] manifest.mf 파일 설정 (0) | 2012.10.30 |
[OSGi] Felix 설치 사용하기 (0) | 2012.10.29 |