So we have a new trainer during TechTarget, Josh. He’s formed on Boston yet in SF for a week, and we asked him, “What’s a one thing about a attention that’s many treacherous to you?”

He answered immediately: App virtualization. People use “app virtualization” to report remote apps (XenApp, etc.), and for things like App-V and ThinApp, for “new” approaches like FSLogix, Liquidware, and AppVolumes. Citrix has AppDisk, Unidesk talks about layers (or not), people are articulate about “container-based” solutions, and of march there’s also app streaming and app refactoring… But unequivocally what’s a difference? And how do these all work anyway?

So in this article, I’m going to try to arrange this out. (For a techies reading this, you’ll see that I’ve dumbed things down a bit, and a examples are trivial, yet a crux of things is correct.) 

Just like how a word “virtualization” is overloaded to meant a garland of opposite things depending on that businessman we speak to, a tenure “app virtualization” is also used by lots of opposite vendors to meant lots of opposite things. (Since app virtualization is prohibited right now, it seems that roughly any businessman in a space has managed to request a tenure to something they offer.)

Understanding normal (not virtual) Windows applications

To know a judgment of app virtualization, we initial need to demeanour during how Windows desktop applications work when they’re *not* virtualized. (e.g. How things work a normal way.)

When we implement an focus (like Microsoft Office) onto a Windows computer, a installer module puts lots of opposite files in many places on a computer. Actual module files that run Word are commissioned into C:Program FilesMicrosoft Office. Some common DLL files are put into a executive Windows complement folder. Font files go into a fonts folder. Personalization files competence go into a user’s form folder. Etc, etc. Long story short, there are files everywhere!

Windows computers also have a Registry that is a hierarchical database that contains all sorts of low-level complement information, including how Windows complement files work, device drivers, services, user interface settings, personalization settings, app settings, printer settings, record form associations, and about a million other small things. Most Windows desktop applications also supplement or cgange registry keys they need to duty properly.

Long story short, installing an focus on a Windows mechanism copies lots of files to lots of opposite locations, and it adds and updates lots of registry keys it needs to work. This is excellent when we usually have one focus installed, yet as shortly as we start installing some-more applications, things can get messed up.

For example:

  • One focus competence implement some common DLL record to a complement location, and afterwards another focus needs a opposite chronicle of that record overwrites it, and now a initial focus doesn’t work.
  • One focus competence implement some common file, afterwards after we uninstall that application, and it removes that common record not meaningful that some other focus indispensable it, and a other focus breaks.
  • One focus competence store a settings in a record like C:windowssettings.ini, and a second totally apart focus competence *also* use C:windowssettings.ini for a settings, and a dual apps are confused given they’re perplexing to use a same settings record yet for dual opposite purposes.
  • The same is also loyal for Windows services (two apps perplexing to implement their possess use with a same name), or with device drivers, or registry keys, or lots of other problems where things “crash.”

In further to a problems with opposite Windows applications violation any other and generally not operative good together, there are a few other stipulations with traditionally-installed applications in unsentimental desktop environments, including:

  • Many unsentimental desktop solutions are formed on “shared” hoop images used by lots of users. Unfortunately if we implement applications in a normal way, that means we have to radically implement any focus that any user would ever need into your bottom image. Not usually is this costly (in terms of chartering given we need to permit any user for any app), it also increases your possibility that dual apps will dispute with any other given we have so many apps.
  • An choice is to usually implement a apps that any users needs “on demand,” yet as we know, installing new apps takes a prolonged time (like what, 15 mins to implement Office), so it’s not unsentimental to go by a whole focus designation routine for any user’s possess apps any time they record in.

The solution? App virtualization!

Put simply, a resolution to this is instead of indeed installing your Windows applications in a normal way, we “virtualize” them. At a many general level, app virtualization usually means that from a user’s standpoint, it appears as if an focus is installed, yet in existence it is not commissioned in a normal approach as we summarized above.

So how are virtualized apps installed? The answer unequivocally depends on what app virtualization record is being used, given they all work in opposite ways. That said, ALL app virtualization solutions have dual things in common:

  1. From a user’s perspective, a unsentimental app looks like a “regular” app. They usually click a app name in a Start Menu, or they double-click a record to open it in an app, and boom, a app pops adult and they’re regulating it like normal.
  2. Even yet a app looks and feels like a normal app, it was *not* commissioned like a normal app.

Let’s puncture into all a opposite forms of app virtualization (in pointless order):

App Virtualization Technique #1: Remote Applications

The initial form of app virtualization can be called “remote apps”, “app remoting”, or infrequently “server-based applications.” With remote apps, a Windows focus is not commissioned on a mechanism a user is using. Instead it’s commissioned on some other Windows computer. (That mechanism could be on premises in a company’s possess datacenter, or during a remote hosting company, or in a cloud.)

With app remoting, a focus is regulating on a remote Windows computer, yet a particular pixels that make adult a application’s window(s) are transmitted from a remote mechanism to a user’s computer. Think of this like Netflix streaming for apps. The app is regulating somewhere else, yet a window support display a app is on a user’s computer, so a user thinks a app is regulating locally. (Obviously also any keys a user pushes and rodent clicks are transmitted adult from their mechanism to a remote duplicate of a application.)

Remote apps mostly confederate with a Windows desktop in a approach that feels seamless. For example, a user can pierce a focus window around and resize it. They can ALT+TAB to switch apps, and afterwards can click a app’s name in a start menu to launch a app. But again, a app is never commissioned on a user’s computer—instead it’s regulating somewhere else with usually live streamed pixels from a app display adult on a user’s screen.

Products that do remote apps embody Citrix XenApp, Citrix XenDesktop, VMware Horizon, Dell vWorkspace, and Microsoft RDSH. This is also a record that DaaS providers use. The accurate network custom that transmits a remote cinema of a app down to a user’s mechanism is dedicated to this purpose, and any opposite businessman has their possess protocol. (Citrix HDX, Microsoft RemoteFX, VMware PC-over-IP, etc.)

Some large cloud providers offer app remoting solutions as well. For example, Azure has a product charity called “Azure RemoteApp” that is literally where we implement a Windows focus into a Azure cloud and afterwards users entrance it around this remote control impression and it looks and feels like it is regulating locally even yet it’s in a cloud.

Advantages of remote applications

  • There are no conflicts between opposite apps on a user’s mechanism given a remote apps are not indeed commissioned on their computer.
  • Since a remote apps don’t run on a user’s computer, they can be accessed from computers that do not run Windows. (For example, Mac users could entrance Windows-only apps from their Mac given a app is unequivocally regulating on a Windows mechanism somewhere else and usually a cinema of a app are sent to a user.)
  • A remote app is accessible “instantly” to a user, even if they never used it before. The user usually clicks a app idol and they can start regulating it right away.
  • When it’s time to mislay an app from a user, a IT dialect simply takes divided that user’s permissions to use a apps. There’s zero to uninstall or mislay on a user’s computer, and it won’t mangle anything on a user’s computer.
  • When a IT dialect has to ascent an application, instead of going around to hundreds of users’ desktops and upgrading a app there, they simply ascent a duplicate of a app on their servers.
  • Side-by-side apps that competence dispute can still be used by a singular user, given a remote apps could be commissioned into apart servers (where they don’t conflict), and a user could use them both during a same time. It would demeanour like a user is regulating opposing apps side-by-side, yet unequivocally they’re usually streamed pixels of a apps from dual opposite servers.
  • A user can undo from a regulating remote app and afterwards reconnect after from a opposite computer. (e.g. They can start during work and finish during home.) This can be good given they can entrance their entirely regulating work sourroundings from anywhere yet carrying to implement work applications on their home mechanism or projection a laptop behind and forth.
  • If all a user’s apps are remote apps, a costly and difficult-to-maintain desktop mechanism can be transposed with a cheaper and unbreakable skinny client, definition that IT spends reduction time during users’ desktops regulating their desktops.
  • If a user loses their laptop or burglars come in and take all a computers, no supportive information is mislaid given a apps were never indeed commissioned on their computers.
  • If a user’s mechanism is aged or slow, a remote app still feels good and quick given it’s not indeed regulating on a customer computer.

Disadvantages of remote applications

  • Since remote apps run on servers and not a users’ computers, a users’ computers have to be connected to a servers for a whole time they’re regulating a app. In other words, we can’t use remote apps on airplanes and other times where we don’t have a network connection.
  • Sometimes graphically-intense applications don’t work too good given they competence be changing too many pixels on a shade too quick and it’s tough for a network to keep adult (or it takes a lot of bandwidth).
  • If a network tie is delayed between a user and a remote app, regulating a app can be painful. Sometimes there could be “lag” between a time a user hits a pivotal on their keyboard and when a impression indeed shows adult on their shade (since a keystroke has to be transmitted from a user’s mechanism to a remote app, and afterwards a remote app has to pull a impression on a shade and send down a altered pixels to a user’s computer).
  • Certain peripherals can be some-more difficult to get working, or maybe even yet won’t work during all. This is generally loyal with peripherals that use a lot of data, like webcams.
  • Things like copy can be complex, given when a user hits “print” within a remote app, a imitation pursuit is combined on a remote Windows server, yet a printer is down by a user, so there needs to be a approach for a remote server to know that printer a user needs, and a right printer drivers have to be installed.
  • Sometimes it can be wily to get internal and remote applications to confederate properly. For example, what if we have an app that requires Microsoft Word to beget reports, yet that app is a remote app and a user has Word commissioned on their computer. They’ll get an blunder observant “Word not found” even yet a user is cursing, saying, “But we see Word right here!” But unequivocally Word isn’t right there. :) The bottom line with remote apps is that a Windows focus *is* technically commissioned in a normal way—except it’s commissioned traditionally on some remote server, not on a user’s desktop computer.

The bottom line with remote apps is that a Windows focus *is* technically commissioned in a normal way—except it’s commissioned traditionally on some remote server, not on a user’s desktop computer.

Next: Local Apps

I creatively suspicion that I’d write this whole essay as a singular post, yet now I’m adult to 2100 difference and I’ve usually lonesome one form of app virtualization! So instead I’m converting this into a weekly series, where any week I’ll write about a opposite form of app virtualization. we don’t know how many tools there will be. Probably 4 or 5 total.

This entrance upheld by a Full-Text RSS use – if this is your calm and you’re reading it on someone else’s site, greatfully review a FAQ during