Getting to Know TiVo: The Home Media Engine (HME SDK) Eric M. Upchurch CS 525 Spring 2008.

Slides:



Advertisements
Similar presentations
Workshop Servers (Server Software) Browsers Media Delivery Technologies: o Flash o QuickTime o Windows Media o Real. New Internet technology: XML XHTML.
Advertisements

Android Application Development A Tutorial Driven Course.
Categories of I/O Devices
Location based Streaming Topics for our 1 st presentation  Thesis Description  Positioning System  Streaming over positioning  Questions Session.
Discovering Computers: Chapter 1
1 Java Networking – Part I CS , Spring 2008/9.
Chapter 29 Structure of Computer Names Domain Names Within an Organization The DNS Client-Server Model The DNS Server Hierarchy Resolving a Name Optimization.
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
Definitions, Definitions, Definitions Lead to Understanding.
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
Browsing the World Wide Web. Spring 2002Computer Networks Applications Browsing Service Allows one to conveniently obtain and display information that.
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009.
Web Basics (Scary Acronyms Demystified). HTML Acronyms And your website… CSS URL HTTP SSL SMTP DNS RSS API ERQ iCAL Yippie! We have an Awesome website…
How the World Wide Web Works
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
WEB DESIGN SOME FOUNDATIONS. SO WHAT IS THIS INTERNET.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation.
By: Joel Rodriguez.  International student from Mexico  Delicias, Chihuahua Mexico  Spanish  Sports and Music.
Computer Networks  Network - A system of computers interconnected in order to share information.  Data transmission - consists of sending and receiving.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Chapter 10 Intro to Routing & Switching.  Upon completion of this chapter, you should be able to:  Explain how the functions of the application layer,
Chapter 4 Networking and the Internet Introduction to CS 1 st Semester, 2015 Sanghyun Park.
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
Web Page Design I Retest Terms Review. 1. Web pages are created using a language known as ___________. The coding of this language must follow specific.
Android How to Program Presented by Thomas Bucag, Rob Goodfellowe, Samantha Tomeï © by Pearson Education, Inc. All Rights Reserved.
Enabling Embedded Systems to access Internet Resources.
The Internet and World Wide Web By: Shilpa Phanse 10/8/2008.
1 SEG3120 Analysis and Design for User Interfaces Flash Anis Zarrad Parallel Simulations and Distributed Systems (PARADISE) Research Laboratory SITE, University.
Lector: Aliyev H.U. Lecture №15: Telecommun ication network software design multimedia services. TASHKENT UNIVERSITY OF INFORMATION TECHNOLOGIES THE DEPARTMENT.
CHAPTER FOUR COMPUTER SOFTWARE.
DUE Hello World on the Android Platform.
Network Services Networking for Home & Small Business.
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
Chapter 4 Networking and the Internet. © 2005 Pearson Addison-Wesley. All rights reserved 4-2 Chapter 4: Networking and the Internet 4.1 Network Fundamentals.
Okay, here’s a scenario… You’re sitting at a computer…. Type in www. yourcompany.com As soon as you click on search your browser will ask your Operation.
Vassil Roussev 2 A socket is the basic remote communication abstraction provided by the OS to processes. controlled by operating system.
MediaServer:1 Device Template Version 1.01 Date: June 25, 2002 For UPnP™ Version 1.0 Status: Standardized DCP File from: MediaServer1.0.pdf Author: John.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
1 Chapter 28 Networking. 2 Objectives F To comprehend socket-based communication in Java (§28.2). F To understand client/server computing (§28.2). F To.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
The Internet Lecture 16 CSCI 1405, CSCI 1301 Introduction to Computer Science Fall 2009.
X-WindowsP.K.K.Thambi The X Window System Module 5.
James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Joe Cohen Presentation Overview  Project definition and requirements  Solution process and explanation  Methodology.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Internet protocols for the SmartGrid – architectural consideration Henning Schulzrinne Columbia University 1.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Copyright © 2002 Pearson Education, Inc. Slide 3-1 Internet II A consortium of more than 180 universities, government agencies, and private businesses.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
The Internet Technological Background. Topic Objectives At the end of this topic, you should be able to do the following: Able to define the Internet.
Exploring Mobile Device Networking Lesson 4. Exam Objective Matrix Skills/ConceptsMTA Exam Objectives Understanding Networking for Mobile Devices Network.
Sharing makes life beautiful ARKUDA STB SOLUTION.
The Internet Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Client-server communication Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Web Design Vocabulary #3. HTML Hypertext Markup Language - The coding scheme used to format text for use on the World Wide Web.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
CIS 1203 Web Technologies Introduction to the Internet and the WWW.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Building Graphical User Interface with Swing a short introduction
Software models - Software Architecture Design Patterns
Exceptions and networking
Presentation transcript:

Getting to Know TiVo: The Home Media Engine (HME SDK) Eric M. Upchurch CS 525 Spring 2008

Introduction TiVo is a popular set-top DVR that can be connected to a home network Through the network connection, the TiVo can access applications through a special transport protocol (the HME protocol) The HME SDK facilitates development of applications that utilize the HME protocol ▫Photo viewers ▫Music players ▫RSS feeds ▫Streaming radio ▫Games ▫etc

Motivation Interested in developing TiVo apps prior to CS525 ▫Also seemed a perfect fit for the class Relatively new to TiVo, and wanted to play around with it Have run several third-party applications Curious what the capabilities of the SDK are Could not find exactly what I was looking for ▫A photo slideshow with music

The HME Protocol HME applications use a client/server architecture ▫Server is a PC or possibly a server on the Internet ▫Client is the TiVo receiver Protocol uses a single bi-directional TCP/IP socket Language independent ▫Applications just have to communicate with TiVo via the protocol, and so could be developed in any language Uses chunked data encoding (1-65K byte chunks) ▫Allows arbitrary data size by spanning chunks ▫Enables reader of a stream to skip to next chunk if an error occurs

HME Architecture

HME SDK A complete API and developer kit for creating HME applications in Java Wraps the HME protocol into an event-driven architecture ▫More or less MVC, similar to Java Swing TiVo boxes find HME applications using Multicast DNS (mDNS/Zeroconf) and DNS Service Discovery (DNS-SD) ▫“Bonjour”, developed by Apple Computer ▫No network setup required ▫Don’t need to know IP addresses, host names, or ports

HME SDK Class Structure Applications inherit from the Application class GUI is composed of Views containing Resources ▫View instances contain a single resource, and provide a coordinate system and transparency ▫Resources are (mostly) visual elements: fonts, colors, images, text, and animations. Also sounds, music (streamed) ▫Views are laid out to draw a screen on the TiVo receiver’s display

HME Application Structure An application is composed of a view hierarchy ▫Root view covers entire display ▫Views can have child views, which cover some portion of the screen relative to the parent Views may be invisible or zero size to accommodate non- visual elements, such as sounds Views can have streaming image or music (MP3) resources ▫Events notify the application as the stream is read Animation resources provide visual effects (e.g. fade- in/out) ▫Useful for hiding network latency Views and resources handle events sent by TiVo

Bananas UI Toolkit TiVo toolkit for building TiVo user interfaces Extends the basic HME SDK Provides an application framework ▫Applications are composed of a stack of screens ▫Provides focus management between widgets Provides a standard widget set ▫Button ▫Text ▫List ▫Keyboard Provides a standardized look and feel ▫Similar to the base TiVo UI

HME Hosting Environment Uses factory pattern to serve up applications ▫Each available application has a factory class that provides instances of the app to a TiVo receiver ▫New instances are created when a connection is established from a TiVo receiver Single hosting environment (one JVM) can serve multiple application types Applications are accessed via an HTTP URL request from the receiver ▫Example: ▫Hosting environment maps the URL to an application factory by name (e.g. MyTiVoAppFactory) Custom hosting environments can be created for extensibility to server domain

HME Hosting Environment

HME Simulator The HME SDK includes a TiVo simulator for testing ▫Greatly facilitates rapid application development Works like the TiVo receiver Allows you to see the view hierarchy and memory usage of application Provides debugging options Overlays “safe” television area bounding boxes ▫This shows the area that is safe on all televisions, including those that overscan Not a substitute for testing on a TiVo receiver ▫Response speed is vastly different ▫Network latency may be different

Conclusions TiVo HME is a powerful SDK for developing applications for display on TiVo Bananas UI toolkit eases construction of professional looking application A couple of shortcomings: ▫An HD capable alpha version has been released, but I could not get it to work. Stuck with SD (640x480) for now. ▫Does not allow streaming of video content!

References & Resources TiVo HME Software Developer Kit Developer's Guide Release devguideTOC.htmlhttp://tivohme.sourceforge.net/docs/hmesdk/hme- devguideTOC.html TiVo Bananas UI Toolkit Developer’s Guide Release devguideTOC.html devguideTOC.html TiVo Home Media Engine (HME) SDK Info. TiVo. Wikipedia. Flash demo: Getting Started with Eclipse and the TiVo HME SDK. mo1.php mo1.php TiVo Developer How-Tos.

Backup Slides In the event the demo doesn’t work

My HME Application – Intro Screen Currently one slideshow Extend to multiple XML defined slideshows, listed here Uses common TiVo look and feel User selects enter or right arrow button to start slideshow

My HME Application – Slideshow Screen Photos randomly change every N seconds Photos fade in/out Music tracks randomly selected User selects left arrow button to return to previous screen