From Fedora Project Wiki

Bringing the Cloud to the Fedora Desktop

Contact Information

Why do you want to work with the Fedora Project?

I have been using fedora from last 4 years for software development and I love its environment. I am interested in network and low level programming and distributed systems; participating for Fedora provides me with the opportunity to hit the jackpot as I will be both working for the operating system I have been working with for so long and also I will be able to explore the opportunities of extending its environment to make it more user friendly and favorite for masses.

Do you have any past involvement with the Fedora project or another open source project as a contributor?

Not so far. This is going to be my first involvement.

Did you participate with the past GSoC programs, if so which years, which organizations?

No. This is the first time I am participating in GSoC.

Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s), you are interested with?

Yes, I plan to extend my open source contributions beyond the GSoC 2012 by participating in different communities. I am particularly interested in working for Aeolus (The open source cloud management platform) due to strong inclination towards distributed systems.

Why should we choose you over other applicants?

Primarily because of my immense interest in distributed systems and low level programming. To dig it further, I have been programming in several different languages including C,C++,Java,C#,PHP and SQL for both windows and linux platforms. I have been a user of Fedora OS from last 5 years out of which 4 have been specifically spent programming for the platform. My final year project at university is a P2P application for android powered phone based on BitTorrent protocol. The application provides P2P file sharing and live video streaming. This application gave me good understanding of open source software architecture as I had to dig down into structure of Azeurus client to look its internal working. In my semester projects, I worked on things like P2P file transfers via UDP sockets with added reliability on the application layer, emulation of Google's map-reduce framework on linux via muti-processing and sockets for IPC. This shows the exposure I have had to the area I am applying for.

Proposal Description

An overview of your proposal

Aeolus[1] project is meant for cloud resource management. The proposal I am interested in is to interface Aeolus with Fedora desktop to streamline the process of accessing and managing cloud resources. The project once implemented will provide an integration between Aeolus and Fedora desktop via both CLI and GUI access. The project will provide both CLI and GUI with GTK+ for windowing system. Also graphs pertaining to resources being managed will be generated via Cairo drawing surfaces.

The need you believe it fulfills

The project is aimed to integrate Aeolus with Fedora desktop so that system administrators and users running fedora can access the cloud based resources and monitor them at the same time via user friendly menus and windowing systems. It will be beneficial for the large fedora users community as in future this project can be extended to provide a functionality semantically equivalent to accessing Hotmail's SkyDrive or Google Docs from Fedora desktop just like accessing the files from local hard disk.

Any relevant experience you have

I have worked on P2P systems for file sharing and video streaming which gave a good hands-on experience with network programming and distributed systems' architecture management. These past experience will be quite helpful in designing and implementing this project.

How you intend to implement your proposal

I plan to integrate Aeolus with Fedora desktop and make it appealing to the users of Fedora. It will be done via three pronged strategy:

  • A common client-end interfacing library will be developed keeping in mind that most of it will be used by both our CLI and GUI implementations. This will be our logical module of the project who does the actual communication with Aeolus platform. Also the features to be exposed by Aeolus for users will be decided in this phase. Both Aeolus and Fedora community will be engaged for getting input about the features to be implemented in the project.
About second and third phase
The final decision about user interfaces for both CLI and GUI will be made in iterative fashion by involving Fedora community in specifying features.
  • Develop a CLI for users to interact with Aeolus platform for cloud resources management. This will be done by keeping in mind that most of the features of Aeolus should be accessible to the users via this interface.
  • Implement a windowed interface using GTK+ library. This will be equivalent to the CLI interface build in second phase of the project. The windowing system will be providing all of the features supported by our core logical module built in first phase. Also graphs will be generated in this phase to give users a bird-eye view of their cloud infrastructure. This will be done by making use of Cairo drawing surfaces. Log files from each component of Aeolus is a target for plotting a graph.

In final stages, the whole project will be tested and documented. Lastly, the packaging will be done to release the project.

A rough timeline for your progress

  • April 23 - May 21 [Community bonding period] Get to know the project essentials and the community. Learn about Aeolus project and its APIs. Also need to explore more about GTK+ and Cairo.
  • May 22 - June 10 [Week 1-3] Involve with community and mentor to finalize the features exposed through our client-end logical module to UI elements. Delve into coding the module.
  • June 11 - July 1 [Week 4-6] Integrate the back-end logical module with CLI and perform the integration testing.
  • July 2 - July 13 [Week 6-7] Brush up the code for mid-term evaluation and perform any necessary amendments to the CLI interface and underlying back-end logical module after community feedback.
  • July 14 - August 5 [Week 7-9] Connect the back-end logic with GTK+ based windowed interface and perform integration testing.
  • August 5 - August 16 [Week 10-11] Create graphs from log file of different components of Aeolus software. Integrate them into main windowing system appropriately.
  • August 17 - August 24 [Week 11-12] Trim the code. Document and comment the code thoroughly. Create a package for the final release and submit it for final evaluation.

Any other details you feel we should consider

The proposed project can be extended in future releases to give Fedora desktop users an environment where they can access the cloud based resources in a fashion similar to accessing Google Docs or Hotmail's SkyDrive on their Fedora desktop as they are accessing the files from their local hard drive. I will be publishing the project progress to my blog to keep the community aware of features they will be enjoying and most importantly get their feedback from the process. I have no other plans for this summer and want to play a couch-potato, sit-back coder character. I wish to continue work on the future amendments made to the project and possibly be a go-to guy for this project even after GSoC ends.

Have you communicated with a potential mentor? If so, who?

Yes, I have communicated with Mo Morsi to clear out few things about the project's scope.