Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… ·...

28
Component Based Media Streaming Component Based Media Streaming Framework Framework ECE750 T11 COMPONENT BASED SOFTWARE SYSTEMS Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20 th 2009 Professor: Ladan Tahvildari 1 July 20th 2009 ECE750 T11 Project Presentation - 1

Transcript of Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… ·...

Page 1: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Component Based Media Streaming Component Based Media Streaming FrameworkFramework

ECE750 T11 COMPONENT BASED SOFTWARE SYSTEMS Project Presentation - 1

By

Sohaib SajidHemamalini Vedachalam

July 20th 2009

Professor: Ladan Tahvildari

1July 20th 2009 ECE750 T11 Project Presentation - 1

Page 2: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

Approach Current StatusExpected ResultsRelated ResearchReferences

2July 20th 2009 ECE750 T11 Project Presentation - 1

Page 3: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

Approach Current StatusExpected ResultsRelated ResearchReferences

3July 20th 2009 ECE750 T11 Project Presentation - 1

Page 4: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

IntroductionGlossary of Terms:

Firmware: Embedded software contained in EPROM or flash memory that internally control various electronic devicesEncoder/Decoder: An encoder is software program that converts information from one format to another, for the purposes of speed, secrecy, security, or saving space by shrinking sizeFIFO (First In First Out)Container Format - it means a "wrapper" format, which doesn't define what compression formats the video file within a specific container format includes, but rather defines how the video, audio and other possible data is stored within the containerParser / De-multiplexer (demux)Multiplexer (muxer)VLC – (Video LAN Client) is a highly portable multimedia player for various audio and video formats

4July 20th 2009 ECE750 T11 Project Presentation - 1

Page 5: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

IntroductionContainer Format/Parser/Muxer example:

ASF (Container) Format MP4 (Container) Format

Muxer

RawAudio/Video

Data

Parser

5July 20th 2009 ECE750 T11 Project Presentation - 1

Page 6: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

IntroductionProblem Statement:

Significant advancements are being made in the Projectors (Ethernet, wireless, USB 2.0 enabled projectors, picoprojectors etc.)

For Ethernet enabled projectors, video playback depends heavily on the bandwidth available. To fix this problem, compressed video is sent to the device which decompresses and displays the data

Initially, this functionality was achieved using open source software as the projector driver used VLC to support video playback

6July 20th 2009 ECE750 T11 Project Presentation - 1

Page 7: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Introduction

Projector’s capabilities are limited to a subset of available file formats

Multiple file formats are available on the PC side

To be able to play all available formats, we must either:Reprogram the projector to understand all formats (firmware use)Convert available input formats to understandable formats beforesending to projector (desired method)

7July 20th 2009 ECE750 T11 Project Presentation - 1

Page 8: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

IntroductionProblem Statement (Cont…):

Installing new firmware on the device – That is, to add ability to play a new file format, a new firmware is released

Installing new firmware may be acceptable in a controlled environment but for a home user, this is generally not desirable.

Frequency of updates to add new functionality can lead user to lose trust in quality of the deviceIf a firmware update is interrupted before completion, the device is generally inoperable.

8July 20th 2009 ECE750 T11 Project Presentation - 1

Page 9: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

Approach Current StatusExpected ResultsRelated ResearchReferences

9July 20th 2009 ECE750 T11 Project Presentation - 1

Page 10: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

ApproachTask and Project Schedule:

Project Schedule

0 10 20 30 40 50 60 70 80

5/24/2009

5/31/2009

6/7/2009

6/14/2009

6/14/2009

6/24/2009

6/29/2009

6/29/2009

7/6/2009

7/6/2009

7/13/2009

7/20/2009

7/25/2009

12

34

56

78

910

1112

13

Task

10July 20th 2009 ECE750 T11 Project Presentation - 1

Page 11: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Existing Design - Critical Analysis of Current System A company XYZ developed a streaming server that can:

Take as input a number of file formatsConvert input data to a subset of decodable format for the projectorSend converted data in real-time to the projector using HTTPProvide basic media player functionality such as Play/Pause/SkipSend data asynchronously to the projectorNotify user/application of errors (end of file, connection failure etc.)

11July 20th 2009 ECE750 T11 Project Presentation - 1

Page 12: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Existing Design – Critical Analysis of Current System

User interacts with a PC side applicationApplication communicates with MSF using a specified API interfaceMSF provides feedback to the application about its current stateMSF provides projector with audio/video dataApplication updates GUI components based on feedback received from MSF

Multimedia streaming framework (MSF)

Parser FIFO

MuxersBlock

User application

Parsers Block

Projector

MuxerFIFO

HTTP Server

12July 20th 2009 ECE750 T11 Project Presentation - 1

System Block Diagram

Page 13: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Existing Design Flaws – Critical Analysis of Current System

Streaming server was developed without any prior knowledge of the proper CBSE methodologiesThere was no clear separation as code from one “component” in this software could ignore defined “interfaces” and directly call methods belonging to other “components”. This results in high coupling of the components.

Note: For CBSE, we need “high cohesion” and “low coupling”

13July 20th 2009 ECE750 T11 Project Presentation - 1

Page 14: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Existing Design Flaws – Critical Analysis of Current System

There is a lack of a central controller which results in a lot of “glue” code to keep the components together and working togetherDue to the lack of a controller, components make calls to other components directly thereby further increasing coupling within the streaming serverCurrent means to notify the user application of an error can result in a deadlock

14July 20th 2009 ECE750 T11 Project Presentation - 1

Page 15: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Proposed Changes – Restructuring Existing Components

Redefine all sub components within the framework as well as their interfaces.

Introduce a MSF controller that will process user requests before they are passed on to various components

Make the new design extensible and expandableSo that the addition of new parser, multiplexers or streaming methods would require only minor updates to the frame work

15July 20th 2009 ECE750 T11 Project Presentation - 1

Page 16: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Application Of CBSE Principles –CBSE ApproachUse of Heterogeneous Architectural Styles:

Combining different architectural styles, involves a combination of functionalities entailing a combination of styles in the best solution.

The following different architectural styles are adopted:Client/Server architectureBlackboard architecture

Enterprise Styles Followed:Session FacadeCoarse Grain Interfaces

16July 20th 2009 ECE750 T11 Project Presentation - 1

Page 17: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Application of CBSE Principles - DesignOverall System Design:

MSFController

Parser(s) Muxer(s) HTTPServer

ParserFIFO

MuxerFIFO

GUIController

UserGUI

User Application

Media Streaming Framework

IFifo_Data IFifo_Data

IParser IFifo_Ctrl IFifo_CtrlIMuxer IServer

I_MSF_Api

17July 20th 2009 ECE750 T11 Project Presentation - 1

Page 18: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Proposed Changes – Implementation

Notification function needs to be updated such that deadlocks do not occur

Enhance the architecture of the existing multimedia streaming server to make it platform independent.

Remove high coupling with operating system’s I/O function

To achieve the best performance, MSF can do its own resource and memory management.

18July 20th 2009 ECE750 T11 Project Presentation - 1

Page 19: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

Approach Current StatusExpected ResultsRelated ResearchReferences

19July 20th 2009 ECE750 T11 Project Presentation - 1

Page 20: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Current Status

Completed:Critical AnalysisRestructuring ComponentsCommunication through a controllerI/O and Memory interface Abstraction

To do:Memory Manager Implementation

20July 20th 2009 ECE750 T11 Project Presentation - 1

Page 21: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

Approach Current StatusExpected ResultsRelated ResearchReferences

21July 20th 2009 ECE750 T11 Project Presentation - 1

Page 22: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Expected ResultsProvide Extensibility

To improve the capabilities of MSF and applications developed using it, MSF can be updated so that a new parser / multiplexer can be added with minimal effortThe system can take input from various sources and not justthe native file system

Provide Reusability: “Design for Reuse”All the parsers/multiplexers share a common interfaceMinimizing dependency on OS

Provide Reusability: “Design with Reuse”With the use of same frame work and library, different applications with different capabilities could be developed

22July 20th 2009 ECE750 T11 Project Presentation - 1

Page 23: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

ApproachCurrent StatusExpected ResultsRelated ResearchReferences

23July 20th 2009 ECE750 T11 Presentation - 1

Page 24: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

Related Research

24July 20th 2009 ECE750 T11 Presentation - 1

Experience with Component-Based Development of a Telecommunication Service (W.Bond et all [12])

AT&T CallVantage service is a consumer broadband voice-over-Internet-protocol (VoIP) service, whose advanced features are built and deployed on V+Plus.

V+Plus was originally built as a research prototype.

Building and deploying advanced telecommunication features usingcomponent-based technology.

Distributed Feature Composition (DFC) is a component based architecture for the development of telecommunication services.

DFC boxes (a box is a dynamically created and assembled component in the architecture) are reusable building blocks for building telecommunication services.

Page 25: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

OutlineIntroduction

Glossary of TermsProblem Statement

ApproachCurrent StatusExpected ResultsRelated ResearchReferences

25July 20th 2009 ECE750 T11 Presentation - 1

Page 26: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

1)C.Chu; C.Hsu; C.Lu; H.Xudong, "A Semi-Formal Approach to Assist Software Design with Reuse," Proceedings of the 15th IEEE International Conference on Software Maintenance, pp.256, March 1999.2)D.Alur; J.Crupi; D.Malks, “Core J2EE Patterns: Best Practices and Design Strategies”, Second Edition, Prentice Hall, 2003. 3)D.Garlan; M.Shaw, "An Introduction to Software Architecture", Technical Report CMU-CS-94-166, January 1994.4)D.Perry; A.Wolf, “Foundations for the Study of Software Architecture,” ACM Sigsoft -Software Engineering Notes, Volume 17, pp. 40-52, October 1992.5)“GNU GENERAL PUBLIC LICENSE”, Version 3, Free Software Foundation, Inc., http://www.gnu.org/copyleft/gpl.html, June 2009.6)I.Song; F.Elizalde; F.Karray, “CONCORD: a control framework for distributed real-time systems”, IEEE Sensors Journal, Volume 7, no.7, pp 1078-1090, July 2007.7)M.Jackson; D.Besnard; C.Gacek; C.Jones, “The Structure of Software Development Thought” Structure for Dependability: Computer-Based Systems from an Interdisciplinary Perspective, pp 228-253, April 2006.

References

26July 20th 2009 ECE750 T11 Project Presentation - 1

Page 27: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

8) N.Admodisastro; G.Kotonya, “Architectural analysis approaches: A component-based system development perspective”, Lecture Notes in Computer Science Volume 5030, pp. 26-38, July 2008.

9) P.Zave; M.Jackson, "A Component-Based Approach to Telecommunication Software", IEEE Software, Volume 15, Issue 5, pp. 70-78, September 1998.

10) S.Wang; S.Rho; Z.Mai; R.Bettati; W.Zhao, “Real-time component-based system”, Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium, Volume 7, Issue 7-10, pp 428-437, March 2005.

11) S.White; J.Hanson; I.Whalley; D.Chess; J.Kephart, “An Architectural Approach to Autonomic Computing”, Proceedings of the 1st International Conference on Autonomic Computing, IEEE Computer Society Press, pp 2-9, May 2004.

12) W.Bond; E.Cheung; H.Goguen; J.Hanson; D.Henderson; M.Karam; K.Purdy; M.Smith; P.Zave, “Experience with component based development of a telecommunication service”, Component Based Software Engineering International Symposium, Volume 3489, pp.298-305, May 2005.

References

27July 20th 2009 ECE750 T11 Project Presentation - 1

Page 28: Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… · Project Presentation - 1 By Sohaib Sajid Hemamalini Vedachalam July 20th 2009 Professor:

The End

Questions? Comments? Concerns for the general well being of this or any other galaxy?

ApplicationGUI

Controller

Media Streaming Framework

(MSF)Projector

28July 20th 2009 ECE750 T11 Project Presentation - 1