Digital Television for Java™ME Platform Mobile Devices—Introduction to JSR 272Antti Rantalahti              Ivan WongResea...
Goal of Your TalkWhat Your Audience Will Gain   Learn the basics of Mobile Broadcast   Service API for Handhelds. Understa...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Mobile Broadcast Service API forHandheld Terminals—JSR 272• Application API to give access to mobile digital  television t...
Digital Television Concepts• ESG/EPG—Electronic Service/Program Guide  • Listing of scheduled broadcast television program...
Digital Television Concepts (Cont.)• File carousel  • Broadcast stream may carry auxiliary data  • Contains mainly images ...
Main Features•   Access to electronic service guide•   Service and program selection•   Presentation and recording•   Acce...
JSR 272 ArchitectureArchitecture of a Typical Implementation                       2006 JavaOneSM Conference | Session TS-...
JSR 272 ArchitectureRelation Model of the JSR 272 Modules                     2006 JavaOneSM Conference | Session TS-4693 ...
JSR 272 API Dependencies• Minimum platform requirements  • CLDC 1.1  • Some Java ME profile for the UI: MIPD 1.0, PBP  • J...
Prior Arts• MHP (Multimedia Home Platform)   • Targets set top devices with CDC and Personal Basis Profile   • Defined by ...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Electronic Service Guide• Program event listing with metadata associated  with each event• Different broadcast specificati...
General Broadcast Structure• Service  • Broadcast channel containing multiple program    events• Program event  • Primary ...
ESG API• Service interface abstracts a service• ProgramEvent abstracts a program event• ServiceComponent describes media c...
Example: Find All News Programs// Form the queryQuery q = QueryComposer.equivalent   (CommonMetadataSet.PROGRAM_CONTENT_GE...
More Query ExamplesSimple Queries:Query q1, q2, q3;q1 = QueryComposer.equivalent(CommonMetadataSet.SERVICE_NAME, "CNN");q2...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Service and Program Selection• Information about services and programs are  determined from ESG• They are selected via Ser...
Service Selection API• ServiceContext is the entry point to service  selection API• ServiceComponent describes media  comp...
ServiceContext Class• Environment where a service or program can be  selected and presented in a broadcast receiver• Model...
ServiceContext Class (Cont.)• Instance management   • Instances can be shared among applications via export()   • Applicat...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Presentation and Recording• Handles the presentation and recording of  time-based media such as audio, video and  animated...
Presentation and Recording API• JSR 135 Player represents a media handler to render  and record audio and video• A Player’...
Example: Selecting a Service andFetch the Players for PresentationServiceContext sc =ServiceContext.getServiceContext(Serv...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Broadcast Files and Objects• Broadcast services may carry auxiliary data  complementary to the media stream• Broadcast obj...
Broadcast File and Objects API• Agnostic to the underlying transport mechanism• Based on the Generic Connection Framework•...
Example: Broadcast Objectpublic void contextUpdate(ServiceContext s, int event, Object data) {if (event == ServiceContextL...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Security• Some methods are protected for security• Permission names are defined for MIPD  security framework• Security for...
Digital Rights Management (DRM)• DRM rights need to be acquired before protected  services and program events can be consu...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Purchasing• The ESG indicates whether a service/program  requires purchase and provides some preliminary pricing  informat...
Purchase Architecture              2006 JavaOneSM Conference | Session TS-4693 |   37
Example: PurchaseProgramEvent p = …;PurchaseModule purchaseModule = new PurchaseModule(this);try {    String id = p.getStr...
AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and Obj...
Status of the API• The specification is under construction; This  slide will be completed in the conference  before the se...
Summary• JSR 272 is an application API to write mobile  digital TV applications• Agnostic to any specific technology• Allo...
For More Information• JSR 272 home page:  • jcp.org/en/jsr/detail?id=272                      2006 JavaOneSM Conference | ...
Q&A      2006 JavaOneSM Conference | Session TS-4693 |   43
Digital Television for Java™ME Platform Mobile Devices—Introduction to JSR 272Antti Rantalahti              Ivan WongResea...
Upcoming SlideShare
Loading in...5
×

Javaone ts4693 v2

233

Published on

Java One Pdf

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
233
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Javaone ts4693 v2

  1. 1. Digital Television for Java™ME Platform Mobile Devices—Introduction to JSR 272Antti Rantalahti Ivan WongResearch Manager Distinguished MemberNokia Research Center of Technical Staff Motorola, Inc.TS-4693 2006 JavaOneSM Conference | Session TS-4693 |
  2. 2. Goal of Your TalkWhat Your Audience Will Gain Learn the basics of Mobile Broadcast Service API for Handhelds. Understand the concepts of mobile digital television and their affect on the design of the API 2006 JavaOneSM Conference | Session TS-4693 | 2
  3. 3. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 3
  4. 4. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 4
  5. 5. Mobile Broadcast Service API forHandheld Terminals—JSR 272• Application API to give access to mobile digital television technology • Agnostic to underlying broadcast technology but… • Takes into account the technology specific requirements• Utilizes existing Java™ ME platform specifications as much as possible • Specifies only TV specific functionalities • Re-use existing APIs for other general features: • Application management and life cycle, purchasing, presentation 2006 JavaOneSM Conference | Session TS-4693 | 5
  6. 6. Digital Television Concepts• ESG/EPG—Electronic Service/Program Guide • Listing of scheduled broadcast television programs • Metadata about the programs: e.g., channel and title• Program event • Primary unit of broadcast programming i.e., an individual program• Service • Refers to broadcast channel carrying multiple scheduled events• PVR • Personal video recorder 2006 JavaOneSM Conference | Session TS-4693 | 6
  7. 7. Digital Television Concepts (Cont.)• File carousel • Broadcast stream may carry auxiliary data • Contains mainly images and html links • Modelled as a read-only file system• Service-bound application • An application that is delivered with the broadcast stream • Typically tailored for the specific content 2006 JavaOneSM Conference | Session TS-4693 | 7
  8. 8. Main Features• Access to electronic service guide• Service and program selection• Presentation and recording• Access to broadcast files and objects• Security and DRM• Purchasing 2006 JavaOneSM Conference | Session TS-4693 | 8
  9. 9. JSR 272 ArchitectureArchitecture of a Typical Implementation 2006 JavaOneSM Conference | Session TS-4693 | 9
  10. 10. JSR 272 ArchitectureRelation Model of the JSR 272 Modules 2006 JavaOneSM Conference | Session TS-4693 | 10
  11. 11. JSR 272 API Dependencies• Minimum platform requirements • CLDC 1.1 • Some Java ME profile for the UI: MIPD 1.0, PBP • JSR 135 (Mobile Media API ) for presentation• In addition • JSR 75: FileConnection to access the broadcast files • JSR 229 (Payment API): purchasing • JSR 234 (Advanced Multimedia Supplements): additional presentation capabilities 2006 JavaOneSM Conference | Session TS-4693 | 11
  12. 12. Prior Arts• MHP (Multimedia Home Platform) • Targets set top devices with CDC and Personal Basis Profile • Defined by DVB and includes other derived standards such as Java based TV, DAVIC etc. • Based on the PBP Xlet application model, AWT UI framework and Java based TV which are incompatible with MIDP• OCAP (OpenCable Application Platform) • Extends MHP-GEM (Globally Executable MHP) for the digital cable TV market• Digital Set Top Profile—“OnRamp to OCAP”(JSR 242) • Defines a Java ME profile based on CLDC and a subset of PBP • Suitable to run a subset of OCAP on “legacy” set top devices • Dependent on AWT UI framework and Java based TV subset (includes Xlet) 2006 JavaOneSM Conference | Session TS-4693 | 12
  13. 13. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 13
  14. 14. Electronic Service Guide• Program event listing with metadata associated with each event• Different broadcast specification specify different schemas for ESG• JSR 272 abstracts differences in different schemas to provide inter-operability• ESG modelled as a flattened database 2006 JavaOneSM Conference | Session TS-4693 | 14
  15. 15. General Broadcast Structure• Service • Broadcast channel containing multiple program events• Program event • Primary unit of broadcast programming • For instance movie, music video, etc.• Service component • Media component within a program • For instance audio track, video track or language subtitle track 2006 JavaOneSM Conference | Session TS-4693 | 15
  16. 16. ESG API• Service interface abstracts a service• ProgramEvent abstracts a program event• ServiceComponent describes media components within a service• CommonMetaDataSet defines basic attributes common to most broadcast specifications• ESGQueryDatabase is access point to database• QueryComposer is a factory to compose queries• ESGChangeListener to listen for ESG updates 2006 JavaOneSM Conference | Session TS-4693 | 16
  17. 17. Example: Find All News Programs// Form the queryQuery q = QueryComposer.equivalent (CommonMetadataSet.PROGRAM_CONTENT_GENRE, "News");ProgramEvent programs[];try { // Find the programs programs = edb.findPrograms(q); for (int i = 0; i < programs.length; i++) { // A custom function to display the program info displayProgramInfo(programs[i]); }} catch (QueryException e) {} 2006 JavaOneSM Conference | Session TS-4693 | 17
  18. 18. More Query ExamplesSimple Queries:Query q1, q2, q3;q1 = QueryComposer.equivalent(CommonMetadataSet.SERVICE_NAME, "CNN");q2 = QueryComposer.after(CommonMetadataSet.PROGRAM_START_TIME, new Date());q3 = QueryComposer.equivalent(CommonMetadataSet.PROGRAM_CONTENT_GENRE, StringAttribute.UNKNOWN_VALUE);Compound Queries:Query cq;cq = QueryComposer.or(QueryComposer.and(q1, q2), QueryComposer.equivalent(CommonMetadataSet.PROGRAM_CONTENT_GENRE, "News")); 2006 JavaOneSM Conference | Session TS-4693 | 18
  19. 19. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 19
  20. 20. Service and Program Selection• Information about services and programs are determined from ESG• They are selected via Service Selection API • Agnostic to bearer technology • May require for instance, setting up the radio tuner or joining to IP broadcast group 2006 JavaOneSM Conference | Session TS-4693 | 20
  21. 21. Service Selection API• ServiceContext is the entry point to service selection API• ServiceComponent describes media components within a service• ServiceContextListener listener for events from ServiceContext 2006 JavaOneSM Conference | Session TS-4693 | 21
  22. 22. ServiceContext Class• Environment where a service or program can be selected and presented in a broadcast receiver• Models the receiver• State model • PRESENTING • NOT_PRESENTING • PRESENTATION_PENDING • DISPOSED 2006 JavaOneSM Conference | Session TS-4693 | 22
  23. 23. ServiceContext Class (Cont.)• Instance management • Instances can be shared among applications via export() • Application always has access to the default, pre-created instance of ServiceContext• Program or service selection • Selecting a program/service results in (MMAPI) Players being created for the presentation components • Any service-bound application may also be launched• Component selection • Media (audio, video, applications etc.) components can be selected from a broadcast • An initial set of components can be set via preference before the program/service is selected • After the program/service is selected, components can be added or removed 2006 JavaOneSM Conference | Session TS-4693 | 23
  24. 24. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 24
  25. 25. Presentation and Recording• Handles the presentation and recording of time-based media such as audio, video and animated content• Relies on JSR 135 for basic playback and recording; JSR 234 for advanced presentation controls• Added a new TimeShiftControl class for time-shifting 2006 JavaOneSM Conference | Session TS-4693 | 25
  26. 26. Presentation and Recording API• JSR 135 Player represents a media handler to render and record audio and video• A Player’s Control provides the specific media control features like volume control, playback rate, recording• JSR 234 adds more Control classes for advanced media playback features like spatialized audio, equalizer, image tonality control• TimeShiftControl allows the playback to be shifted or delayed to allow the playback to be paused in real-time• Graphics overlay is supported by allowing the video and GUI rendered on different display planes on the hardware 2006 JavaOneSM Conference | Session TS-4693 | 26
  27. 27. Example: Selecting a Service andFetch the Players for PresentationServiceContext sc =ServiceContext.getServiceContext(ServiceContext.DEFAULT);sc.addListener(new ServiceContextListener() { public void contextUpdate(ServiceContext s, int event, Object data) { if (event == ServiceContextListener.MEDIA_PREPARED) { Player players[] = (Player [])data; // The players should all be realized at this point. for (int i = 0; i < players.length; i++) { VideoControl vc = (VideoControl)players[i].getControl("VideoControl"); if (vc != null) { vc.initDisplayMode(vc.USE_DIRECT_VIDEO, canvas /* a GUI canvas created ahead of time */); vc.setVisible(true); } players[i].start(); } } } });ESGQueryDatabase db = ESGQueryDatabase.getDefaultDatabase();Service[] current = db.findServices(QueryComposer.CURRENT_PROGRAM);sc.selectService(current[0]); 2006 JavaOneSM Conference | Session TS-4693 | 27
  28. 28. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 28
  29. 29. Broadcast Files and Objects• Broadcast services may carry auxiliary data complementary to the media stream• Broadcast objects may be transmitted as a single file, a directory structure with files, or a stream of packet data• Broadcast objects are received asynchronous to the media streams and may not be immediately available• Broadcast objects may be updated during the course of the broadcast 2006 JavaOneSM Conference | Session TS-4693 | 29
  30. 30. Broadcast File and Objects API• Agnostic to the underlying transport mechanism• Based on the Generic Connection Framework• BroadcastFile abstracts a broadcast object as a file or directory of files• BroadcastObjectStream abstracts a broadcast object as a stream of packet data• BroadcastObjectListener provides the listener for the asynchronous update events 2006 JavaOneSM Conference | Session TS-4693 | 30
  31. 31. Example: Broadcast Objectpublic void contextUpdate(ServiceContext s, int event, Object data) {if (event == ServiceContextListener.SELECTION_COMPLETED) { // Retrieve the logo that identifies this program. String uri =s.getService().getStringValue(CommonMetadataSet.PROGRAM_CONTENT_AUX_LOGO); if (uri != null) { try { Connection c = Connector.open(uri); if (c instanceof BroadcastFile) { // Do something with this logo ... } } catch (IOException e) { e.printStackTrace(); } }} 2006 JavaOneSM Conference | Session TS-4693 | 31
  32. 32. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 32
  33. 33. Security• Some methods are protected for security• Permission names are defined for MIPD security framework• Security for downloaded applications follows the mechanisms of the underlying platform 2006 JavaOneSM Conference | Session TS-4693 | 33
  34. 34. Digital Rights Management (DRM)• DRM rights need to be acquired before protected services and program events can be consumed• Rights can be acquired via different schemes: Conditional Access (CA), OMA DRM (v.1 or 2) etc.• JSR 272 hides the DRM implementation details but safe-guards the applications from violating DRM control at the level of playback, recording and re-distribution of the contents• JSR 272 does not provide any API to query the DRM rights for the contents since these are functionalities common to the platform. It relies on the underlying platform (e.g. MIDP) to provide the functionalities• Purchase of contents is handled by the payment API 2006 JavaOneSM Conference | Session TS-4693 | 34
  35. 35. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 35
  36. 36. Purchasing• The ESG indicates whether a service/program requires purchase and provides some preliminary pricing information• JSR 229 Payment API is used to conduct the payment: • Identify the payment provider • Issue the request to the payment provider • Get updated, accurate payment info OTA via the paymentInfo.jpp provisioning • Initiate the actual purchase transaction • Receive the rights object which contains the decryption key• A new class, PurchaseModule is introduced to adapt the PurchaseItemID (a URI) in the ESG to the PlayFeatureID (an integer) in JSR 229 2006 JavaOneSM Conference | Session TS-4693 | 36
  37. 37. Purchase Architecture 2006 JavaOneSM Conference | Session TS-4693 | 37
  38. 38. Example: PurchaseProgramEvent p = …;PurchaseModule purchaseModule = new PurchaseModule(this);try { String id = p.getStringValue(CommonMetadataSet.PROGRAM_ID); String title = p.getStringValue(CommonMetadataSet.PROGRAM_NAME); String description = p.getStringValue(CommonMetadataSet.PROGRAM_DESCRIPTION); if(!isPurchased(id)){ //send a purchase request int feature=purchaseModule.getPaymentFeatureID(id); purchaseModule.process(feature,title,description); }} catch (Exception e) { } 2006 JavaOneSM Conference | Session TS-4693 | 38
  39. 39. AgendaOverviewElectronic Service Guide (ESG)Service and Program SelectionPresentation and RecordingBroadcast Files and ObjectsSecurity and DRMPurchasingStatus 2006 JavaOneSM Conference | Session TS-4693 | 39
  40. 40. Status of the API• The specification is under construction; This slide will be completed in the conference before the session• Public review by…• Proposed final draft…• Final approval ballot by…• Final release by…• RI • What/how 2006 JavaOneSM Conference | Session TS-4693 | 40
  41. 41. Summary• JSR 272 is an application API to write mobile digital TV applications• Agnostic to any specific technology• Allows presentation and recording of the services• Gives access to ESG and file carousel• Provide means to purchase services• Designed to harmonize with the MIDP platform 2006 JavaOneSM Conference | Session TS-4693 | 41
  42. 42. For More Information• JSR 272 home page: • jcp.org/en/jsr/detail?id=272 2006 JavaOneSM Conference | Session TS-4693 | 42
  43. 43. Q&A 2006 JavaOneSM Conference | Session TS-4693 | 43
  44. 44. Digital Television for Java™ME Platform Mobile Devices—Introduction to JSR 272Antti Rantalahti Ivan WongResearch Manager Distinguished MemberNokia Research Center of Technical Staff Motorola, Inc.TS-4693 2006 JavaOneSM Conference | Session TS-4693 |
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×