Application Virtualization isn’t a new technology, it has been around in one form or another for over ten years. Until recently in my opinion at least, Application Virtualization was a luxury item, something only medium sized to large businesses could afford. Small companies may not be able to afford the licensing involved with some of the bigger solutions like ThinApp and App-V. But there is a couple of different much more affordable options and possibly even free depending on your requirements such as Spoon and Cameyo. In fact, Cameyo as far as I know at least, is the only Application Virtualization solution which is completely free for personal use which is one of the main reasons why I love it. As a geeky type of guy, even outside of work I pursue technology as a hobby and so the advent of Cameyo has led me to capturing (packaging) some of my own apps for personal use so I can store them on a USB key and bring them on the go with me at all times. If you have a small company and intend to deploy to 50 users or less, you can use Cameyo for free. If you have over 50 users you will need to pay for a license.
To explain Cameyo a little bit in relation and comparison to other Application Virtualization Technologies out there. Cameyo provides the benefits of application virtualization which is isolation and in a sense decouples your applications from the OS Layer (not really, so many App virtualization vendors claim this and it’s BS, your applications will still use OS components when they need them which means they still may not work if that component is missing or corrupt, it just streamlines the packaging and deploys and presents applications in a more dynamic fashion, but I digress) Cameyo also provides a very simple process for capturing your applications which is easier than MSI packaging and since the applications are isolated they will not break your system and thus less regression testing is required. All of these benefits are common across all application virtualization technologies.
Where Cameyo differs from some products such as App-V is that it does not require any client to function, thus your applications can run from any windows machine and the application will not require to perform a traditional installation either. This is two fold, you remove installation related errors and down time, as well as getting application virtualization without the expensive backend resources required when using application streaming. Another distinct difference with Cameyo is the fact that, you don’t even need to do the packaging of the apps, if you don’t want to, the tool has an option to automate this by providing the source to the application via the internet ( HERE ) and the folks in Cameyo will process the packaging on their backend for you, there’s also a large repository of pre-packaged applications available online, which you can download and use as you wish.
The packaging process is very simple, I’ll do a brief overview here. So as with all capture tools, it’s a good idea to have this setup on a Virtual Machine which you can revert to a clean state upon completion. You can download Cameyo from their website: HERE If you are a starter in the world of Application Virtualization and you are wondering what a virtual machine is, I advise taking a look at another free version of a VM tool HERE Be warned, you will need a Windows Operating System to create your virtual machine, it’s very simple to do and both the tool and the internet have plenty of instructions on how to set this up. It’s easier in fact than booting Windows onto a physical machine, so why not give it a try! Once you’ve got Cameyo setup and ready on your virtual machine you will launch and be able to go to the Studio as seen above to capture your application.
In the first screen you can see your options. These options are to: create your app locally on your virtual machine, which is what we’re going to go through. Also to capture your app online which is something I mentioned above, this basically involves uploading the installer for your application, this will then be packaged using Cameyo’s resources, it’s a pretty cool little feature, it’s not one many actual enterprises would use for licensed 3rd party applications or internally developed applications which may contain sensitive data they do not want to leave their network. But if you are just using this for personal use like me, it’s well worth a try as if it works, it may save you some time yourself. Here’s an example of what online packager looks like:
The final option is used for editing an already captured application, so opening and editing a Cameyo application. We’ll look at the editing options a little further down. For now back to the capture. So you run the capture app locally option on a Virtual Machine, when you do this you will be prompted with the below screen:
This screen is prompting you to go ahead and install the application you wish to capture. If you do not know how to install an application, well frankly this may be the time to bow out of this exercise and hang your head in shame 🙂 Once you complete the install, you click on the Install done button to proceed. If there’s anything you wish to set for the application after the install so that it’s pre-set before you launch for use, you should also do that before hitting Install Done, that will ensure that setting also gets captured.
That’s it, that sucka has been captured, you can now accept the defaults or go in and Edit the application. For the sake of demonstration, let’s click on Edit Package. I would also always select to the Edit the package because as you see further down, you will want to set your application icon file.
Here we can see our interface for editing the package. Startup is the entry point for this application, the executables used to launch the application(s) or basically the shortcuts for this application. If you click on change you can edit this shortcut.
Above you can see that you can change the actual application being launched, you can set parameters, so for example, maybe it’s an access database file which you could pass the parameters “/x startup” to start a macro. Also in this screen you can see you can see that you can add multiple shortcuts if you please and organize them in a menu. So, when you go to launch your application it will allow you to choose what shortcut or component that you want to open.
Next option on the edit screen is to set the level of isolation. Data Mode ensures that applications can only save files to specified locations. Isolated means the application will be completely isolated and will not write run time files to your system. Full Access allows the application to act like a teenager and do what it will.
Next option is the data storage. You can set where the application will mount for use. Here you can pick if the application will be used from a computers hard disk, your cloud, or a USB (The most common option) Just set it to run under the same directory as the executable or you can feed in your own custom directory.
Your next option is to set what icon will be used for your applications shortcut. For this it’s a good idea to hit Change icon and then browse to the main executable of your application or you could just grab an .ico file if you prefer. This is actually one of the only features of Cameyo which I’m not entirely happy with and that’s just because I’m spoiled. I would like the tool to grab an icon for me and let me change it if I please, also I’ve noticed when I open an application to edit it, it seems to lose the icon it was using, which is something I’m sure will be fixed.
Next up if you click on the tab to the right which is file you will actually see a tree structure of the files which were captured by Cameyo, this should be the files required for the application to work, however if you opened a different application during the capture or possibly had a background service running, there may be some “noise” you should look through these directories and delete any of this “noise” or unwanted files to reduce the size of your application.
The next tab to the right is for the registry which was captured during the capture. Again some noise may have been captured, if so you can remove the registry here. You could also edit registry keys here if you please. If you are just starting out and this part intimidates you, don’t worry too much. You get the swing of things when you start to recognize what the noise is, as it’s likely going to be files and registry which show up for every application you capture thus is not part of the applications you are attempting to capture.
Finally there’s an Advanced tab which allows to get even more granular with your application. Firstly you can set an integration level, here you can do things like re-create application shortcuts and file type association, this ensure shorcuts are put onto your machines desktop or start menu so the application looks just like a regular application even though it will be launching using your Cameyo capture application and not using any installed application files, it also can use file type association so for example if you capture Adobe Reader and you want to open a PDF it can open with your Captured Adobe Reader when the file is double clicked. From what I have seen the shortcuts are also dynamic so if you move your Cameyo application the shortcuts are smart and will re-set themselves to the correct path to ensure a successful launch. Also interestingly there’s actually an option to add a virtual layer which for application which add feature in explorer can be beneficial and is something that is not all that common in Application Virtualization Technologies. The default is No integration as this keeps the application more isolated and if you are starting out, I recommend keeping this as your default. You can also choose the behavior of the application on exit, you can set for the application to remain upon exit, you could set it to remove any registry traces or to completely remove all settings which may be good if you wish to use this in a non-persistent manner. You can also set an expiration, this is a nice little security feature, it ensures if maybe you have a licensed application or an internally developed application that is being used on a USB for example, you could set an expiration every month to ensure nobody can walk away with it and re-distribute. I haven’t tested that out myself to be honest, so can’t go into much detail as to how secure it may or may not be! Finally you can choose to exclude child processes which your application may initiate or spawn during execution.
That’s it. If this is your first exposure to application virtualization, I hope it’s not intimidating. I think this tool provides an excellent platform for learning application virtualization. Because there’s no client software required it also provides a pretty nifty way to make your applications portable so you may run them completely off a USB key or through your Dropbox for example, all without paying for licenses of a product that also offers this at a cost such as VMWare ThinApp. Something which particularly interested me about Cameyo is the fact the developers seem to think progressively and are ambitious. A common limitation for application virtualization is drivers. Drivers cannot be virtualized by any modern day application virtualization technology, the guys at Cameyo has come up with a solution which they appear to be currently developing and I love the fact they are so transparent about that fact. It’s cool to know exactly what the direction of the product may be. You can see more about the drivers and read the developers blogs HERE Also Cameyo was featured in the Application Virtualization Smackdown this year, so if you have any questions about it’s capability you can view the Cameyo website and Forum or maybe checkout the Smackdown HERE