advertisement

Kamaelia - Fave 2005

50 %
50 %
advertisement
Information about Kamaelia - Fave 2005

Published on October 7, 2007

Author: kamaelian

Source: slideshare.net

Description

This was a talk on Kamaelia, Open source & challenges Kamaelia was originally designed to help explore solutions to.
advertisement

Kamaelia Michael Sparks BBC Research & Development Fave 2005, Bristol, UK

http://kamaelia.sourceforge.net/Challenges/ Challenges The BBC will launch a Creative Archive - free access to BBC content for learning, for creativity, for pleasure. The BBC will make its services available when and where people want them, with a new generation of BBC on-demand services. Building Public Value, Chapter 2 http://www.bbc.co.uk/thefuture/bpv/media.shtml • This cause many challenges, from rights through to technology • BBC R&D exists to make technologies to make decisions possible ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Changing Technology • Today - the past 10 years • Mobiles - true converged device, stor • Network x10, Storage x 1000, CPU just stalled, but > x 300 • Games - Interactive movies, gesture interfaces • Your video collection can travel with you • 10 years off??? • Storage x 1000 ? • Network x100, pervasive, expectation of data movement • CPU - massively parallel (PS3 etc) ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Challenges 500,000 hours of audio is fridge sized today, at consumer bit-rates 10 years from now: with you always? Challenge: How do we deliver a BBC repository, dozens of TB in size to 20 million homes, dealing with disk failures and data loss. ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Challenges “Share with your sister!!!” - parents since time began “What CD/Tape shall we get little Jonny?” Digital Rights (not restrictions) Management Challenge: Provide systems, acceptable to a mature audience that foster a legal sharing culture, but ensuring that people are still paid for producing content, whilst recognising that the audience will create a lot of content themselves. ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Challenges New Technologies - proprietary at first, open later Past Future Real, Microsoft, Open Codecs Apple, Java Open Protocols Applet systems Open Platforms Audience growth x1000 Challenge: Open systems for media delivery must be made to scale to very large scale unidirectional streaming ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Challenges Live and non-live very different - not just streaming P2P Multicast Multiple ‘casters’ Application based Network based Good for non-live Good for live Variable network Non-variable network Challenge: Need for protocols spanning these systems - collaborative client-hub protocols - allowing integration between P2P, Multicast, Broadcast, whilst ensuring security allowing the audience to trust these systems ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Challenges “Any speed you can have, I can have faster Any quality you can have, I just want best” If my capacity to serve grows 1000 times, but your capacity and desire to consume grows 1000 times, we cannot serve 1000 times as many people. Challenge: To find a way of capping the need for bandwidth usage (for quality) on the client side. This means higher quality video at lower bit rates becomes more important with time to eliminate issues caused by a “network moore’s law” ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

http://kamaelia.sourceforge.net/Challenges/ Challenges “The Free Lunch is Over” PS3 - 9 CPUs Concurrency is hard XBox 360 - 3 (Dancing, driving, lego... ?) Intel - 100 Cores? Not a problem for audience... Major problem if designing systems with a 10 year perspective Challenge: Create a usable system for producing parallel software systems that promotes reuse, resilience, scales on new concurrent hardware platforms, and due to design naturally encourages the design of parallel software systems ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Challenges Challenge: Create a usable system for producing parallel software systems that promotes reuse, resilience, scales on new concurrent hardware platforms, and due to design naturally encourages the design of parallel software systems ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Kamaelia: aka What? • Mechanism for building systems out of components resembling unix pipelines/hardware systems • Aims to make building Interesting systems quick, simple, easy, fun and naturally concurrent. • Encourages heavy, easy re-use, like Unix • BBC R&D, Digital Media Group • Same group as Dirac, TV-Anytime • However, this ain’t Unix... ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Kamaelia Graphlines • Unlike Unix • 1-D, 2-D, n-D • Pipelines & Graphlines • Data is any data object, not just text • Much richer environment • Concepts of Services ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Who? • Michael Sparks, Matt Hammond, Joseph Lord • Core systems, bulk of Kamaelia • Pre-University Trainee: Ciaran Eaton • Built a video streaming to mobiles in 3 months • No prior experience of technology • Summer Vacation Trainee: Tom Gibson • Built multicast island joining tools , 6 weeks, No prior experience of technologies in use. • You? ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Example Systems • Streaming Ogg Vorbis over TCP • Streaming Ogg Vorbis over Simple Reliable Multicast • Network/Graph viewers (including looking inside Kamaelia systems) • Command line shell • Simple games • Network Streaming Subtitling • Presentation tools (this this one) ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Platforms • Written in Python, also have C++ version • Runs on Linux, Mac OS X, Windows, Nokia Series 60 phones, also likely to run on Maemo happily • Components can be written in... • Python • C, C++ • Pyrex • Perl (via hack...) • etc... ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Why Open Source? • Release? • Technology is not the BBC’s core business. Developing anyway. No contribution is not failure. Assists standardisation - enables peer review • We maximise the benefit to the BBC and the BBC’s community of users from the investment the BBC makes in R&D. • Use ? • Technology evaluated on its merits, not special (not strange) • Why proprietary? • Take Real - why? Most open, scalable solution at the time. (we don’t tell you to use “windows, sony, philips, etc”) ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

How? • Components • Class with single “return and continue” based function, OR implements 3 callbacks, or runs as a thread • Inboxes/Outboxes • Linkages • Scheduler • Co-ordinating Assistant Tracker • Think Unix environment & PATH • “Find me ‘ls’, so I can run it” ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

What’s Available? • Wide variety suited to networked multimedia: • Simple SDL based window/surface manager • Simple Pygame based Game toolkit • Basic Tk window toolkit integration • Rate limited file system access • Generic TCP Client/Server & Multicast components • Think turbo powered netcat/nc, easily multicast proxy over TCP, overlays, servers • Ogg Vorbis & Audio decode/playback components • These can all be use together or independently - “Infinite Diversity in Infinite Combination” - just like programs in shells scripts ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Coming... • Swarming P2P component (protocol for upper layers) • Generic Multicast tunnelling/overlay peer • Automated Swarming Multicast Island Joiner • GUI for building pipelines from existing systems • NEW! Demo! • More! (What do you want in 10 years time? Use Kamaelia to build it now!) ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Example Pipelines • Now to show some example pipelines and graphlines • Going to whizz through, the idea is to give flavour, not detail ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

TCP Streaming System Example 2 server=SimpleServer( protocol=AdHocFileProtocolHandler(file_to_stream), port=clientServerTestPort).activate() pipeline( TCPClient(quot;127.0.0.1quot;,clientServerTestPort, chargen=1), VorbisDecode(), AOAudioPlaybackAdaptor() ).run() ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Multicast Streaming System Example 4a # Server pipeline( ReadFileAdaptor(file_to_stream, readmode=quot;bitratequot;, bitrate=400000, chunkrate=50), Multicast_transceiver(quot;0.0.0.0quot;, 0, quot;224.168.2.9quot;, 1600), ).activate() # Client pipeline( Multicast_transceiver(quot;0.0.0.0quot;, 1600, quot;224.168.2.9quot;, 0), detuple(1), VorbisDecode(), AOAudioPlaybackAdaptor(), ).run() ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Simple Reliable Multicast Streaming System Example 4b # Server with simple added reliabilty protocol pipeline( ReadFileAdaptor(file_to_stream, readmode=quot;bitratequot;, bitrate=400000, chunkrate=50), SRM_Sender(), blockise(), # Ensure chunks small enough for multicasting! Multicast_transceiver(quot;0.0.0.0quot;, 0, quot;224.168.2.9quot;, 1600), ).activate() # Client with simple added reliability protocol pipeline( Multicast_transceiver(quot;0.0.0.0quot;, 1600, quot;224.168.2.9quot;, 0), detuple(1), SRM_Receiver(), detuple(1), VorbisDecode(), AOAudioPlaybackAdaptor(), ).run() ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Presentation Tool Example 8 Graphline( CHOOSER = Chooser(items = files), IMAGE = Image(size=(800,600), position=(8,48)), NEXT = Button(caption=quot;Nextquot;, msg=quot;NEXTquot;, position=(72,8)), PREVIOUS = Button(caption=quot;Previousquot;, msg=quot;PREVquot;,position=(8,8)), FIRST = Button(caption=quot;Firstquot;, msg=quot;FIRSTquot;,position=(256,8)), LAST = Button(caption=quot;Lastquot;, msg=quot;LASTquot;,position=(320,8)), linkages = { (quot;NEXTquot;,quot;outboxquot;) : (quot;CHOOSERquot;,quot;inboxquot;), (quot;PREVIOUSquot;,quot;outboxquot;) : (quot;CHOOSERquot;,quot;inboxquot;), (quot;FIRSTquot;,quot;outboxquot;) : (quot;CHOOSERquot;,quot;inboxquot;), (quot;LASTquot;,quot;outboxquot;) : (quot;CHOOSERquot;,quot;inboxquot;), (quot;CHOOSERquot;,quot;outboxquot;) : (quot;IMAGEquot;,quot;inboxquot;), } ).run() ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Simple Game Example 9 (part of!) Graphline( newCat = newCat, rotator = loopingCounter(rotation_speed), translation = cartesianPingPong(position,screensize[0],screensize[1],border), scaler = bouncingFloat(scale_speed), imaging = continuousIdentity(cat), shutdown_fanout = fanout([quot;rotatorquot;,quot;translationquot;,quot;scalerquot;, quot;imagingquot;,quot;self_shutdownquot;]), linkages = { (quot;rotatorquot;,quot;outboxquot; ) : (quot;newCatquot;, quot;rotatorquot;), (quot;translationquot;,quot;outboxquot; ) : (quot;newCatquot;, quot;translationquot;), (quot;scalerquot;,quot;outboxquot; ) : (quot;newCatquot;, quot;scalerquot;), (quot;imagingquot;,quot;outboxquot; ) : (quot;newCatquot;, quot;imagingquot;), (quot;newCatquot;, quot;signalquot; ): (quot;shutdown_fanoutquot;, quot;inboxquot;), (quot;shutdown_fanoutquot;, quot;rotatorquot;) : (quot;rotatorquot;, quot;controlquot;), (quot;shutdown_fanoutquot;, quot;translationquot;) : (quot;translationquot;, quot;controlquot;), (quot;shutdown_fanoutquot;, quot;scalerquot;) : (quot;scalerquot;, quot;controlquot;), (quot;shutdown_fanoutquot;, quot;imagingquot;) : (quot;imagingquot;, quot;controlquot;), (quot;shutdown_fanoutquot;, quot;self_shutdownquot;) : (quot;shutdown_fanoutquot;, quot;controlquot;), } ).activate() ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Writing Components • Write as you would normally (ignore concurrency), write the smallest, simplest possible solution • Lends itself to test driven development • Change all inputs to come from inboxes • Much like changing a program to read from stdin • Change all outputs to outboxes • Much like changing a program to write to stdout • This approach tends to generate small reusable components and simpler more scalable systems (oddly) ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Fun Ideas... • Bunch of random things you could do using Kamaelia: • Paint program using alpha blending; Rapid Graphical Systems Building; Shared whiteboards, join rooms over network pipes using cheap projectors, 3D “sprite” components • Stuff we may do: • Automated distribution over clusters, Kamaelia Component Repository, Automated Intelligent cluster distribution, Component and code migration (take your system with you), compile to silicon? • Computers not getting in the way of doing things... ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Demos GUI System Builder Introspection Simple Game ©2005 BBC. Part of the Kamaelia project, http://kamaelia.sourceforge.net/ BBC R&D michaels@rd.bbc.co.uk

Add a comment

Related pages

FAVE 2005: Open Source Creativity in Bristol, UK [LWN.net]

The FAVE 2005 event will take place in Bristol, UK on August 20, 2005. "FAVE is a new event for people who are interested in free and open source creative ...
Read more

FAVE 2005 | Random and Irrelevant

The Free Audio and Video Event last Saturday at the Trinity Centre in Bristol was an intriguing day. There was a lot of stuff packed into the schedule and ...
Read more

Fave Wall1 - Documents

Kamaelia - Fave 2005 This was a talk on Kamaelia, Open source & challenges Kamaelia was originally designed to help explore solutions to.
Read more

Audio Libre Audio Libre - mondodesigno.com

FAVE 2005 was held at the Trinity Centre, a large former church in the centre of the city. ... Kamaelia platform, described in this column in
Read more

Fave 5 images - Education - docslide.us

Fave 5 images. by jakestar09. on Jun 23, 2015. Report Category: Education. Download: 0 Comment: 0. 199. views. Comments. Description. hi. Download Fave 5 ...
Read more

August | 2005 | Random and Irrelevant

Monthly Archives: August 2005 Post navigation ... but it wasn’t until FAVE last Saturday that I got a chance to see the LTSP suite up and running, ...
Read more