IPTV > 표준 참조구현 배포

IPTV 미들웨어 참조구현 Ver2.0 추가 기능

  • 하드웨어 가속 이용: 그래픽카드가 지원하는 경우 비디오 렌더링 시 하드웨어 가속을 이용합니다.
  • OCAP Storage API 구현 개선: 환경설정에서 지정한 디렉토리를 USB 메모리 장치로 에뮬레이션하여 OCAP Storage API를
    이용하는 응용 작성시 본 참조구현을 이용하여 확인할 수 있습니다.
  • VOD API 구현: RTSP 프로토콜로 VOD 콘텐츠의 트릭플레이를 지원합니다.
  • HTTP를 이용한 어플리케이션 로딩

JAVA 프로파일(ICSP-J) IPTV 미들웨어 RI 구조

                             *1: 비디오 디코딩/플레이는 외부 요소인 VLC에 의해서 동작합니다.
                             *2: Stream Media Control 모듈과 Media Player(VLC) 사이는 UDP로 전송됩니다.

Application Manager

- 실행되는 애플리케이션의 상태 정보 및 실행, 관리를 담당합니다.
- 애플리케이션은 서비스의 일부로 실행될 수도 있고, 독립적으로 실행될 수 도 있습니다.

Security Manager

사용자의 인증, 네트워크 보안, 서비스 애플리케이션의 보안 등 단말기 내의 보안을 담당하는 기능을 가지며, 인터넷으로 애플리 케이션을 다운 받아서 실행되는 경우도 있기 때문에, 서비스 사업자가 보증한 애플리케이션이 아닌 경우에는 서명 확인 등의 절 차가 필요합니다.

Resource Manager

애플리케이션이 단말기의 자원을 사용할 수 있도록 관리하며, 통상 단말의 자원이 매우 부족한 상황이므로 자원의 효율적인 관 리가 매우 중요합니다.

Service/Channel Manager

단말기 내에서 제공되는 서비스에 대한 실행 및 관리를 책임지며, 서비스 관리자가 가장 핵심적인 위치에 있습니다.

Java TV 1.1 (JSR-927)

- IPTV에서 TV 기능을 제공하는 컴포넌트에 대한 API이며, 기본적으로 TV 시청에 필요한 서비스 선택, 미디어 재생, 등 광범위 한 기능을 제공합니다.
- Java TV 1.1은 JMF 1.0을 포함합니다.
- Javax.media.*, javax.tv.graphics, javax.tv.locator, javax.tv.media, javax.tv.net, javax.tv.service.*, javax.tv.util, javax.tv.xlet 패키지로 구성됩니다.

HAVi 1.1 Level2 User Interface

- 애플리케이션 실행에 요구되는 TV 상의 그래픽 표시와 사용자 상호작용에 사용되는 그래픽 컴포넌트에 대한 API를 제공합니다.
- org.havi.ui, org.havi.ui.event 패키지로 구성됩니다.

DAVIC 1.4.1p9

- 애플리케이션이 미디어 컨텐츠에 대한 표현 및 조작을 제공하는 API입니다.
- org.davic 패키지로 구성됩니다.

PBP 1.1 (JSR-217)

단말기 내에 포팅되어 Java 언어로 만들어진 애플리케이션을 실행하기 위한 기본 API 를 제공하고, 이를 실행하는 Java Virtual Machine입니다.

ICSP-J 애플리케이션 빌드 방법

사전 작업

1. Java JDK 설치
2. [자료실]-[기술자료]에 있는 [IPTV MW RI] ICSP-J 애플리케이션 빌드 방법에 첨부되어 있는 icspstub.jar 파일 다운로드

stub 파일표준에서 정의한 플랫폼 API를 빌드한 클래스 라이브러리로, 표준을 준수한 STB에 구현되어 있는 클래스 모음과 동일 합니다. stub파일은 아래와 같은 두 가지 역할을 합니다.
애플리케이션 빌드JDK의 클래스라이브러리에는 MHP, HAVi, OCAP에서 추가로 정의한 클래스를 포함하고 있지 않기 때문에 ICSP-J 애플리케이션을 빌드하기 위해서는 본 stub을 -bootclasspath 옵션에 설정하고 빌드해야 합니다.
미정의된 메서드/클래스
이용 방지
String 클래스의 split() 메서드와 같이 PBP1.1에 포함되지 않은 메서드를 프로그램에 사용하였을 경우 JDK의 클래스라이브러리를 이용해 빌드하면 아무런 오류도 발생하지 않지만, PBP1.1을 기반으로 한 본 stub으로 빌드하면 이러한 오류를 걸러내어 런타임시에 Class(혹은 Method)NotFoundException을 사전에 발견할 수 있습니다.

터미널(CMD ,terminal)에서 빌드

   $javac  -target 1.1 -source 1.3 -encoding 'utf-8' -bootclasspath '첨부된 icspstub.jar' *.java

ant를 이용한 빌드(build.xml)

JAVA 프로파일(ICSP-J) IPTV 미들웨어 RI 기능

이번에 배포하는 Java 기반 IPTV 미들웨어 참조구현은 IPTV 미들웨어 표준에 근거한 IPTV 양방향 서비스를 지원하는 STB/DTV 등과 같은 수신기 시뮬레이터 프로그램입니다.
이를 이용하여, IPTV용 양방향 서비스 콘텐츠를 제작하는 개발자는 IPTV 미들웨어가 탑재된 STB/DTV 없이, 개발단계에서 본인의 PC로 바로 동작 결과를 확인할 수 있습니다.

IPTV 미들웨어 기능

- 섹션 필터링 및 서비스탐색 및 콘텐츠 가이드 정보 수신 기능
- 서비스 선택 및 미디어 재생 기능
- 애플리케이션 수신 및 실행 기능
- 그래픽 및 이벤트 처리 기능
- 각종 서버와 양방향 통신 기능
- Xlet간 통신 기능

서비스탐색 및 콘텐츠 가이드 정보 수신 및 분석 기능

- 섹션 필터링 기능
- 서비스 탐색 정보 파싱 기능
- 콘텐츠 가이드 정보 파싱 기능

서비스 선택 및 미디어 재생 기능

- 서비스 컨텍스트 생성 및 서비스 할당 기능
- JMF를 통한 미디어 재생 제어 기능

DSM-CC를 통한 응용 수신 기능

- DSM-CC 블록으로부터 DSM-CC 모듈 추출 기능
- DSM-CC 모듈로부터 DSM-CC 오브젝트 추출 기능
- 자원 관리 기능
- 자원 서버: 자원 요청 API를 처리
- 자원 클라이언트: 실제 자원을 사용할 모듈
- 자원 프록시: 자원의 접근 정보를 저장하고, 보안 정책을 실행

보안 기능

- 단말이 PRF(Permission Request File)에 따라 애플리케이션의 접근을 제어
- 네트워크을 통해서 다운받은 애플리케이션은 서명을 확인 후 실행
- 디지털 서명이 없는 애플리케이션은 디폴트 허가만 가능
- 인증서를 이용한 디지털 서명 확인

PC 기반 STB 시뮬레이션 기능

- RTP/UDP를 이용한 미디어 수신 기능
- 그래픽 처리 및 Overlay 기능
- HTTP, TCP, UDP를 이용한 양방향 통신 기능

JAVA 프로파일(ICSP-J) IPTV 미들웨어 RI의 패키지별 설명

패키지 명설명
org.davic.mediaapplication이 높은 유연성과 높은 레벨의 추상화를 가지고 실시간 미디어의 재생을 시작하거나 컨트롤할 수 있는 방법을 제공합니다.
org.davic.mpeg.sectionsMPEG-2 private section의 데이터를 접근하기 위한 일반적인 방법을 제공합니다.
org.davic.netLocator 클래스를 통해서 콘텐츠 레퍼런싱을 처리하는 방법을 제공합니다.
org.davic.net.tuninginter-operable application들이 서로 다른 MPEG-2 transport streams 사이를 튜닝하여 서비스를 선택하기 위한 방법을 제공합니다.
org.davic.resources존재하는 resource manager 또는 resource management 기능 인터페이스를 제공합니다.
org.dvb.applicationContext에서 사용 가능한 application들의 리스트에 대한 접근과 이 application들을 launch하는 방법을 제공합니다.
org.dvb.dsmcc방송 스트림에서 전송되는 파일에 대한 확장된 접근을 제공합니다.
org.dvb.event사용자 입력 이벤트에 대한 접근을 제공합니다.
org.dvb.io.ixcXlet간 통신을 위한 기능들을 제공합니다.
org.dvb.io.persistent저장장치에 대한 접근을 제공합니다.
org.dvb.langjava.lang에 미포함 된 핵심 기능을 제공합니다.
org.dvb.mediaJMF에 대한 DVB 특정 확장 기능을 제공합니다.
org.dvb.net일반적인 네트워크 기능을 제공합니다.
org.dvb.ui확장된 그래픽 기능을 제공합니다.
org.dvb.user사용자에 대한 환경 설정 및 접근을 제공합니다.
org.havi.ui그래픽 Component에 대한 정의 및 기능을 제공합니다.
org.havi.ui.event그래픽 Component의 Event에 대한 정의 및 기능을 제공합니다.
org.ocap.media자막(Closed Caption)에 대한 접근을 제공합니다.
org.ocap.netLocator 클래스를 통해서 콘텐츠 레퍼런싱을 처리하는 방법을 제공합니다.
org.ocap.storage저장장치에 대한 접근을 제공합니다.
org.ocap.hardware하드웨어 장치에 대한 접근을 제공합니다.
org.xml.saxJSR-172에 정의한 SAX XML 파서를 제공합니다.

웹 프로파일(ICSP-HTML) IPTV 미들웨어 RI 구조

Browser Engine

렌더링 엔진에 문의하고 조작하기 위한 인터페이스를 제공하며, 가장 핵심 블록으로 웹 기반 미들웨어 기능을 제어하는 역할을 담당합니다.

Rendering Engine

요청한 HTML문서와 CSS를 파싱하여 렌더링 트리를 구성하고, 파싱 결과를 바탕으로 화면을 구성하는 역할을 담당합니다.

Networking

웹서버와의 HTTP 통신을 담당합니다.
WebCore내의 Loader가 이를 이용하여 HTTP GET으로 웹 문서를 가져와서 렌더링하며, 본 M/W RI의 Loader는 HTTP외에 DSM-CC 스트림내의 웹 문서를 로딩하는 기능이 확장되어 있습니다.

UI Backend

윈도우와 기본 위젯을 그리는 역할을 담당합니다.
OS와 직접 통신하며, 상위단에 플랫폼 독립적인 기본 인터페이스를 제공하는 역할을 합니다.

JavaScript 해석기(JavaScript Interpreter)

JavaScript(EcmaScript) 코드를 파싱하고 실행하는 기능을 담당합니다.

Data Storgage

쿠기와 같이 영구적으로 저장이 필요한 데이터를 저장합니다.

웹 프로파일(ICSP-HTML) IPTV 미들웨어 RI 기능

웹기반 IPTV 미들웨어 RI는 Browser Engine으로 WebKit을 이용하여 구현되었으며, WebKit의 모듈별 기능은 다음과 같습니다.

Launcher

Launcher는 WebKit과는 별개의 구성요소로 아래와 같은 역할을 합니다.
- 브라우저 인스턴스 생성 및 관리 기능
- WebView 생성 및 초기화 기능
- WebForm 생성 및 초기화 기능
- 이벤트 처리 기능

Loader

Loader는 HTTP 혹은 DSM-CC로 가져온 문서를 Load 해주는 역할을 수행하고, 기능에 따라 여러 개의Loader로 구분됩니다.

일반적으로 하나의 Web Page 화면은 Frame 단위로 구성이 되며, Web Page를 하나를 위해 구성된 Frame과 화면을 관리하는 WebView로 구성됩니다.
Web Page 하나를 위해서 WebView 하나가 존재하며, WebVeiw는 화면 구성을 위해 가장 메인이 되는 WebFrame 하나가 존재 합니다. Web Page가 <IFrame>과 같은 것으로 Frame이 나눠져 구성되었을 경우 각 Frame들은 메인 WebFrame에 하위로 추가 되며 무한대로 존재하게 됩니다.

DOM

문서 객체 모델(DOM; Document Object Model)은 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 W3C의 공식 표준입니다. Web Engine에서 Page를 로드한 후 HTML문서를파싱하고, 그 결과를 DOM Tree 형태로 만든 뒤, DOM Tree를 이용하여 추후 화면 구성에 맞게 재구성하는 Render Tree를 만들게 됩니다.

o JavaScriptCore
JavaScriptCore는 자바스크립트 해석을 하는 프레임워크입니다. 자바스크립트는 지난 수년 사이에 폭발적으로 성장하면서 대부 분의 웹사이트에서 사용되었으며, 다양한 프로그래밍 언어 및 여러 데이터베이스와의 인터페이스로 생성된 서버 측 프로그램과 긴밀히 통합될 수 있다는 장점이 있습니다.

CSS

CSS(Cascading Style Sheet)는 웹 페이지의 표시 형태를 제어하고, 웹 페이지에서 요소의 위치와 모양을 구체적으로 설정하는 기능을 하며 일반적인 CSS 파싱 과정은 아래 그림과 같습니다.

IPTV 미들웨어 참조구현에 이용된 외부 참조 라이브러리

OCAP RI (HAVi) (https://opencable.dev.java.net/)

License: GPL v2

NanoXml (http://devkix.com/nanoxml.php)

License: zlib/libpng Licence

DJNativeSwing (http://djproject.sourceforge.net/ns/)

License: LGPL

VLC(Video Lan Client (http://www.videolan.org/vlc)

License: GPL v2

WebKit (http://webkit.org)

License: LGPL