Thursday, April 10, 2008

Distance Education Lab Potential: The Mobile Virtual Lab

Recently our department suffered a minor disaster that left our entire building without power for 36+ hours, and effected 45% of the University of Utah campus. For other departments, they were lucky enough to have this happen during Spring Break. For Continuing Ed, unfortunately, we were left with classes that had no power. As my department teaches Tech classes, we were very much in a crisis mode. We ended up moving computer hardware to a new location (from the Annex building on the main campus to the Murray center) in order to accommodate the class (which was Final Cut Pro).

This got me thinking though, what if it happened again, but this time in a class that was in a specific lab for a reason (such as Cisco or Linux). Would we be able to do the same thing? Not really. Our Mac lab is entirely mobile, being comprised of laptops (including the classroom server). But our PC's are Dell towers, and not very mobile.

Also, as has become a concern with our Linux offerings, many students want open lab time to work on exercises that were just not available to work on during class time. Our labs are not open labs because of that very reason, and once you make a change in a physical class, you can't really sit down at another computer and use it.

With these two issues in mind, I started looking at potential replacement options. The best thing that I could find was versions of virtualization, each with their own strengths and weaknesses. The four that I'm going to talk about here are MojoPac, Xen, VMWare, and LivePC. By the way, should I not be getting something on any of these deployments, please let me know!

What Do I Need?
What I need is a way to deploy a virtual environment to any platform in any location through a network or internet, while still having full control over those virtual environments. This means controlling access to the virtual machines as they are deployed, and access to the software within the virtual machines once they are deployed. And all this needs to work through a common denominator, namely home internet speeds. Normally this would be dial-up, but I think I would be even willing to push for DSL speeds. Also, it needs to be able to run without a network connection.

MojoPac
This wasn't the first solution that I checked out, but it is one of the most mobile. The idea behind MojoPac is to provide a software virtualization solution, which allows the user to store software on a jump drive, plug it in, and work on any Windows machine. it's a great idea for Windows (they need something like this desperately), as both Linux and Mac have applications that can run from anywhere based on their UNIX resource model (i.e., no registry).

This solution is perfect for a disaster scenario where entire lab software deployments can be quickly and easily moved into a new lab without moving physical machines. But what about taking it home? Now you have licensing issues, because it's highly likely that someone will want a "free" copy of the software to use for their home/business use. Now you have a major legal issue because security becomes a concern. Of course a simple solution would be to include the cost of the software in the tuition, which students already complain is too high. So, I started to look elsewhere.

Xen
I have seen few virtualization utilities that are as versatile as Xen. From imaging to virtual servers running on the same machine, it's no surprise that they were purchased by Citrix. Here you can create virtual environments akin to VMWare, or create virtual desktops that are served off of a central server. Both work well within a Network environment with large pipelines or as a stand alone virtual machine within a machine, and would again be perfect for a disaster scenario (assuming the Server were still functioning).

The problem? Well, the same as MojoPac really: students wanting to work on software at home. While the virtual desktop would be possible with VPN settings, it becomes more of a support hassle for the students and the network team than if they make the students come to an open lab on campus. So while Xen is a wonderful product, it's inability to stream the virtual machine to the student in their environment and run without network access becomes a missing cog. But, because it's Open Source, I'm still leaning heavily to it.

VMWare
VMWare and it's many options is perhaps the most likely competitor to Xen. Primarily though, I looked at the Player environment, where VMWare is able to deploy local images to the machine. This is perfect for students who want to take home an environment (provided they have an external hard drive), and they can run it on Windows and Linux for free (free player). Mac requires the purchase of VMWare Fusion. It's faster then other virtual environments that I've experienced on the Mac, and is pretty much universal.

The problem here is security and real deployment. Once the student has the image, what is keeping them from copying the image, and using it when the class is over? Nothing, so we are back to licensing issues. Also, it requires a lot of hard drive space for large images, which becomes a hardware problem. It's great for one or two images, but what if you want a specific image for each piece of software, so as to remove any potential compatibility issues? Do you have the hard drive space? So, I kept searching.

MokaFive LivePC
Then I found MokaFive's LivePC (before their change this week). Here was an environment that would basically stream from their servers or from your own a VMWare image that would allow a user to access their machine when online, and once it was cached they could even run it offline. So, we have a virtual environment that is streamed (not quite a Streaming Virtual Machine, but getting close) from any HTTP website using Apache and has continual HTTP access turned on, and it could be deployed from anywhere to anyone. Maintenance also becomes almost trivial, because instead of replacing the image, you just update it and it will dynamically write only the changes.

The only thing missing at that time was security. It still had the same problem as VMWare, and would have to be addressed the same way. Well, I left a post on the Forum to see if anyone had any plans for this particular issue. I thought about it all weekend, and came in on Monday, and checked the website again. It changed drastically, and provided a now paid-for Professional solution as well as a free solution.

The Professional solution allows for "revocation", which after contacting sales a couple of times I found out does exactly what Licensing would want: allow for revoking access to the machine regardless of how much has been cached. So, the other question I had was bandwidth usage, which is a huge concern. They replied back by saying that it uses very little bandwidth. What is very little? I'm not sure, but they are going to set me up with a 30 day free trial so I can test it out and find out what the HTTP load is on the machine.

So here is a solution that answers all my issues, as far as I can see. Is it perfect? No, because you need to host the link from your web server to their system which gives the security they promise. Perhaps in a few years they will provide a packaged solution that will allow the customer to install their image and engine software locally, but for now you lose control of your access by having it funneled through their system.

The Verdict
From what I currently can find and understand from the various virtualization programs out there, MokaFive's LivePC product seems to be the solution for which I have been looking. The potential is there not only for the disaster deployment or regular lab deployment, but also as a potential distance education platform.

No comments: