August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)

Project Task Page: GoogleSummerOfCode2006

To be filled in now. (The template form for this was created after GSOC finished. Why? This template form was invented some months later!)

Description

Status: Completed
Current Developers: Michael Sparks
Current "inflight" dev location: /Sketches/{RJL|THF|AM|DL}
Start Date: May 2006
Expected End Date: Aug 2006
End Date: Aug 2006
Date this page last updated: 31 December 2006
Estimated effort so far: 9 man months

Kamaelia & Dirac were involved with Google's summer of code this year - the core aims of this task were to introduce students to open source in the context of useful Kamaelia & Dirac based projects.

NB, this page largely discusses Kamaelia's involvement in SoC.

The end result of involvement is twofold. For the students, there is a general aim in becoming a better software engineer rather than "just" a coder). For Kamaelia & Dirac there is an aim to generate a collection of useful code, & documentation increasing the usefulness of Kamaelia & Dirac overall, increasing the project's utility and toolset. Ideally, a good outcome would be for the students to become fully fledged developers taking part in directing development of the project and taking ownership of their code. (This is an ideal however, not an expectation!)

Google have now run summer of code now for 2 years. This year, google invited organisations running open source projects to apply to be mentor organisations. BBC Research applied and was accepted. We were granted 6 student slots for Summer of Code. 4 of which were allocated to Kamaelia and 2 to Dirac. This split represented the fact that the bulk of applications were for Kamaelia rather than Dirac.

Historically, BBC research has mentored summer/pre-university students in the past. Furthermore, Kamaelia has an aim of being usable and useful to the average novice developer - as a result having relatively inexperienced developers is useful (in practice there was a range of experience).

Benefits:

Students gain experience of participation in an open source project and seeing how an open source project can be run.

Students learn the difference/discipline of software engineering, rather than just coding.

Increased understanding of aims & ways of working between Google & BBC Research. (I seriously think this is something that has happened - so far perhaps only between the two teams on either side, but that's a good start!)

An increased set of components for Kamaelia, increasing it's attractiveness to all users

An opportunity to test the ease of use (vs learn) for Kamaelia by relative novices.

An expansion of the problem space which Kamaelia can be used for.

Further development of lightweight project management processes/crossed with open source best practice. (these project task pages are in a way a direct descendant of our way of working, combined with the way we asked students to detail their work)

Inputs

Task Sponsor: Michael Sparks

Task Owner: Michael Sparks

Developers involved in the task at some point

Users:

Interested third parties

Requirements

The following is the student's own synopsis of their work prior to starting.

Creation of an integrated BitTorrent component for Kamaelia

Ryan Lothian

Kamaelia currently lacks a P2P toolset for content delivery. Adding BitTorrent client functionality to Kamaelia would allow BitTorrent to act as an end-point for a component chain.

Eventually this could lead to the BBC being able to distribute many terabytes of its TV and radio archive without incurring massive bandwidth requisites.

3D widget framework

Thomas Flanitzer

The project will provide a framework for a 3D user interface for Kamaelia. Several 3D widgets as well as a space manager will be implemented as components. Using these, a basic 3D user interface will be easy to create. If there is sufficient time, I will also experiment with more advanced components, to see in what direction the whole idea could develop.

An example application that uses all developed components will also be written. This will most likely be an image browser or video viewer, dependent on which components will be realized. It will help to collect experience with 3D interfaces and their use for Kamaelia.

Trusted Communications for Kamaelia Components

Devendra Laulkar

The aim of the project is to provide a Security Framework for Kamaelia components. Specifically to build a security component to provide services like Authentication and Integrity to Kamaelia components. This can help ensure the privacy of the users of the system. Ensuring privacy would result in an increased trust in the system.

Key Predistribution Infrastructure (KPI) base trusted communication framework for Kamaelia

Anagha Mudigonda

Kamaelia is set of components that can be assembled to create media/network apps. However there are no components that address trusted communication. By developing KPI based trusted communication framework, BBC Research team can easily enable secure communication for online or offline media transfers.

Trusted communications project requires a set of components that address authentication, integrity and privacy. These components will be built using Kamaelia component architecture principles. These components would expose high level security abstractions to applications like video multicast, video mail, whiteboard messaging etc.

Outputs

This section is largely about WHAT has been produced, normally by WHO (in order to provide a point of contact)

Expected

In the student's own words...

Creation of an integrated BitTorrent component for Kamaelia

Creation of an Kamaelia component or components able to

  1. Be controlled by other Kamaelia components
  2. Download data using the BitTorrent protocol
  3. Upload data using the BitTorrent protocol
  4. Create .torrent files for serving based on messages from other components

Documentation for the new components /ongoing until end of project/

Given sufficient time the following extra features will also be implemented

Tracker interaction

  1. Automatic upload of .torrent files to a webserver for distribution
  2. Automatic download of new .torrent files from a webserver

...

  1. Deconstruction of a data stream into separate blocks
  2. Reconstruction of downloaded blocks a single logical stream

User interface that abstracts the process from users, presenting a simple stream/programme selection, reconstructed the stream as the earlier parts are played


3D widget framework
Will deliver

given sufficient time

Trusted Communications for Kamaelia Components

Core Deliverables:

Key Predistribution Infrastructure (KPI) base trusted communication framework for Kamaelia

Actual

To be filled in.

Realistic possibilities arising as a result of activity on this task

To be filled in.

Tasks that directly enable this task (dependencies)

Sub Tasks

Task Log

To be filled in. Probably cadge the data from the weekly "done" reports.

Discussion

This page is a work in progress to capture work on Kamaelia over the past 12 months. It's difficult to ignore GSOC, but this page was missing, hence why its been added.

-- Michael Sparks, December 31st 2006