JavaTV API의 Service 패키지
디지털 방송을 수신하는 셋톱박스의 플랫폼은 다양한 응용프로그램으로 이루어 진다. 하지만 이런 다양한 응용프로그램들을 정삭적으로 동작하기 위해서는 이러한 응용프로그램들을 모두 소화할수 있는 미들웨어가 반드시 필요하게 될 것이다. 하지만 이러한 미들웨어를 구성할 수 있는 언어는 아직 표준화 되어 있지 않다. 이에 JavaTv API 는 자바 플랫폼을 미들웨어로써 사용하여 각각의 독립적인 응용프로그램을 다른 정보에 대한 반영없이 대부분의 IPTV 셋톱박스와 연동할 수 있다는 장점을 가지고 있다. 즉 JavaTV API를 이용한 디지털 TV 셋톱박스는 응용프로그램 개발자에게 JavaTV API에만 충실하게 응용프로그램을 개발하게 할뿐 동작은 미들웨어가 보증하기 때문에 개발자들은 각각의 플랫폼에 대한 신경을 쓰지 않고 자신의 프로그램에서의 부분만을 집중할 수 있게 된다. 때문에 우리는 JavaTV API에 관심을 가져야 하며 앞으로의 JavaTV API가 셋톱박스의 미들웨어를 구성하는 API 가 될것이라 의심치 않아야 한다. 그럼 이러한 미들웨어로서 강점을 가지고 있는 JavaTV API의 특징에 대해 알아보자.
먼저 Java TV API 는 javax.tv 패키지로 구성이 되어 있다. 이러한 패키지들은 서비스 및 서비스 정보를 관리한다. 이는 서비스 정보를 표현하고 응용프로그램이 서비스와 관련된 동작을 할 수 있게 하는 역할을 하는 부분이다. 이들의 패키지는 또 Javax.tv.service, Javax.tv.service.navigation, Javax.tv.service.guide, Javax.tv.service.transport 등 으로 4가지 구성을 가진다.
- Javax.tv.service - 다른 패키지들이 필요로 하는 공통적인 클래스들로 구성
- Javax.tv.service.nevigation - 서비스들을 탐색하는데 사용되는 클래스들로 구성
- Javax.tv.service.guide - 프로그램의 스케쥴, 프로그램 이벤트 등을 표현하여 EPG를 위해 사용되는 클래스들로 구성
- Javax.tv.service.transport - MPEG-2의 전송메카니즘과 관련된 정보를 표현하는 클래스들로 구성
위에서 언급한 4가지의 패키지들은 서비스를 탐색하고 그에 대한 정보를 구성하는데 필요한 것들이었다.
또한 여러 서비스 중에서 특정서비스를 선택하여 표현하게 하는 기능을 제공하는 javax.tv.service.selection 패키지가 있다. 이 패키지에서의 서비스 표현과 환경을 표현하는 클래스는 ServiceContext 이며 이 클래스는 특정 서비스와 연관된 콤포넌트의 표현 제어를 응용프로그램이 할 수 있게 제공한다. ServiceContext 는 Presenting, NotPresenting, Presentation Pending, Destroyed 의 네가지 상태중에 하나에 존재 할 수 있다. 만약 서비스에 대한 호출이 성공적으로 끝나면 ServiceContext 는 Presenting 상태로 이동을 하고, 호출의 이전상태가 Not Presenting 이면 ServiceContext 는 그 상태로 돌아가게 되고, Presentation 의 중단은 동작환경에서 더 이상 진행 할 수 없음을 의미한다. 마지막으로 Destroyed 된 서비스는 제거될 서비스의 후보가 된다.
위에서 설명한 것들은 JavaTV API 에서 구성하고 있는 몇 가지의 패키지들에 대해 소개를 하였고 이러한 패키지들롯 JavaTV API 가 IPTV 에 어떠한 식으로 접근을 하며 구성을 하는지에 대해 조금이나마 이해를 할 수 있었을 것이다. 사실 필자는 아직 JavaTV API 에 대한 지식이 부족하다. 하지만 프로그래밍에 대한 지식의 부족으로 인해 IPTV 를 기획하고 자료를 수집하는데 있어서 얼마나 큰 어려움을 겪는지 느꼈다. 기획자들을 포함하여 프로그래밍과 연관이 없는 그래픽의 작업자들 또한 JavaTV API의 프로그램에 대한 전반적인 지식은 팀프로젝트의 작업효율에 상당한 이익이 될 것이다.
필자가 제시한 패키지 이외에도 CAROSUSEL, MEDIA, GRAPHICS 등의 다양한 패키지들이 제공한다. 하지만 위의 서비스 관련 패키지의 이해가 가장 먼저 이루어지고 나서 다음의 패키지의 대한 공부를 시작하는 것이 좋을 것이라 판단하였고 이에 대한 짦은 글을 마치려 한다.
글쓴이 : 하태웅?
참조
?JavaTV API를 이용한 디지털 TV 셋톱박스 미들웨어의 구현 ( 이세우 ) - pdf 자료