For years now, I’ve been watching Microsoft Windows evolve. From a bit of a distance I’ve been watching the bigger picture unfold, and a number of details have led me to speculate on a particular feature that I think could be the next big thing in technology…. Live process migration.
This is not the first time I’ve mused about the possibility… [A big feature I’d love to see in Windows 11] it’s just that as I work with tools across the spectrum of Microsoft’s tool chest, I’ve realized there are a few pieces I hadn’t really connected before, but they’re definitely a part of it.
What is live process migration? Folks who work with virtual machines on a regular basis are often familiar with a fancy feature / operation known as live virtual machine migration…. VMWare’s vSphere product refers to the capability as vMotion. It’s the ability to re-target a virtual machine instance, while it’s running… to move it from one host to another.
In sci-fi pseudo psycho-babble meta physio-medical terms, this might be akin to transitioning a person’s consciousness from one body to another, while they’re awake… kinda wild stuff.
As you can imagine, live VM migration is a heavy duty operation… the guest machine must stay in sync across two host computers during the transition in order to seamlessly operate. For the average user, it’s hard to imagine practical applications.
That said, live process migration is no small feat either. A lot of things have to be put in place in order for it to work… but the practical applications are much easier to spot.
Imagine watching a movie on Netflix on your Xbox (or maybe even your Hololens), but it’s time to roll. No problem, with a simple flick gesture, and without missing a beat, the running Netflix app transitions to your tablet (or your phone), and you’re off. Then you get to your vehicle, and your vehicle has a smart technology based media system in it that your tablet hands off the process to. It could work for any process, but live streaming media is an easy scenario.
From a technical perspective, there’s a bunch of things required to make this work, especially across whole different classes of hardware… but these problems are rapidly being solved by the universal nature of Windows 10 and Azure.
- Global Identity (e.g. Windows Live)
- Centralized Application Configuration
- Windows 10 apps natively and seamlessly store configuration data in the cloud
- Binary compatibility
- Universal apps are one deployable package that runs on everything from embedded devices to large desktops and everything in between.
- Inter-nodal process synchronization
- Nothing exemplifies this better than the 1st class remote debugging operation in Visual Studio. You can run an app on a phone or device from your laptop, hit breakpoints, and manipulate runtime state (local variables) from the laptop and watch the device react in real time.
- Handoff protocol
- I’m sure it exists, but I don’t have a good word to describe this, but it’s probably based on something like SIP.
- Runtime device capability checking (the part that sparked this blog post).