Here is a scenario:
Build a box with a lock, that will only unlock under the following conditions:
a) There must be proximity to a specific device, such as a cellphone.
b) The box must be located within 100 feet of a specific geographical area.
c) There must be facial recognition of the person asking to open the box.
d) A pin must be entered for the box to open.
e) No external devices (camera, keypad) on the box.
f) The box only opens during certain time windows.
As you can see, you need bluetooth for the proximity sensing, GPS for the location sensing, a very complex algorithm with a camera for facial recognition, a keypad for entering the PIN, and (the clincher) no keypad or camera on the box.
It would take a fairly complex system to implement this into the device on the box itself. Expensive and lots of memory required.
But what if the box were provided with the following data:
a) This is the device ID.
b) This is the GPS location.
c) This is the user ID according to facial recognition.
d) This is the PIN.
e) This is the time.
Then you only have 5 variables to worry about comparing, and any Arduino can do that!
All of the data is collected and/or provided by the phone.
That kind of scenario is what the “virtual shield” provides. And Microsoft is making it VERY easy to implement.
Imagine then that you wanted to add a level of interactivity, using a Spark ‘Electron’ to say to a central office "I have a valid ‘box open’ command, please confirm’. Almost trivial.