User Tools

Site Tools


events:gsoc2013

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
events:gsoc2013 [2013/03/12 12:27]
sunweaver [PyHoca-PubAppDaemon - transparent X2Go Published Applications Integration into local Desktops]
events:gsoc2013 [2013/03/15 00:24]
sunweaver [Google Summer Of Code 2013]
Line 1: Line 1:
-====== Google Summer Of Code 2013 ======+====== Google Summer of Code 2013 ======
  
 ===== Contact Information for Applying Students ===== ===== Contact Information for Applying Students =====
Line 32: Line 32:
 However, if you do not sense affinity to any of the project ideas listed below, feel free to propose your own code project idea. However, if you do not sense affinity to any of the project ideas listed below, feel free to propose your own code project idea.
  
-==== X2Go Client / X2Goplugin on Chromebooks ====+==== X2Go Client / X2Go Plugin on Chromebooks ====
   * As [[http://en.wikipedia.org/wiki/Chromebook|Chromebooks]] are a kind "Thin Client" "look-alikes", it would be a good idea to be able to access Linux machines via X2Go.   * As [[http://en.wikipedia.org/wiki/Chromebook|Chromebooks]] are a kind "Thin Client" "look-alikes", it would be a good idea to be able to access Linux machines via X2Go.
   * As it is only possible to install applications on chromeOS (running on an original chromebook) via the [[https://chrome.google.com/webstore/category/home|Googles webstore]] of Google Chrome, X2Go Client needs to packaged for [[https://chrome.google.com/webstore/category/home|Googles webstore]]. Preferences and maybe session files should be altered and committed, so that users can sync them with their Google account.   * As it is only possible to install applications on chromeOS (running on an original chromebook) via the [[https://chrome.google.com/webstore/category/home|Googles webstore]] of Google Chrome, X2Go Client needs to packaged for [[https://chrome.google.com/webstore/category/home|Googles webstore]]. Preferences and maybe session files should be altered and committed, so that users can sync them with their Google account.
Line 46: Line 46:
   * The weakness of X2Go definitely is the NX Xserver used for display server session on the client   * The weakness of X2Go definitely is the NX Xserver used for display server session on the client
   * This coding project would be a start to gradually update the Xserver extensions shipped with NX   * This coding project would be a start to gradually update the Xserver extensions shipped with NX
-  * During this project you will get a deep insight into Xserver code. You need good C and Cplusplus skills to start this code project.+  * During this project you will get a deep insight into Xserver code. You need good C and Cplusplus skills to start this code project. You have to be a magician with C coding debugging tools!!!
  
 ==== X2Go Desktop Applet ==== ==== X2Go Desktop Applet ====
Line 62: Line 62:
     * Add a session profile storage (on a per-user basis) based on e.g. MongoDB     * Add a session profile storage (on a per-user basis) based on e.g. MongoDB
     * Make these session profiles configurable through a nice WebGUI     * Make these session profiles configurable through a nice WebGUI
-  * The current public implementation of the X2Go Session Broker is written in Python.+  * The current public implementation of the X2Go Session Broker is written in Python. The difficulty is medium. Interests in Web2.0 development strategies is of advantage.
  
 ==== JSON based protocol for communication between X2Go Client and X2Go Session Broker ==== ==== JSON based protocol for communication between X2Go Client and X2Go Session Broker ====
Line 68: Line 68:
   * JSON is a very appropriate data format when two applications what to exchange data objects via text base communication streams   * JSON is a very appropriate data format when two applications what to exchange data objects via text base communication streams
   * Currently, X2Go Client and X2Go Session Broker currently communicate over a plain text base communication protocol. This protocol is not very tolerant about errors   * Currently, X2Go Client and X2Go Session Broker currently communicate over a plain text base communication protocol. This protocol is not very tolerant about errors
-  * To make the client<->broker communication more robust, this shell be changed to X2Go Client+  * To make the client<->broker communication more robust, this shall be changed to X2Go Client
   * However, transparent backward compatibility must be granted at the same time: new X2Go Clients must continue to be able to speak the older broker protocol, new X2Go Session Brokers must be able to understand old X2Go Clients   * However, transparent backward compatibility must be granted at the same time: new X2Go Clients must continue to be able to speak the older broker protocol, new X2Go Session Brokers must be able to understand old X2Go Clients
 +  * Good knowledge of Qt4 and Cplusplus are required for this task
  
-==== Interface between LightDM's remote login feature and X2Go Session Broker ==== 
- 
-  * The remote login feature in LightDM uses UCCS for session brokerage. The UCCS is a very public service. The main caveat is: UCCS offers to store user passwords and these passwords (at time of Ubuntu 12.10 and Ubuntu 13.04) get stored in plaintext at Canonical (or at least can be easily unhashed). A site admin surely would love to have such a web portal as UCCS at hand, so that the remote login feature can be used on the local network without Canonical as the brokerage provide in the loop. 
-  * This code project is to provide a drop-in replacement for the Ubuntu package ''lightdm-remote-session-uccsconfigure'' that replaces UCCS with the X2Go Session Broker as session brokerage provide 
-  * The users shall then be able to use LightDM's remote login feature to launch X2Go and RDP sessions. The session profiles will be provided by the X2Go Session Broker 
-  * Versatile skill are needed for this: C, Cplusplus, XML, JSON, Python. 
        
 ==== PyHoca-PubAppDaemon - transparent X2Go Published Applications Integration into local Desktops ==== ==== PyHoca-PubAppDaemon - transparent X2Go Published Applications Integration into local Desktops ====
Line 86: Line 81:
  
   * X2Go offers a feature called X2Go Published Applications   * X2Go offers a feature called X2Go Published Applications
-  * The feature allows starting of X2Go sessions of the type PUBLISHED on remote application servers. This session merely returns an application menu tree (and a slumbering x2goagent). Currently this menu tree is rendered by X2Go Client / PyHoca-GUI as a submenu of their systray icon+  * The feature allows starting of X2Go sessions of the type PUBLISHED on remote application servers. This session merely returns an application menu tree (and a slumbering x2goagent). Currently this menu tree is rendered by X2Go Client / PyHoca-GUI as a submenu of their systray icon. From this menu tree you then can select individual applications to get launched within your local desktop shell
   * However, how would it be if one could smoothly merge the remote menu tree into the local desktops application menu?   * However, how would it be if one could smoothly merge the remote menu tree into the local desktops application menu?
   * Or even more, drag'n'drop icons from the local desktop's menu tree onto the local desktop?   * Or even more, drag'n'drop icons from the local desktop's menu tree onto the local desktop?
   * Or even better, dock those applications to Unity's Launcher?   * Or even better, dock those applications to Unity's Launcher?
   * An approach to realize this would be a split up of PyHoca-GUI: PyHoca-PubAppTrigger and PyHoca-PubAppDaemon.   * An approach to realize this would be a split up of PyHoca-GUI: PyHoca-PubAppTrigger and PyHoca-PubAppDaemon.
-    * On remote login (LightDM) a guest (Ubuntu) session gets launched and in the background PyHoca-PubAppDaemon waits for commands via a unix domain socket fileĀ +    * On remote login (LightDM) a guest (Ubuntu) session gets launched and in the background PyHoca-PubAppDaemon waits for commands via a Unix domain socket fileĀ 
-    * PyHoca-PubAppDaemon can be queried for server-side provide applications (a list of .desktop files plus base64 encoded icons)+    * PyHoca-PubAppDaemon can be queried for server-side provided applications (a list of .desktop files plus base64 encoded icons)
     * The returned menu items are merged into the local application menu     * The returned menu items are merged into the local application menu
-    * A click on one of those (local) .desktop files (executing a published application) while launch PyHoca-PubAppTrigger. This trigger talks to the PyHoca-PubAppDaemon and initiates the launch of server-side application (via the X2Go Published Applications feature)+    * A click on one of those (local) .desktop files (executing a published application) will launch PyHoca-PubAppTrigger. This trigger talks to the PyHoca-PubAppDaemon and initiates the launch of the requested server-side application (via the X2Go Published Applications feature)
    
-The task is rather complex and demands quite a bit of understanding of the FreeDesktop specifications. The whole project will be in Python. A draft for the login process is already available on X2Go Git (projects: ''lightdm-remote-login-x2go'' and ''libpam-x2go'')+The task is rather complex and demands quite a bit of understanding of the FreeDesktop.org specifications. The whole project will be in Python. A draft for the login process is already available on [[http://git.x2go.org|X2Go Git]] (projects: ''lightdm-remote-login-x2go'' and ''libpam-x2go'').