Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… ·...
Transcript of Component Based Media Streaming FrameworkFrameworkltahvild/courses/ECE750-11-S09/mater… ·...
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
OutlineIntroduction
Glossary of TermsProblem Statement
Approach Current StatusExpected ResultsRelated ResearchReferences
2July 20th 2009 ECE750 T11 Project Presentation - 1
OutlineIntroduction
Glossary of TermsProblem Statement
Approach Current StatusExpected ResultsRelated ResearchReferences
3July 20th 2009 ECE750 T11 Project Presentation - 1
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
IntroductionContainer Format/Parser/Muxer example:
ASF (Container) Format MP4 (Container) Format
Muxer
RawAudio/Video
Data
Parser
5July 20th 2009 ECE750 T11 Project Presentation - 1
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
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
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
OutlineIntroduction
Glossary of TermsProblem Statement
Approach Current StatusExpected ResultsRelated ResearchReferences
9July 20th 2009 ECE750 T11 Project Presentation - 1
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
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
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
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
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
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
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
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
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
OutlineIntroduction
Glossary of TermsProblem Statement
Approach Current StatusExpected ResultsRelated ResearchReferences
19July 20th 2009 ECE750 T11 Project Presentation - 1
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
OutlineIntroduction
Glossary of TermsProblem Statement
Approach Current StatusExpected ResultsRelated ResearchReferences
21July 20th 2009 ECE750 T11 Project Presentation - 1
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
OutlineIntroduction
Glossary of TermsProblem Statement
ApproachCurrent StatusExpected ResultsRelated ResearchReferences
23July 20th 2009 ECE750 T11 Presentation - 1
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.
OutlineIntroduction
Glossary of TermsProblem Statement
ApproachCurrent StatusExpected ResultsRelated ResearchReferences
25July 20th 2009 ECE750 T11 Presentation - 1
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
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
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