Dear Ubuntu developers,<br><br>I am Yang Jie, a 2nd-year MSc student in Xi'an Jiaotong University from China. I am especially
interested in the project of <b>GNOME centralized file sharing
administration</b> and want to apply for this project.
<div><br></div><div>It has been multiple years since I had chosen Ubuntu as my
major OS due to its <span style="font-family: arial,sans-serif; line-height: 20px;">humanized</span> and convinence( of course, another
important reason is that it's a Linux OS). I had got
some opportunities to handle some administration tasks based both on
Ubuntu Server & Desktop Edition, when I contributed a file server
with samba & nfs, so I have had some basic knowledge about them.
<br><br>Additional, my group do researches mostly on Linux, and I have some experience on Open Source projects as well as a strong background of C++ & Perl, so I think I am fit
for this job. <b>The link of my proposal on the Ubuntu wiki is as follows:</b><br><a href="https://wiki.ubuntu.com/GSoC/2010/YangJie" target="_blank">https://wiki.ubuntu.com/GSoC/2010/YangJie</a><br></div><div><br></div>
<div>Be so kind to give me any adivce, please! Your advices will considerably encourage me. I will be keeping on with the improvement of my proposal, to make it as clear and proper as possible. I will try my best to give a <span style="font-family: arial,sans-serif; line-height: 20px;">humanized</span> file
sharing administration tool with quality, as my contribution to Ubuntu. I am the one for it!<br><br>The following is an abstract and some teasers of my proposal:<br><br>Abstract<br><br>In this proposal, an <i>extendible </i>GNOME centralized file
sharing administration tool is designed. It provides a <i>uniform </i>UI just
like Nautilus to browse and control the shared/sharable directories
based on protocols, which gives users a humanized interface to manage
their sharing intuitively and conveniently. The tool works based on a
set of <i>Schema files </i>in which record the necessary properties, scripts
and service libraries of specified protocols, and the whole
configuration work flow is managed by a <i>configuration manager
</i>implemented from a uniform interface, also based on specified protocols.
Both of the above features make it easy and convenient to add new
protocols to this tool, making it <i>a extendible architecture for long
time evolution</i>.<br><br>How will the tool serve for users & developers?<br><br><div>1. The centralized file sharing manager has a <b>main workspace </b>similar with nautilus and a <b>administration tool </b>with individual interface. File sharing tasks are
carried out as the following method: Any of the mounted
network places through Samba/NFS are detected and shown in the workspace
of this tool, just like the style of nautilus. Users click on a mount
point to open nautilus and browse the files or right click on it to get
the details.</div><div>2. People also use the menu bar or context menu
in the tool to open the <b>administration tool</b>, in which users setup some parameters and mount a new network place. The required parameters, such
as protocols, URLs, folder path and mount points and so on, are all
given through a dialog box. Note that currently only samba and NFS is
supported.</div><div>3. Support for certain protocols should be <b>designed
as module</b>, so that the future work on <b>extend for other protocols are easy</b> to
be carried out.</div><br>A tentative project architecture !<br><ol type="1"><li><p class="line862">My experience considered, I choose <b>Perl </b>as my
main language, <b><a class="http" href="http://gtk2-perl.sourceforge.net/">gtk2-perl</a></b>
as the graphical library to develop the GUI and <b>Moose </b>as the OO
framework when developing the backend; <span class="anchor" id="line-35"></span></p></li><li>The tool will be completed after 2 months with the 1st alpha version, the tool will be able to support <b>
Samba and NFS </b>file sharing; <span class="anchor" id="line-36"></span></li><li>The
tool setup the configurations based on <b>a set of Schema files</b>. These
files are all XML files. According to the configuration files of a
specified protocol, Those files record the necessary properties in the
conf file and their meta-properties, scripts, and deb libraries to
install the services. The Schema file is the base of this tool; <span class="anchor" id="line-37"></span></li><li>There are three levels in
the design of its architecture. <span class="anchor" id="line-38"></span><ul><li>The
<b> UI </b>level has three modules. The main workspace is where the shared
directories are mounted and shown automatically and most operations
towards sharing directories take place. The administration tool is a
dialog box, in which users are able to add or remove a shared URL, share
directories with specified protocol in their computers and do other
necessary configurations. The Schema Viewer shows schema file of
specified protocol in a humanized style. <span class="anchor" id="line-39"></span></li><li>The <b>Protocol Management </b>level is where the
configuration takes place. Four modules handle the task. File Manager
handles all the file operations; Schema Helper analyzes Schema files to
generate the property hash table; Config Manager is a kernel module in
this level. It decides the work flow according to the requirement of the
current protocol, and updates the hash table according to user
operation; Service Manager is called to execute scripts or manages the
deb libraries if necessary. <span class="anchor" id="line-40"></span></li><li>The
last level is the <b>file system </b>level, in which the <b>Schema </b>file is the
most important. As stated, Schema files record the properties and other
required information. Other important elements are the controlled
objects such as services, shared URLs and the deb libraries. </li></ul></li></ol>Milestones of the project<br><ul><li><p class="line862">Week 1-2: Get more information on Samba and <a class="http" href="http://gtk2-perl.sourceforge.net/">gtk2-perl</a>. <span class="anchor" id="line-45"></span></p>
</li><li>Week 3-5: Start with a
read-only GUI towards samba sharing configurations. <span class="anchor" id="line-46"></span></li><li>Week 6-10: Add to the function of reading
the NFS sharing configurations; Make it enable to modify those
configurations to manage the sharing. <span class="anchor" id="line-47"></span></li><li>Week
10-12: Write the documentation and submit the project; tackle bugs and
submit patches. </li></ul><br>Thank you for all !<br><br><br>Best wishes!<br></div><br>-- <br>Yang Jie(杨杰)<br><a href="http://hi.baidu.com/thinkdifferent" target="_blank">hi.baidu.com/thinkdifferent</a><br>
<br>Group of CLOUD, Xi'an Jiaotong University<br>Department of Computer Science and Technology, Xi’an Jiaotong University<br><br>PHONE: 86 1346888 3723<br>TEL: 86 29 82665263 EXT. 608<br>MSN: <a href="mailto:xtyangjie2004@yahoo.com.cn" target="_blank">xtyangjie2004@yahoo.com.cn</a><br>
<br>once i didn't know software is not free; then i knew it days later; now i find it indeed free.<br>