JavaTV API Technical Overview
ѱ
Version 1.0
: Sun Microsystems. November 14, 2000
: ̼ 2001-12-27, rainmkr@hanmail.net
Introduction
ڹٸ interactive TV content ϴ ڸ ڹ ÷ Ȯ JavaTV API ϰ ִ. JavaTV API Java programming ̿Ͽ TV ű Set-top box ϴ α Ѵ.
JavaTV API ߿ application ڵ鿡 broadcast network technology application ϱ ؼ ̴. , ø̼ǵ service information databaseκ ⺻ ʿ Ѵ( ̸ Ʈ ). JavaTV API ø̼ ȹԿ ־ ϰ ִ service information protocol ִ abstraction Ѵ. ̰ application ѹ ۼ ٸ Ʈ ȯ濡 ִ Ѵ. JavaTV API ϵ over-wire protocolκ abstraction ǵ Ǿ ִ.
JavaTV API Ϲ ϰ ϱ ø̼ ȯ濡 ̴(??). , API network API ø̼ ȯ濡 ȴ. 쿡, set-top box ٸ Java extention Ǿ ִ. , telphone service ϴ set-top box JavaPhone API Ǿ ̴.
Ʒ receiver Ǿ JavaTV API application environment ְ ִ. αӴ application JavaTV API application environment ۼϰ, ۼ application RTOS ϵ ڼ ˾ä ϰ ϰѴ.

[1] A Typical Television Receiver Implementation
JavaTV API ϴ API ҵ javadoc ǥ APIʹ ٸ form ַ ϰ ִ. ֳϸ JavaTV API ɼ ؼ Ǿ ְ, ּ Ǵ ɰ õ ϵ Ʈ 䱸 ʱ ̴.
Television receiver Ƴα ȣ, ȣ Ǵ ٸ óѴ. ȣ Ϲ , ̺, Ʈ receiver ۵Ǿ . ȣ Ƴα ȣ پ content ִ. ȭ audio-video Բ پ ִ. Television receiver ɰ . JavaTV API ̿ Ϲ receiver ã ִ ɰ ٸ receiver Ѵ.
ٸ پ receiver , receiver ϴ Ʈ connection ũ ִ. Enhanced broadcast receiver, interactive broadcast receivers, multi-network receivers. receiver Ʒ Ǿ ִ ó type ɷ ϰ ִ.
Enhanced Broadcast receiver ȭ , ̹, ؽƮ Բ TV , Ϻκμ ڹپ ϴ α ִ. ̿ receiver local viewer interaction, including input from a remoete control, on-screen graphical elements, multiple aoudio-video stream ߿ , display switching Ѵ. Enhanced broadcast receiver head-end Ǵ κ, broadcast file system data Ѵ. , enhanced broadcast receiver braodcasterο return channel ϸ, head-end Ǵ interaction .
Interactive broadcast receivers head-end Ǵ ִ broadcaster return channel Ѵ. ̿ receiver ڻŷ, video(VOD), ̸, ä ȭ ִ. Interactive broadcast receiver Enhanced broadcast receiver ã ִ ɷ Ѵ.
Multi-Network Receiver broadcast network return channel ̻ ٹ Ѵ. Multi-network receiver Internet capable receiver ȭ Ÿ ٸ ϴ receiver Ѵ. ̿ receiver home telecommunication hub , ͳ پ ִ. Multi-network receiver enhanced broadcast receiver interactive broadcast receiver ã ִ ɷ Ѵ.
JavaTV API television programs Ѵ. ̰ ȯ濡 Ÿ ִ پ content ϴ ϴ ȭ̴. , Video audio ȭ Ϲ TV program ϰų, audio video ۰ ȭ Java Application ϴ enhanced television broadcast ִ. JavaTV API (selectiong service), service information ϴ ͺ̽ , television-specific ̵ ÷̾ , TV ñ׳ Բ ۵Ǵ Ϳ ٿ Ѵ.
Ʈ ڴ electronic program guides(EPGs), program specific application. Stand-alone Application, television-specific application ̳ ۼ ִ. ̿ application Ư¡ Ʒ Ǿ ִ.
1.2.1 Electronic Program Guides
Electronic Program Guides(EPGs) ó ڷ ű ã ִ ͺ Application̴. EPGs Ǵ 濵 ڷ α ̸⸦ ûڿ ϴ ̴. Ϲ, EPG û ÿ ° ä ٲپ ֱ Ѵ. ̿ application interactive performance start-up ð 迡 ߿ϰ ۿϰ ȴ.
1.2.2 Program-Specific Applications
program-specific application Ư Բ audio-video α ߵDZ ȴ. , ûڰ ִ Ӽ Բ ߵ application̳, ̺Ʈ interaction ϴ application ִ. ̿ application ߿ 䱸 ´. , ûڰ ä application ų ־ Ѵ.
1.2.3 Stand-alone Applications
ø̼ Ϲ ڷ α ϵ Ÿ Ѵ. , ° Ʈ ֽǥ(stock ticker) ø̼ ֽİ ũ ǥѴ. ڰ ٸ äη ٲپ ø̼ ũ ־ ־ Ѵ.
1.2.4 Advertisements
Advertisement ø̼ audio/video ø̴̼. ̷ ø̼ Ϲ ð ȿ ǰ, ª ð Ѵ. ø̼ ٿε ð ۵DZ ̸ ̷ Ѵ. ø̼ Ϲ ð , ǰ .
1.3 Features of the Java TV API
JavaTV API interactive television ű ϴ Ÿ ٸ Ʈ ϴ ڵ ǥ ϴ interface̴. پ ø̼ JavaTV API ϴ ֿ Ʒ Ǿ ִ.
ڹ TV API Ӹ ƴ϶ ȭ ڷ α Ʈ ǥѴ. Service information API ϴµ (SI) Ϳ Ͽ Ѵ.
SI ̽ ð ø̼ ֵ Ѵ. SI ̽ SI manager ؼ ̷ . ø̼ ̿ ִ , SI ڴ ִ ߰ϱ Ͽ ֵ Ѵ. ǵ SI ̽ Ž, EPGs, MPEG-2 Ѵ. Ͽ , 3 (" ") ϶.
Service selection API ǥ ϴµ Ǿ . Selecting Ŀ Ʈ Ǿ, ø̼ Ϻκ̶ ø̼ ۵ Ѵ. ϸ 4
JavaTV API ű broadcast pipeline ǥ JMF Ѵ. JMF (Data source) Ʈ (handle) Ѵ. Java TV API ϰ ´. Tunner demultiplexer-conditional access(C/A) κнý (source of data), ݸ, decoder-framebuffer-audio content handler ̴. ϸ 5
Ƴα Ʈ multiplex Ǿ ִ. ̷ Ʈ κ ø̼ Ұϴ(, audio/video stream). , multiplex ø̼ǿ Ʈ ִ. Broadcast data API broadcast file system, Ʈ , encapsulated IP data Ѵ. ϸ 6
ø̼ ʱȭ ǰ, پ ȭ ϰ, ᱹ ıǴ Ϸ ܰ ø̼ ֱ(life cycle) ˷ . Java TV API ۼű ۵Ǵ ø̼ ֱ⸦ Ѵ.
̿ ø̼ Xlet ø̶̼ Ҹ. Xlet ű ؼ ġ , ٿε ְ, TVű Ʈ ȯ Ϻκ ø̼ Manager ȴ. ø̼ manager Xlet ֱ ºȭ Ѵ. ű Xlet ø̼ context Ǿ ʱȭǴ ȿ Xlet ȯ濡 ֵ ϴ ű ø̼ manager ´. ϸ 7
Environment
Ʒ JavaTV ø̼ ϴ ϵ, Ʈ ȯ濡 Ǵ ¸ Ͽ ǥϰ ִ.
ڷ ű 鿡 ̵ ǵ ʴ´. , Java TV API Java ø̼ ȯ濡 ϱ ű κ ܼϰ ϰ ִ.2.1 Hardware Environment
κ ű⸦ ҵ Ѵ. ̰ Java TV API Ϻκ ǿ context ϰ ϱ ǵǾ ִ. κ API ϵ Ư 䱸 ϰ ʴ.
TV ű video, audio, data broadcast stream Ͽ , broadcast media data pipeline óѴ. ű protocol̶ Ҹ Ư media data , ݿ ƯǾ ִ پ decoder ̿ decodingѴ.
TV űⰡ õ ǻ ġ Ǵ űⰡ broadcast media pipeline ü ϰ ִ ̴. Broadcast media pipeline Media 帧 Ʃ, demultiplexer, conditional access module, media decoder , rendering subsystem, Ϻνý Ǿ . Java TV API Ϻ ý ǥ 䱸 ʴ´. , ű C/A subsystem̳ Ʃʸ ʾƵ ȴ. JavaTV API ø̼ αӰ ϵ ȯ ʾƵ Ǵ ȭ Ѵ. , Java TV API űⰡ broadcast pipeline ΰ Ѵ.
Ʒ pipeline RF signal ű ϴ ܰ躰 ְ ִ.( 2) ( Ư pipeline ְ ִ. ٸ pipeline ȯ ִ.)

2.2 Software Environment
ű s/w ȯ ڹ ø̼ ȯ, Java TV API, supporting ø̼ǵ ̷ . , s/w ȯ ǽð ü(RTOS) Ѵ.
3 , s/wȯ ְ Application layer̸, ø̼ Ʒ Java Technololy Layerκ Java TV API Java package ִ. ڹ ø̼ ӽ ȿ ȴ. Java TV API ű h/w Ҽ ִ Ʒ ܰ librarie鿡 ɵ ȭ ϰ ִ.
RTOS Java technology layer ʿ system level Ѵ. ߰, RTOS , õ device-specific libraries ġ ̹ ű⸦ Ѵ.

2.3 Application Environment
ø̼ broadcast receiver ۵ǵ Ǿ ְ, ̰ JVM ̹ ִ Ӹ ƴ϶, ø̼ ȯ API ̴ٰ. JavaTV API ø̼ ȯ VM Ǵ broadcast receiver ֿ ϰ ִ.
Java ø̼ ȯ API "package" Ҹ Ǿ ִ. PersonalJava ø̼ ȯ television recevieró ѵ ġ Ǿ. PersonalJava ø̼ ȯ package ϰ ִ.
Java.ioŰ java.io.InputStream, java.io.OutputStream, subclass ̿Ͽ data input/output Ѵ.
java.net Ű java.net.URL, java.net.InetAddress, java.net.Socket Ŭ ̿Ͽ Ʈ ϵ Ѵ.
java.awtŰ java.awt.Canvas, java.awt.Font, java.awt.Scrollbar Ŭ ̿Ͽ ȿ̳ ø̼ǿ Ѵ.
java.lnag.Thread, java.util.EventObject Ŭ ý۷ ø̼ǿ Ѵ. ø̼ ȯ java.util.Hashtable, java.util.Calendar utility Ŭ ϰ ִ.
2.3.1 storage and Input/Output
java.io Ű stream-based I/O, file-based I/O, پ ۸ ɼ ȭ Ѵ. Flash ROM system, local hard drivers, server-based remote storage system java.io Ű ̿Ͽ ִ. ȯ濡 ű system error stream Ѵ. ̿ stream java.io Ѵ.
߰, broadcast data stream file system java.io ʿ Ѵ. broadcast data API section ϶.
2.3.2 Return Channel and Non-broadcast Network Acces
java.net Ű Ʈ ٰ HTTP connection, URL Ľ ȯ Ѵ. java.io Ű Բ Ű IP return channel ٰ Ǵ MPEC stream encapsulate IP data 䱸 Ѵ.
2.3.3 security
ø̼ ȯ Ʈ operation ǥ organization ڽŸ å ֵ Ѵ. java TV API Ư å̳ ʴ´. , JDK1.2 ȱ Ͽ ø̼ ȯ濡 Ǵ å ǥѴ.
̿ Ʈ ۷ͳ standard organization ̷ ȭ ʿ ϴ 鸸 ϴµ ִ ̴. ̰ braodcaster Ŀ ÷ Ű ϰ Ѵ. 忡 ִ κ interactive television ߿ API ϴ ϰ ִ.
C/A subsystem downstream video Ǵ datat stream descramble̳ ص Ǵ Ű Ʈ Ѵ. Java TV API C/A key ص ˰ ȹ Ŀ ʴ´. ʹ پ ý۰, API ϰ, C/A architecture ϴ ǥ ̽ Ѵ.
High-level C/A subsystem API ϴ ͺٴ, Java TV API service selection API SI databases C/A subsystem interaction ǥ Ѵ. ڼ ؼ, 3 "Service and Service Information" 4 "Service Selection" .
ͳ ڸϰ ȣ Secure Communication ſ ߿ϴ. bi-directional(??) TCP/IP ̷ SSL(Secure sockets layer) TLS(Transport Level Security) ̿Ѵ. Java Secure Socket Extention(JSSE) SSL TLS ڹ ǥ Ȯ̴. JSSE ø̼ java.io java.net Ǵ secure communication ϰ ϱ javax.net java.net.ssl Ű Ѵ.
Java VM ڵ secure execution ϵ Ǿ ִ. Bytecode VM instruction ȿ Ѵ. Ŭ ε ī ڵ尡 ӽſ εǴ ȣϰ, ڵ ҽ ȿ Ѵ. ڹ μ ͳ ÿ÷ο츦 ϴ ݰ ڵ masquerading ϴ ߴ.
2.3.4 Abstract Window Toolkit
Java Abstract Window(AWT) UI Ʈ ⺻ Ѵ. AWT native widget Ŀٶ Ѵ. Vendor, consortia, standard ű ִ. ø̼ Ư look and feelϴ Ư AWT ִ.
Service and Service Information
Service ű ǥ content ̴. Java TV API ϳ ȴ. Service ǥ õ ִ. ڷ ûڴ ̿ Ȥ"television channel"̶ ĪѴ. ó advanced television receiver Service ܼ single audio/video stream ƴ϶, data multiple audio/video ̴.
Service SI database Ǿ service information(SI) Ư¡ ´. SI MPEG-2 transport stream layout audio/video/data stream content Ѵ.
Java TV API SI elements ϱ Locator object Ѵ. ־ locator Ʈ object ǥ ְ, Ʈ locator mutiple mapping ´. Java TV API ֺȲ ϰ, Ʈ locator ϴµ Ǵ method Ѵ.
SI پ ó ǰ ǥȭ Ǿ. , DVB-SI پ , ̺, ýۿ ȴ. ATSC A56ǥ ̺ ο Ǹ, ο ATSC PSIP(A65) Ŀ ̺ DTV Ǿ . ۿ ʹ پ ݵ ִ. JavaTV API SI protocol ȭ Ѵ. , Java TV ø̼ ű Ǵ SI protocol ˾ ʿ䰡 . , ø̼ DVB-based, SCTE-based, ATSC-based sytem پ ȯ濡 ϱ Ư ڵ带 ʿġ ʴ´.
3.1 Service and Service Information Definitions
3.2 SI Packages
SI database ü application 䱸ϴ پ SI view Ѵ. view Java TV SI APIȿ ִ Ű ǥȴ. SI API Ű Service, Navigation, Guide, Transport̴.
Service Ű SI database ϴ ⺻ Ʈ ϰ, Service, SIElement interface ٸ SI package Ŭ Ѵ.
Navigation Ű ϴ Žϴµ Ǵ Ŭ Ѵ.(DVB Service, ATSC Vitual Channel̰ Ҹ)
Guide Ű α , α ̺Ʈ, α ϴ eletronic program guide(EPGs) Ǵ Ŭ Ѵ.
Transport Ű MPEG-2 ī ǥѴ.
4 SI API Ű ϰ ִ. ȭǥ Ű Ÿ.

κ TV ű SI data ij . ű SI data Ϻκ ijѴ. ,θ ʿ䰡 , ű transport stream Ľ ̴.
ֳϸ transport stream ð ɸ , SI API ij Ѵ.
SI API ߰ ϴ SIElement Ȯ ؼ ̷ APIȮ Ŀ Ѵ.
3.2.1 Service Package
service Ű ٸ SI package Ư¡ Ѵ.
κ SI ҵ Ŭ ̱ ٴ interface̱ , ø̼ Ư ̽ implementsϴ object νϽȭϴ Ѵ.
ø̼ broadcast SI Ұ ȭ ǰ پ ü ϵ ִ. SIChangeListener Object SIChangeEvent object ǥ ڹ ̺Ʈ Ѵ. ȭ ϴ ü .
ServiceŰ Ŀ Ѵ. SIRequestor, SiRequest interface ȴ. ȣڴ ѹ û Ͱ 밡ϴٴ ֱٿ callback ϱ SIRequestor Ѵ.(??)
SIRequestor boject û Ǵ ǥø Ѵ. SIRequest ü ȣڿ ̻ ʿ䰡 û Ҹ ϱ ȴ.
3.2.2 navigation Package
navigation Ű Ѵ :
ֿ Ž ü ǥȴ. SI manager SI database ⺻ Ʈ ȴ. ̰ serviceFilter ü ǥǴ ñؿ ServiceList Ҹ Service ü . Collection äγѹ, ä̸ Ҽ ְ, Service object ŽѴ. ⺻ Ŭ ServiceFilter ű install service ǥϴ ⺻ collection ִ.
Service object ڽ Ž ʿ ּ (locator, ä̸ ȣ ) ִ. õ ߰ ServiceDetail ü ԵǾ ִ. ServiceDetail ü (C/A), Ŀ, ŵ ð õ Ѵ.
Channel component Ʈ Service ü Ǿִ. ̰ Ư 밡 ϴٸ Ư ProgramEvent͵ ɼ ִ. ProgramEvent ü α ϴ Service object component Ѵ.
3.2.3 Guid Package
guid Ű EPGS ϴ Ѵ. Ű EPGs õ ΰ Ʈ Ѵ : ä Ǵ program event õ äο α . ProgramSchedule ü Ϲ Playǰ ִ α, ٷ program, ̷ Ȯ ð ٸ ̿ α ˻ϴµ ִ. ProgramEvnet ü ̰ ̸, ۽ð, ð, , , Ÿ õ 䱸 ִ.
(18̻ ûɰ ) õ MPAA rating, FCC TV rating, DVB age-based rating, broadcast-specific rating (, ̳ ) Ǿ . Ѵ; ProgramEvnet ü Ǵ ̵ ϳ labelǾ .
3.2.4 Transport Package
transport Ű SI describe content ϴ MPEG-2 transport ü Ѵ. SI manager TransportStreamCollection ȮǾ MPEG case MPEG-2 multiplex ǥϱ Transport ü Ѵ. Ϲ Transport interface Internet Protocol(IP) ٸ Ŀ ϱ ȮǾ ִ.
Service Selection
ѹ service ߰ߵǰ , service Selection API application ܼϰ, ǥ ֵ ش. Service selection API Ʃ , service information, media playback, broadcast file transport, application manager ȣϴ ϳ յȴ. Ư, ̰ Ʈ service Ѵ.
, ø̼ ǥϴµ ־, audio component, video component Ǵ subtitle component ؼ ʿ䰡 . Դٰ, ø̼ ø̼ǰ , Ǵ ̷ ø̼ Ǵ ʿ䰡 .
4.1 sercive Selection Definitions
4.2 Service Selection API Overview
service selection API ǥ ϴ Ŀ Բ ø̼ ϱ ̴. ǥǰ ִ ȯ ǥϴ Ŭ ServiceContext Ŭ̴. ű ̵ ϴ Ŭ ü д. ServiceContext ̰Ͱ ڵ ϵ, , Ʃ ǥ̴. ServiceContext Ư Ʈ ǥ ø̼ ϰ ش. SreviceContext select() service context ǥϷ õ ȴ. selection ̰ Ϸ event-listner Ŀ ȴ. д select() ȣ ñ ȴٸ exception ǰ, Ŀ ȴٸ event ȴ. ѹ service context ǥϸ, Ʈ locator پ õǼ Եȴ.
ServiceContext object ǥ , getServiceContentHandler() پ Ʈ ǥϰ ִ
̳ players reference Ѵ. , , clock ϴ subtitle Ʈ ǽð ̵ single JMF player ϵȴ.4.3 Service Context State Model
ServiceContext װ ߿ ϳ ִ
? Presenting, NotPresenting, Presentation Pending, Destryed. ʱ´ Presenting ƴϴ. ¿(Destryed ¸ ϰ) select()ҵ ȣ ִ. Exception ʾҴٴ Ͽ ServiceContext Presentation Pending· . trainsaction ̺Ʈ ʴ´.select() ȣ ٸ, NormalContentEvent Ȥ AltenativeContentEvent ǰ ServiceContext Presenting· ̵Ѵ. service selection ϸ, SelectionFailedEvent ȴ. select ȣ ° Not Presenting̸, ServiceContext · ư ǰ, PresentationTerminatedEvent ȴ. selectȣ ° Presenting̸, ServiceContext NormalContentEvent Ǵ AlternativeCContentEvent · ư õϰ ȴ. Ұϴٸ, ServiceContext PresentationTerminatedEvent Ѵ.
Not Presenting ´ PresentationTerminatedEvent serviceǥ ȴ. service presentation ߴ application stop()ҵ ȣ ʱȭɼ ְų ȯ濡 ̻ ϰ Ǵ ȭ ֱ ̴.
Destryed´ destry() ȣ ȴ. ѹ ̻¿ Ǹ ServiceContext ejdltkd ε . destroyed ServiceContext garbage collection ĺ ȴ.

TABLE 1 descriptions of the Service Context States
|
̸ |
|
|
Not Presengting |
ServiceContext ʱȭ . ¿ ǥ ʴ´. ServiceContext stop尡 ȣǰų ǥǴ ̻ ǥ ʴ´ٸ · ´. |
|
Presentation Pending |
ServiceContext select尡 ȣ Ŀ ƹ Exception · ´. ¿ ǥǰ ־ٸ, ¿ ؼ ǥȴ. selection operation , ServiceContext ¸ · õѴ. |
|
Presenting |
, service selection ̷ ٸ, ServiceContext · ´. ¿ normal content Ǵ alternative content ǥȴ. |
|
Destryed |
Destroy尡 ȣ , ServiceContext · ´. ¿ ǥ ʴ´. ϴ ̻¿ , ServiceContext ̻ . |
JMF and the Braodcast Pipeline
Java TV API breadcast media pipeline ϱ Java Media Framework(JMF)1.0 API ̿Ѵ. JMF API APIƮ ۸ī, , media content type time-based mdia display framework Ƿ Java TV API Ѵ.
JMF time-based media data MediaHandler Ȯϴ javax.media.Player Ѵ. Player ü time-based media streamd rendering ڿȹ ʿ ӽݏ encapsulateѴ. Playerü پ rendering facilities(, , ȭ) Ѵ. ħ, / Ʈ Player 쿡 stream video κ ϴ GUI component ü Playerκ Ե ִ. ̰ ϰ video ġ ǥ ̸ Ѵ.
ڼ JMF JMF1.0 specification .
5.1 JMF Controls
JMF Control ð Plyaerκ ԵǴ ü̴. javax.media.Control interface implementsϴ Object Player ϴ media Ư¡ ϴ Interface ϳ̻ implementsϰ ̴. , Player Player audio ϰ ִ javax.media.GainControl interface ϴ Object Ѵ.
JMF1.0 specification ϰ ִ control ߰, Java TV API javax.tv.media Ű ϰ ִ control Ѵ.
|
Interface |
Function |
|
Javax.tv.media.MediaSelectControl |
Media |
|
Javax.tv.media.AWTVideoSizeControl |
Video size and position |
JavaTV API Ϻκ ǵǰ ִ Control Ʈ Java TV implementation ϰ ɰ, Player control ؾ ϴ ƴϴ. Player instance Player getControl(String forName)带 ̿ؼ Ư control Ѵٸ application üũҼ ִ. output Null̶, forName control ʴ ̴. control Player instance ϱ ؼ getControls()带 Ѵ. implementation Ѵٸ, Ư control ڸ Ͽ Control object 迭 Ͽ ش.
߰ DAVIC 1.4(Digital Audio-Video Council)specification Java TV API ϸ JMF Control object Ѵ. ̵ control Table3 Ǿִ.
|
DAVIC Control |
Function |
|
Org.davic.media.MediaTimeEventContrl |
Time based events |
|
Org.davic.media.LanguageControl |
Base class for language selection |
|
Org.davic.media.SubtitingLanguageControl |
Subtitle language selection |
|
Org.davic.media.MediaTimePositionControl |
Position |
|
Org.davic.media.FreezeControl |
Freeze frame |
|
Org.davic.AudioLanguageControl |
Audio language selection |
5.2 JMF Synchronization
JMF media ǥ ȭ master ϴ clock media ȭ specification Ѵ. ȭ ⺻ JMF document Ǿ ִ. JMF Player media-time ϱ 带 ϴ Colck classκ ´. Clock time-base Ҹ object ϴ 带 Ѵ. time-base media-time time-base 踦 ϱ Ÿ Ķ ƴ϶ media-time time-base Ư ȭ Ʈ 带 Clock ȭ ǥѴ.
Java TV API DAVIC ǵ Ư media-time ̹Ʈ ϴ ο Ŀ Ѵ. ̺Ʈ ִ Player MediaTimeEnetListener Ǵ MediaTimeEvnetControl ̽ Ѵ. MediaTimeEvent media-time MediaTimeEventListener ȴ.
5.3 Player Architecture and the Broadcast Pipeline
JMF javax.media.PlayerŬ ü Բ media playback Ѵ. ̰ Ǵ еǴ component ִ: protocol hanler media handler. Player media handler ̴. protocol handler õ(source of data)̴ : media handler data Һ̴. protocol ȭǾ ְ, Ǵ ī Ϻ ̴. , IP ῡ Ǵ HTTP Ͱ Ʃʷκ Ǵ MPEG-2 transport ؼ δٸ protocol 䱸ȴ. JMF javax.media.protocol.DataSource protocol handler ̵Ǵ ȭ Ŭ ϰ ִ. JMF content handler javax.media.MediaHandler interface ϰ ִ. javax.media.Player MediaHandler extendsϰ ִ.
κ JMF ο media stream render ɶ decoding pipeline ȴٰ ϰ ִ. ũž ȯ濡 Ÿ ǥ̴. Ϲ network connection media strema 䱸Ѵ. connection е pipeline 䱸 , source ȥ 䱸Ѵ.
ȯ濡 ʴ. broadcast network ̽ multiplex multiplex Ҽ ִ. ̿ tuner(ù° multiplex) demux(ι° multiplex) Ѵ. , broadcast network ̽ Ʃ(primary multiplex selection) stream selection(ι° multiplex section) ȴ( 6 ÿ). broadcast ؼ pipeline : ° multiplex audio/video decoder ȴ. , ä ٲٷ network interface Ʃװ stream selection parameter ɸ ʿ, ο pipeline ڿ(tuner, demux, codec, screen) ȹ ʿġ ʴ´.

JMF ̽ pipeline Ѵ. Playerü pipelineü ǥϰ, Ʈũ ǥϴ DataSource ǥѴ. broadcast selection ī ϱ ؼ simple ߰ ʿϴ. multiplex ϳ ġ( Ʃû ؼ ο player ȴٸ Ͼ) pipeline 䱸 ϱ ٴ, demux ۿ ִ selection interface ȴ. ī javax.tv.media.MediaSelectControl ã ִ. ̰ content selection de-selection JMF API̴.
Broadcast Data APIs
Broadcast data Java TV API television broadcast signal ۵ Ѵ. ̵ API ۵ Ѵ.
Java TV API java.ioŰ ǵ ī ̿Ͽ broadcast file 丮 Ѵ.
Java TV API java.netŰ datagram ī ̿Ͽ broadcast stream ۵ unicast/multicast IP datagram Ѵ.
JavaTV API JMF Űjavax.media.protocol ̿Ͽ broadcastκ Ϲ streaming data ϴ.
6.1 Broadcast Data API Definitions
6.2 Braodcast File Systems
Java TV API java.ioŰ ǵ ī ̿Ͽ broadcast file 丮 Ѵ. ̷ data Ϲ "carousel"ȿ ۵Ǿ µ װ ý content ֱ ۵Ǿ ű ϱ ؼ ̴. Java TV API broadcast carousel Ϲ disk file systemó Ǿִ. κ Ư carousel interaction protocol applicatioṉ ٴ Java TV API implementation óȴ.
Java TV API broadcast file system protocol Ҽ ְ high level̴. , ̰ ϴ DSM-CC object carousel protocol DSM-CC data carousel protocol, ΰ protocol ȴ. ̰ Ʒ ڼ Ǿ ִ.
6.2.1 DSM-CC Object Carousels
DSM-CC object carousel protocol Ϲ broadcast file system ̴. ̰ carousel data ϴµ object Ѵ.
java.io.File class ̵ ü ǥѴ. Java TV API class javax.tv.carousel.CarouselFile object carousel ϰ, ߰ϱ java.io.File ӹ´ :
application CarouselFile objectκ б java.ioŰ(, FileInputStream, FileReader, RandomAccesFile) Ŭ Ϲ Է Ѵ.
6.2.1.1 Object Carousel Example Usage
1.ֻ CarouselFile Ѵ.
CarouselFile serviceGateway = new CarouselFile(locator);
2. ֻ object Ѵ.
String files[] = serviceGateway.list();
3. object
CarouselFile myfile = new CarouselFile(serviceGatewqy, files[0]);
4. file input object
FileInputStream fis = new FileInputStream(myFile);
5. Ϸκ б
byte data = fis.read();
6. ݱ
fis.close();
ServiceGateway CarouselFile instantiated , local file system subtreeμ carousel namespace μ ű local file system carousel "mounts"Ѵ. local file system mount point ġ ǰų ڷ ǥ ü . carousel mount Ŀ ø̼ CarouselFile.getCanonicalPath() 带 ؼ local file system carousel ġ ִ.
carousel local file system mount Ŀ, ø̼ CarouselFile object java.io.File object ̿ؼ DSM::Directory DSM::File type object ִ. CarouselFileŬ java.io.File ã Ư εƯ¡ ´.
FileInpustStream, FileReader, RandomAccessFile file input Ŭ û data carouselκ load , IOException instance throwѴ. carousel ̻ ٸ, ű ø̼ ؼ ε ͷκ а ̴.
6.2.1.2 Object Carousel Management
ø̼ object carousel ٸ file system Ѵٰ ص, ű ݵ carousel ȣۿؾ Ѵ. interaction ű κ ٸ űԷ ϰ ø̼ǿ ϵ ϰ־ Ѵ. ۵ Java TV API DSM-CC Object carousel Ǵ ̴.
CarouselFile DSM::ServiceGateway object instantiation ű :
1. Ǵ carousel service domain ÷Ѵ.
2. local file system carousel file hierarchy mountϰ,
3. DSM::ServiceGateway ü contents εѴ.
DSM::Directory object CarouselFile instaintiatϴµ־, ű DSM::Directory object contents εѴ. CarouselFile.instDirectoryCotents() 丮 ȣ CarouselFile Ǵ DSM::ServiceGateway Ǵ DSM::Directory contents ε ߴܵȴ.
Դٰ, DSM::File object ϰ ִ CarouselFile instantiating DSM::File object contents εѴ. DSM::File object ǥϰ ִ CarouselFile object java.io.FileInpustStream, java.io.FileReader, Ǵ java.io.RandomAccessFile object read operation DSM::File object ġǴ contents ε ߴܵȴ.
single DSM::File object ġǴ java.io.FileInputStream, java.io.FileReader java.io.RandomAccessFile instance close operation DSM::File object contents unloadѴ.
single DSM::Directory object ϴ CarouselFile νϽ DSM::Directory object contents unload Ѵ. carousel ִ ü ϰ ִ CarouselFile νϽ finalizeǰ carousel ִ DSM::File object ϰ ִ java.io.FileInpustStream, java.io.FileReader, java.io.RandmAccessFile closeǰ , ű :
1. DSM::ServiceGateway object Unloadϰ
2. local file systemκ carousel unmountϰ
6.2.2 DSM-CC Data Carousels
DSM-CC data carousel protocol single-directory file system ű Ѵ. data carousel protocl Ư carousel ִ data module, carousel module contents ˸ DownLoadInfoIndication message Ѵ. ڷ űⰡ carousel module string-base naming ϴ broadcast ǥ ٸ CarouselFile instance object carousel DSM::File object data carousel module ϰ дµ ִ. Ư,
6.2.3 Reducing the Effects of Carousel Latency
DSM-CC object carousel Ǵ data carousel disk-based file system ó ð ִ. ̷ ð å , multiple carousel-based file ϴ application ʿ ε忡 ־ delay ϰ ɰ̴. ̷ ϱ ؼ, Java TV API ϴ ø̼ ð ũ ִ.
6.3 IP Datagrams
Java TV API java.net Ű Ϲ datagram Ŀ ̿Ͽ bradcast stream Ǵ IP datagrams Ѵ. ø̼ java.net.DatagramSocketŬ ̿Ͽ unicast IP datagram Ѵ. Application java.net.MulticastSocketŬ ̿Ͽ multicast IP datagram Ѵ.
Multicast IP datagram ϰ ϱ ؼ Java Tv API encapsuate IP datagrames ϴ service component local unique IP ּҸ Ҵؾ Ѵ. ̿ address 缳 Ʈ DZ IPּ(ڼ RFC 1918 ) Ʈκ ȴ. ڷ ø̼ ־ service component Ҵ local IP address javax.tv.net.InterfaceMap ̿Ͽ Ѵ. ø̼ IP address java.net.MulticastSocket̳ java.net.DatagreamSocket νϽ multicast datagramǷκ network interface Īϴµ Ѵ.
6.4 Streaming Data
Java TV API JMFŰjavax.media.protocol ̿Ͽ television broadcast Ϲ streaming data Ѵ. streaming data javax.tv.media.protocol.PushSourceStream2̽ ̿Ͽ Ե ִ.
Java Tv API ø̼ Ϲ javax.tv.locator.Locator Object Ͽ data service component Ѵ. Locator.toExternalForm()带 ؼ, ø̼ Locator object javax.media.MediaLocator object Ǿ string ȯŲ. MediaLocator object javax.media.Managerκ javax.media.DataSource object ϴµ ȴ. , DataSource object ϳ ̻ PushSourceStream2 object ϴµ ȴ.
PushSourceStream2 JMF version1.0 javax.media.protocol.PushSourceStream ο read Ŀ Բ ȮŲ interface̴. PushSourceStream2.readStream() data payload ٰ ս ˸ exception throws Ѵ. Java TV API PushSourceSteam2 ؼ Ե ۸̳, 밡ɼ ʴ´.
Application Lifecycle
Java TV API Xlet application lifecycle̶ Ҹ application model Ѵ. ̿ lifecycle model ϴ Java application Xlet̶ Ҹ . Xlet application lifecycle applicationȯ ӽű ȣȯȴ.
Xlet application lifecycle model Xlet ̰ ȯ ȭ(protocol) Ѵ:
ǵȰ͵ Xlet application lifecycle model Ǿ:
Xlet application lifecycle application manager Xlet Ʋ ִ addressѴ. Xlet ִ Applicatin manager Xlet ű ִ ̳ ڿ ٸ ڿ ʴ´. Application manager ϰ Java , ƴ ִ.
Application manager ڼ Java TV API , Xlet application lifecycle model Ģ ؼϴ application manager 䱸Ѵ:
Application manager Xlet ڷ ű entity̴. , application manager Xlet destroy ־ Ѵ.
Application manager Xlet ¸ ȣؾ å ִ. , Xlet ڽ ¸ ٲ ־, ݵ ̿ ȭ application manager ȣؾ Ѵ.
Application manager ñ Xlet ȭ ϱ ؼ ̴.
Xlet applicatio lifecycle API Ư¡ Xlet ڽ ¸ ٲ ִٴ ̴. , application manager ݵ ȭ Ƽ Xlet ¸ ־ Ѵ.
Xlet lifecycle .
Table 4 Xlet States
|
̸ |
|
|
Loaded |
Xlet εǰ ʱȭ . ´ new ̿ؼ ȴ. Xlet ƱԸƮ constructor ȣϰ Exception ϵ . Xlet Ϲ ܰ迡 Ǵ ʱȭ ʴ´. Exception ϸ, Xlet Destroyed· , . Note; ´ Xlet instance ѹ ִ. |
|
Paused |
Xlet ʱȭǰ . ´ ڿ ϰų . ´ ȭ ȴ: Loaded·κ Xlet.init()尡 Ǵ Active ·κ Xlet.pauseXlet() 尡 Ǵ Active ·κ XletContext.notifyPaused()尡 ϱ |
|
Active |
Xlet Ϲ ϰ , ϴ . ´ Paused ¿ Xlet.startXlet()尡 ϵ ȴ. |
|
Destryed |
Xlet ڿ ݳϰ ȴ. ´ Ȳ ´ : DestroyXlet() 尡 . DestroyXlet() Ȧϰ ִ ڿ ݳϰ ʿ clean up ϰ garbage collect Ұ̴. Ǵ, XletContext.notifyDestroyed()尡 ϵǾ . Xlet XletContext.notifyDestoryed ȣ ݵ Xlet.destryXlet() ؾ Ѵ. Note: ´ Xlet instance ѹ ִ |
Xlet ӽ Xlet ڷ ûڰ ϴ ۿ Ǿ. Ư:
7 Xlet application ӽ ְ ִ.

Xlet ִ ִ. , application manager Xlet ϶ . ̰ Xlet ϶ ų ִ. Ϲ Xlet :
Table5 Xlet Excution
|
Application Manager |
Xlet |
|
Application manager Xlet ο instance Ѵ. |
Xlet default constuctor(ƱԸƮ ) ȣǰ Loaded ¿ ִ. |
|
Application manager Xlet Ű ʿ context object ϰ Xlet ʱȭ Ų. |
Xlet context object ̿Ͽ ڽ ʱȭ Ѵ. Paused¿ ִ. |
|
Application manager ϱ ð ϰ, Active · ȣѴ. |
Xlet ϴµ ʿ ڿ ȹѴ. |
|
Application Manager ̻ Xlet ϴ ʿġ ʴ´. Xlet ߶ ȣ . |
Xlet ߰ ϰ ִ ڿ ݳϴ ϰ ɰ̴. |
|
Application manager Xlet ̻ ʿġ ʴٰ ϰų 켱 . ̰ Xlet destroyǴ ȣ ȴ. |
ϵ Ǿٸ Xlet ³ ȣ ϰų clean up Ѵ. |
Xlet Ű ڿ ڷ ű ȯ濡 application lifecycle signaling API Բ ȴ. Xlet API Xlet ȯ Ÿ Xlet XletContext Ǿ.(JavaDoc ڼ ų ų..)
Xlet API ºȭ ȣ callback Ѵ. Xlet ´ application manager Xlet 带 ȣϰų Xlet XletContext object ȭ application manager ٲ ִ. Ȯϰ ȭ Ͼ ǹ̴ ߿ϴ:
interface ȣ ȣ ̷ ºȭ Ų.
interface ȣ ºȭ Ա Ÿ.
Xlet API Ģ :
ñ Xlet API Xlet ºȭ ϴµ ִ.
XletContext Xlet ǥϴµ object̴. XletContext ȯ濡 ؼ ȯ漳 ϱ XletContext ȴ.
Xlet ְ Ǵ ִ ü(entity)ϻ̴. , Xlet ϴ ̻ Ҽ ߰ϰ ȭ ϰ ɰ̴.
Xlet ڽ ۾ , application manager ȣ .
7.4.1Xlet interface
Xlet interface application manager application lifecycle ºȭ Xlet ȣ ִ װ 带 Ѵ:
Xlet ʱȭѴ. Xlet ڽ ʱȭ϶ ȣ , ̰ ְ غϰ Ѵ. XletContext object ҵ ȴ. object ° ٲ application manager ȣ Ӹ ƴ϶ , ̰ ȯ propertie Xlet ϰ ϴµ ȴ. Xlet ʱȭ ϴ ִٸ, XletStateChangeException application manager ȣ . ۿ Xlet Paused · ƿ´.
Xlet ҵ尡 ϰǸ Active· Ű . Xlet ¿ ϰ ȴ. Xlet Ϲ ڿ ȹѴ. Xlet Active · ϸ, application manager ºȭ и ϴ XletStateChangeException ų ִ.
PauseXlet ϴ ߴ϶ ȣ Xlet Ѵ. Callback ϵ , xlet Pause ¿ ְ ȴ. Xlet ڿ ݳϴ ϰ ɰ̴. Xlet Paused · ϸ, application manager ºȭ и ϴ XletStateChangeException ִ.
Xlet ̻ ʿ ýۿ ɰ̶ ȣ . Xlet DZ ڿ ݳ, preference , ʿ ó Ѵ.
Java object gabarge collection DZ clean upó ֵϴ finaization ȣ Ŀ ϰ ִ. Object finalizer object ų, object garbage collect غ DZ ȣ ʴ´. Java language specification programmer finalize ȣ Ѵٰ Ѵ. Xlet interface Xlet destroyXlet() ҵ ȣ destroyDZ ٷ ȣ°Ϳ ϶. ǵ ϱ , αӴ destryXlet() 尡 ȣ ̶ ִ.
ߵ, object finalizer ȣǴ Ϳ ؼ ȵȴ. Xlet Ϲ ݵ clean upؾ ִٸ, Xlet destoryXlet()带 ſ ̿ؾ Ѵ. κ finalizer Ѵ.
Ϲ Java application ȯ Xlet finalizer ϴ Xlet ۾ ϰ Ǿ ִ. ̰ ϰ ϴ ϳ finalizer thread group ְ켱 settingǾ ִٴ ̴. Object Constructor ۾ security exception ų ִ. Application ȯ ϴ ݵ å ϴ SecurityManager ؾ Ѵ. ø̼ ȯ ΰ SercurityManager object ؾ Ѵ. ϳ Xlet Ϲ ̰, ϳ finalizer thread ϴ ThreadGroup å ϴ ̴.
Xlet lifecycle (Xlet interface ϴ ) sychronized ϰ ִ. ̰ Xlet interface ʴµ, Java language interface synchronized ̴. ̷ syschronized μ, Xlet object interface ϳ lifecycle method ȣ lock ȹϰ ȴ. ̰ ϳ ٸ ϳ lifecycle ȣ ߴϴ ´. Xlet XletContext lifecycle ȣ ڽ lock ȹϴ ִ. 踦 application manager Xlet lifecycle ȣ thread ϰ ɰ̴.
XletContext Xlet ʱȭ Ǵ object̴. XletContext Xlet properties ϴ Ŀ Բ, application manager ºȭ ȣ Ѵ.
XletContext Xlet ϴ ȴ. XletContext interface 带 ϰ ִ:
Xlet Destryed¿ Դٴ application manager ˸. Xlet ϰǾ destrye غ Ǿٴ application manager ˸ Ѵ.
Xlet Paused ¿ Դٴ application manager ˸. ´ Xlet ̻ ȴ.
Xlet XletContextκ ־ ̸ property ְ Ѵ.
Xlet application manager Active · Ѵٴ ˸.
Xlet lifecycle ܼ û ڷ stock ticker , ̰ ֽĽü back channel ̿Ѵ.