GVM

GVM

An extensible and easy-to-use communications center and portal of Google web-based applications.

What The GVM Appliance Does

GVM is an extensible and easy-to-use communications center and portal of Google web-based applications. GVM is a "Google Virtual Machine", in particular, it is a virtual appliance that contains all of the current Google web applications (that we know of) in one convenient location, that is, in the browser itself. Each Google application is listed in one of the menus on the webpage and will load in a new window, just like a regular application does on your computer. Each application's window stays inside of the main webpage and can be minimized, maximized, and closed. GVM can be pictured as either a very simplified, web-based Google OS or as a Google portal, which is a main website that leads to all other relevant websites.

First, for the virtual appliance, our idea was to make a communications center, which is a centralized location for all of your communication needs. Most computer users, no matter what their level of expertise, connect their computers to the Internet and use the computer to communicate with others. However, not all of these users have their communication applications readily available and some users do not know of all of the possible applications that are available on the web. Our goal with GVM is to group related web-based applications together for the user to conveniently locate and use.

We could have used any application mix for our communications center (or created separate appliances with web-based applications from companies such as Microsoft, Yahoo!, and AOL), but decided to choose Google for our prototype. Google's search engine and other applications are increasingly popular among all types of users. Also, Google doesn't have a portal at this time (their applications are currently not all in one centralized place), so we saw a need for creating one. With a portal as the main webpage, all users would be able to see all of the applications that Google has to offer.

The GVM prototype is not a complete and final implementation of our idea, but instead acts as a proof of concept. Because of this, we created a list of future work and plan to continue development into the future. In addition, we are open to suggestions and comments from GVM users, by writing to gvm.help@gmail.com. We will also accept other information from users at that email address, such as information about Google applications to include in future versions of GVM that are currently missing.

Our plan is to make GVM extensible, meaning that it can be easily changed to include new features, such as adding in new applications as Google releases them. We also plan to include Google desktop applications into the GVM virtual appliance, but at the present time these applications are not directly supported in the OS we used for the appliance. In any case, in the future we hope to provide automatic updates to GVM, where new Google applications can be automatically downloaded from a server and put into the appliance.

GVM's Uses And Benefits

The possibilities for VMs have increased with the introduction of virtual machine systems for commodity PCs, but still, use has been limited to system administrators and more advanced computer users. With the introduction of virtual appliances, there is definitely an opportunity to target average and novice computer users. Of course, virtual appliances can still be designed with the system administrator in mind (i.e. a pre-configured appliance can save the administrator initial setup time). However, the virtual appliance itself can be pictured as an application (as played within VMware Player), which is a concept that the average and novice user can grasp.

GVM differs from other appliances in that it was made for all users, including average and novice computer users. In other words, it is not just beneficial to a small, specific group of people (who even have to know what a virtual machine is), but this appliance can be useful and beneficial to everyone.

GVM is not just a webpage portal on its own (it is important that it is a virtual appliance and not just a web application). Besides the benefits of the communications center and portal to the user that were described earlier, including all of your web-based activities in a virtual machine has significant benefits. In particular, the risk of obtaining a virus, worm, or other malware (malicious software) increases with Internet use. By having all of your web-based applications in a virtual appliance, if you happen to get a virus or worm, the virtual machine can help protect your personal data from being read, modified, or deleted because it is on a part of the computer that is not reachable from within the appliance. As it currently stands, the Internet browsers that help us connect to the world wide web do not provide the level of protection that a seamless appliance could provide. We envision that virtual machines can essentially provide a protective shell over the web browser, shielding the potentially negative effects of online activity from the rest of the computer.

How GVM Was Built

GVM consists of two main parts: the web portal interface and the operating system component beneath it.

The web portal was created using the HTML, CSS, and AJAX (Asynchronous JavaScript and XML) languages with the xDT (x-Desktop) framework. We first researched existing window frameworks for JavaScript and chose the xDT framework because it was the most mature and versatile of the solutions available. We then created the functions that would read from the XML files that contain the Google web-based application information and build the menus at the top. It was designed to be adaptable to whatever data is in the XML file. For example, if the images change (or the number of images changes) for the top menus, the box around the images will automatically resize itself to fit them. The same for the dropdown menus: they will resize themselves to contain the application links and they will move themselves to wherever the menu icons are. To create the menu images in GVM, we used this Google Font Tutorial.

GVM is OS-independent, in other words, the web portal does not depend on a certain operating system for it to run (however, it does require Firefox as the web browser). At first, we chose Damn Small Linux (DSL) as the underlying OS for our prototype because we believe it would have provided us with the smallest-sized appliance with a minimal installation. Since GVM does not require many applications from the OS beneath it, the appliance can be quite small in size. However, due to the inability to get certain necessary usability features to work in DSL, we decided to switch GVM's OS to a minimal installation of Ubuntu Linux.

One important usability feature of the appliance that we implemented was a splash screen that shows on the screen when the appliance is starting up. We believe that this feature is necessary for our audience because it eliminates the default Linux startup screen that may be intimidating to average or novice users, who may not be familiar with Linux. Also, our custom splash screen allows us to present the appliance to the user as its own application without revealing any of details of the underlying OS. Similarly, we set the grub boot loader to have a zero second timeout, since that menu is not needed in this case (because we are only booting one OS) and could be confusing to the user.

For the window manager in Ubuntu, we chose to install Fluxbox because it is small and fast. In addition, we installed VMware Tools in Ubuntu. We noticed a significant improvement in performance of the appliance with the tools installed. We found that VMware Tools was not easy to install in DSL Linux, which was another reason for switching operating systems.

Besides these configurations, the only actual application we needed to install in the OS was the Firefox web browser. For improved usability, we also installed the Firefox Add-on R-kiosk 0.3, which makes the Firefox browser appear like a kiosk, that is, with no browser toolbars or menus (all navigation will be inside the website only). This addition is yet another way that GVM appears like an application.

Lastly, we fine-tuned the installed packages and initialization scripts of the default minimal Ubuntu installation so that the system would load quicker and improve the user experience. We removed non-critical packages and left all of the things needed to run the X server, Firefox, and the system itself.

Where To Download GVM

You can download GVM from SourceForge (download), VMware Appliances (download), moka5 LivePCs (download), and Clarkson University (download). Future versions of GVM (including version 2) will be released on SourceForge only.

How To Start Using GVM

To start using GVM, you first need to install VMware Player (or another program that can play back virtual machines) on to your computer.

Linux Instructions:

  1. Run vmplayer from the command line or click VMware Player in your applications menu.

  2. When VMware Player opens, an open dialogue will appear.
    Browse for the gvm.vmx configuration file and click Open.

  3. GVM will load automatically.

Windows Instructions:

  1. In the Start Menu, click Programs -> VMware -> VMware Player

  2. When VMware Player opens, an open dialogue will appear.
    Browse for the gvm.vmx configuration file and click Open.

  3. GVM will load automatically.
Once GVM is loaded, click your desired web application from the main page. See the list of bugs in the future work documentation for known issues and their temporary workarounds.

Note: You may need to refresh the GVM webpage by pressing the F5 key multiple times, so that its contents can adjust to the screen size.

To reset the appliance, click on Player -> Troubleshoot -> Reset in the top left corner of the VMware Player window. To power off or shutdown the appliance, click on Player -> Troubleshoot -> Power Off and Quit.

GVM Documentation

This document and other HTML documents can be found inside the virtual appliance (on the OS' desktop), linked to from the main webpage portal.

The documentation includes:

The HTML documents also use a style sheet style.css. The GVM source code includes an HTML comment, seen in header.txt. Both files are located along with the rest of the documentation on the desktop.

GVM Components And Licenses

The web portal portion of GVM is released under the GNU General Public License (GPL) Version 2. Please see the comment in the GVM source code and our other documentation for more information.

We used the following operating systems, applications and other components in GVM: All of the above components were used under their respective open source licenses and we did not modify any of their code.

Disclaimer

It is important to note that the creators of this virtual appliance are not affiliated with Google at this time (i.e. this appliance was not created by employees of Google and was created without Google's knowledge). We are just avid users of Google. All team members are either current graduate students or recent alumni of Clarkson University in Potsdam, New York, USA. The team consists of: Patricia Jablonski, Todd Deshane, Wenjin Hu, Lyle Jantzi III, Creighton Long, Anthony Peltz, and James Werner.

GVM v2 is now being developed on SourceForge by Patricia Jablonski (pattyjay1), Todd Deshane (deshantm), Wenjin Hu (huwj), and Lyle Jantzi III (halibetlector). To keep updated on the development of GVM v2, we have a GVM v2 mailing list available to members.

Acknowledgements

We would like to acknowledge Michael Forte for his help with some of initial design and planning for this project and for the use of his server during the beginning phases of development. We regret that he could not be a part of our team until the end.