martedì 10 marzo 2015

Ideas to restructure Plasma content delivery system

Last years at Gluon

During the past few years at Gluon Project we chose to adopt OCS (Open Collaboration Services) protocol in our distribution system, developing a minimal and working server and client that works on GamingFreedom.org. Gluon, however, never went into full production so people couldn't test our infrastructure and the distribution system never went above the "experimental phase".

Our mission

1) Develop further our OCS server in order to have it usable by every project that needs it. In this phase we'll need to refactor and prepare it to be installable and configurable easily. We'll include install/config scripts with a nice interface. It also will be full Attica/NewStuff compliant.

2) Implement Desktop and web client that will let users download and use content like apps, backgrounds, themes etc. The Desktop client will be written in Qt/QML and the web client will be web based.

We want in the end users to be able to get user created content for Plasma in an easy way from one single common place as well as for creators to upload it. Our secondary target is to unify Gluon and Plasma content server and implement user / login capabilities via KDE Identity in order to have a centralized infrastructure. Our dream is to have a common desktop environment experience also regarding the content distribution system across all distributions

This is a scheme of the future structure:

Technology stack

We have in plan to develop OCS server and client libraries at the same time, creating a full set of classes that are shared between the both libs. This will enhance manteinability and modularity having a php library for both uses that shares most of the model codebase.


Now, having a working server we imagined the Plasma web client to be built on top of the OCS client library (of course), using php/mysql (or generic sql database) and for the client part HTML, CSS, a bit of jQuery and maybe the opensource library famo.us (we still need to do some feasibility studies on this latest).

Why

  • Openess of OCS protocol, simple interface in human-readable REST / XML / JSON
  • Ownership of KDE project of their content distribution system (we'll have a full working in-house implementation)
  • Merge of Gluon games, backgrounds, themes etc... all in a single place, with a single unique login on KDE Identity. This also enhances in users the concept of KDE as a full desktop environment with the same content across various distribution opposed to other semi-proprietary implementations (like Canonical's one)
  • Modularity of the server and clients. OCS is a wide protocol and potentials are there. For example I implemented a real-time chat between users in Gluon Player. This could give us some ideas to brainstorm.

Projects

  • ocs-server at https://projects.kde.org/projects/playground/www/ocs-server, and Gluon Player (includes gluon player libraries that wraps libattica)
     written by me, Claudio :)
  • "Plasma AppStore" (name is just a placeholder), consisting in Desktop client and Web client, by Francesco Wofford, my guest in this blog post
We already started to work on a few prototypes because we really care about this project so we're asking for feedback from all of you. We're going to propose those projects as GSoC with KDE so feel free to drop your comments below. We need them!

Have a nice day! And have a cookie! :)

3 commenti:

  1. Hello, that sounds like a wonderful idea! kde-look.org is becoming very unpleasant to use and the content is quite outdated.

    Have you looked at bodega? I remember reading a while ago that it was intended to be the new KDE content delivery system, but don't know why it became quiet..

    Anyways, good luck with the project!

    RispondiElimina
  2. I had the same question. What's your relationship to Bodega:
    https://projects.kde.org/search?projects=1&q=bodega

    RispondiElimina
  3. Right, so i tried to comment earlier, but my comment was lost, as it turns out... So here's the executive summary, because google apparently don't know how to code blog software.

    This project and bodega don't in any real sense have any relationship - they both try to solve similar issues (opendesktop.org is practically unmaintained, has a worrying bus factor, is closed, etc), but take different approaches (ocs-server uses established (though of course not faultless) web technologies and the same web api as the existing solution, bodega attempts to build the complete system from scratch using a developing and at times troublesome technology).

    More importantly, though, bodega came about somewhat later in 2012, where the gamingfreedom code began sometime around the 2011 time (though the concept is much older, inherent in the original gamingfreedom vision as developed during 2009) . It just sort of didn't dawn on us until recently that the work would be useful for other people... which, to be fair, is entirely my fault, and i do apologise for that :)

    So, bodega might be interesting as a side project, a new technology in its own right, where ocs-server is a nearly drop-in solution which should be able to work much easier with the existing functionality already available (we already use attica in gluon, which works fine, so we decided to just replace the problematic part rather than start from scratch).

    Hope that helps clear it up a bit :)

    RispondiElimina