[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [kDev] Beginning development



Hi Scott and All,

At 11:00 15/07/2002 +0100, Scott Switzer wrote:
>Overall Development Plan:  Does a development plan exist?  What about
>functionality specs, and architecture documents?  What is the status of
>Kendra development?  Where can I find this information?  (Kendra.org.uk
>does not have this information)

If it's not on the website then we don't have it yet. All these things would be great. I always feel a bit out of my depth here as I've never built these types of plans, specs or docs in a formal way. I'm not sure what they should contain. I *do* understand that we need these things.

It's difficult to isolate bits of Kendra when talking about development status as it's all interlinked and as a coding developer it's important to know about what marketing developers are up too (and vice versa). Since the launch in mid 2000 we've really been building up an understanding about what the Kendra project needs to be in order to fulfill it's goals. The goals are set but the methods/tools are not. Given the end goals we need to gather requirements from content owners, consumers and service providers to find out what they do now and how they'd like to do it better in the future. One way to attract people into the project and coax out their requirements is to provide them with a little something in return (rather than a grandiose promise of a future system to cure all content ills and nothing in the short term). The trials provide us with that marketing and also allow us to experiment/model with ways for the system to work.

Gathering requirements is key here and the process needs to be easy and scale-able. That's where a large part of my thoughts have been going:
[kFW] Needed: Collaborative systems for driving consensus...
http://www.kendra.org.uk/lists/archive/k-framework/msg00024.html
and that's a large reason why I want to set up Kendra Foundation so I can put into practice some of the tools we need to get in these requirements. My thoughts are that this is an ongoing process though some disagree and I welcome that discussion. You should read:
Re: [kGen] Kendra Status?
http://www.kendra.org.uk/lists/archive/k-general/msg00109.html
and the ongoing discussion:
[kGen] Iterative approach
http://www.kendra.org.uk/lists/archive/k-general/msg00110.html

>Development web site:  If development is going to be open source, should
>we develop a PHP web site, and hook it into SourceForge (or has this
>been done already?)  We can leverage the source code control, forums,
>and bandwidth resources of SourceForge this way.  (and, perhaps, attract
>some developers)

Development is open source see:
Re: [kDev] Licences for Kendra stuff...
http://www.kendra.org.uk/lists/archive/k-developers/msg00016.html

SourceForge would be cool or having the functionality would be cool. My main concern here is who's going to manage that process? Can they make a commitment to stick with the project or find a suitable replacement if they leave? If something goes wrong will *I* have to personally clean it up? When it comes to "source code control" - I know nothing. In my old age I'm getting cautious about putting myself in uncomfortable positions to ensure that this project moves forward.

As I've said, it's not fair to ask for this kind of consistent commitment from developers not getting paid to work on Kendra (either by their own company or whoever). That's another reason why I want to have Kendra Foundation so that I can hire at least 1 techy to manage and be responsible for the stuff you are talking about.

That's not to say that we can't do those things that your suggesting right now. However, while I'm solely *responsible* for this project relying on favours for critical functions needs to be kept to an absolute minimum. For example, if this wesbite had to be updated via a source code control system hosted by SourceForge and I could only modify the wesbite (which I continuously do) via SourceForge and we didn't have a contract with SourceForge to maintain their service then that's a potential problem. You may think this is rather over the top but I call it future damage limitation - I can then sleep and night! ;-)

My comments to your "Specific Functionality" list are purely my own and don't represent the total of what I think we should be doing in Kendra. It's about discussing these issues and finding people's requirement so I chip in here as having an interest in all but being an expert in none.

>Generalised Redirect System:  There are two companies that I know of
>which map IP address to physical location, with a >99% accuracy rate:
>Digital Envoy, and another business that starts with Q.  We used this
>technology to determine where requests were coming from, for Digital
>Rights Management, and eCommerce (e.g.  if we only had rights for a
>video in the UK, for example).  We looked into implementing a mini-CDN,
>where this technology would determine whether to stream from our
>European Server, our US Server, or our Asian Server.

So far, we've been talking more about network nearness rather than physical location. Network nearness would enable us to provide the file from the *best* point in the network taking into account server loads and network congestion which may not be the physically nearest server. Physical location could help with that too but is definitely needed for rights issues but then users would be registered (?) and so, if we belive what they tell us, then they'll give us their location.

>Metadata:  I have implemented systems which store customised metadata,
>based on file type.  Depending on the type of metadata, it can either be
>saved inside the metadata file (e.g. RAM file for Real, or ASX file for
>Microsoft), or put directly into the file.  If the metadata is going to
>live directly inside the file, I have found that this is best done on
>the fly, so that the metadata is always up to date.

Sounds good to me.

>Streaming Server:  Is Kendra going to build their own Streaming
>(MMS/RTSP/HTTP) server, or use existing streaming servers?  I have found
>limitations with existing streaming servers, especially in a distributed
>environment.  Specifically, they are not auto-updatable, so that your
>network is not really homogeneous (read: dependable).  Also, it is very
>difficult to do any real-time integration, so that files can be built
>and streamed at the same time (important for DRM and up-to-date
>metadata).  In addition, if you want to implement another protocol (e.g.
>HTTP for downloading files as well), a lot of integration work needs to
>be done.

Kendra is all about making things work together by providing intelligent glue. That glue is not only technological but psychological too. There are loads of people hours being poured into building streaming servers. If we built our own would that best help content owners, consumers and service providers? We'd just be another fish in the pond. If we built plugins to enable *all* existing streaming servers to operate in a better way - more aligned with Kendra's goal - then we'd be feeding the fish and hopefully they'd follow the trail of food as we coaxed them to better waters - more aligned with Kendra's goal.

I'm not saying we shouldn't build our own streaming server. It may be beneficial to do so as a guideline for other streaming server builders out there. However, building a complete working content distribution system in isolation to other people building complete working content distribution systems would just mean we're in competition with them and by definition Kendra is not in competition with anyone. - unless they're a megalomaniac and want to own everything in which case we just ignore them and they'll disappear. I love simple logic! ;-)

>Squid:  I have had success using the open-source Squid proxy server as a
>cache for files on a CDN.  It may be worth using in place of a
>home-grown LRU cache.

Eeeerrr... Cool!

>Integration:  Depending on the high level goals of this project,
>defining which products to integrate with at the start of the project is
>key (I have been burned by this before).  Is the goal of Kendra to be as
>horizontal as possible, or are there products which can be targeted for
>integration first?  Some initial thoughts that come to mind are Digital
>Asset Management systems on the corporate side, and P2P systems on the
>consumer side.

By horizontal I'm taking you to mean work across the field. In which case, yes, Kendra is horizontal. It has to relevant to everyone in the content value chain (from content owners to consumers and back again). Just did a search for "content value chain" on Google - interesting:
http://www.google.com/search?as_epq=content+value+chain&as_sitesearch=www.kendra.org.uk

You are right, we should make a stab at defining which products to integrate with first. Which ones will give us the most coverage with the community we want to get to at that point. New products will come along. We have to remain flexible. Glue that glues all!

>Searching for Content:  Are there any ideas on how to find content on
>the Kendra system?  Perhaps using some sort of searching interface, or
>partnering with a searching portal would be useful.  I am sure that
>there are quite a few sites which allow searching for audio and video
>files.  Is part of the Kendra initiative to sponsor an 'open directory'
>for content?

I'm glad you mentioned interface. My whole thinking on this is to get the interfaces sorted first along with the business models and then we start to fix some technological glue. Again that's not to say we don't start building models (coding software) of what we want the Kendra system to be before we have everyone's requirements - let's call these 'trials' - a non-threatening word. The trials will pull more people into the project as they start to become useful and in turn they'll inform us of their requirements and then we'll refine the software and protocols and so on until it works.

What you call 'open directory' I've described as 'content space' (go on, do a Google search on Kendra). I've likened it to having for content what we have for webpages. Any content viewer/browser being able to search/view content (movies, music, text or any digital content) on a distributed network (Internet) with a common naming system - or, at least, a common set of documented naming systems - to cater for "I'm not using your naming system" scenarios.

Realising that I've actually said a lot of this before and much of it is up on the Kendra website in some form or other. Perhaps putting a search engine interface on the site would help...

Cheers Daniel