Let's face it, every app crashes -- so what can you do to help preserve the user's important data when your app fails unexpectedly? Windows Vista provides a new
application recovery API that gives you a chance to save off as much in-memory data as possible before your process terminates.
Windows Vista's
UAC feature is designed to minimize security risks by running most applications under a standard user token, lessening the risk that an attacker could gain admin rights to the machine. UAC allows executables to
specify what privelege level they require -- if an app doesn't...
Windows Vista's
UAC feature is designed to minimize security risks by running most applications under a standard user token, lessening the risk that an attacker could gain admin rights to the machine. This is a great step forward for users, but it may leave developers
wondering what to d...
Is your application the reason why my laptop only gets two hours of battery life? That's not a question you want to hear from your paying customers. Windows Vista provides an
enhanced power management API
and control panel which lets the user express their desired power usage profile...
Ian Griffiths, dev trainer extraordinaire, recorded a series of "how-to" videos for us, each one demonstrating how to write code that takes advantage of a feature of the Windows Vista platform. Here's
the first in the series -- how to issues queries against the desktop search ...
I think David mentioned this in the video...we use the cloud to store all the metadata about a Live Folder (the filenames, change history, etc). Each client synchs metadata with the cloud, which produces a list of files that are out of date on the client.
Then the client can fetch those files from anyone else who has them. In your case, if the cloud doesn't have the files, we will fetch them from another client. For now, we don't have a lot of client location and optimization in place, so the client is equally
happy to fetch the file from the cloud (if it's there), from a client somewhere outside your LAN, or a client on the LAN. We are working on putting more intelligence in here.
Live Mesh's pub/sub model is conceptually a push model -- each device has a notification queue, the device can create subscriptions, and when a subscription generates an event (or another device or part of the Mesh needs to reach the device), that event
is posted to the queue and the device gets it.
Because Live Mesh is designed to work across any network topology, we can't always ensure that the cloud will be able to push a notification down to an arbitrary client -- it might be behind a firewall, or NAT, or who knows what. So instead, we have each
client open up a single long-lived HTTP connection to the server. If there are no new notifications, the request times out after 60 seconds, and then the client opens a new one. When a new notification comes in, the cloud sends down in response to that open
request from the client. You might have heard this technique referred to as
Comet or full-duplex AJAX.
We demo'd the Mac client at Web 2.0 and that work is coming along nicely (we're also working on the win mobile client we showed.) We haven't talked about any platforms beyond those for now.
jmazner wrote:
We don't have wake-on-LAN as part of our client communications platform. I will make sure that's on the list of things to consider.
That's the biggest omission from the WHS Console, IMHO. (And remote access website, by the way. I cannot stress the importance of being able to do it via a browser as well enough.)
It's easy to use an addon that allows for WOL functionality, but it's not exactly a smooth process in use. If the 'remotely connect to this PC' button (or whatever it is called) just automatically sent a WOL packet to the PC regardless of wether it supports
WOL or not, you'd be there. It doesn't even have to be visible to the end user.
Thanks for considering it!
The suggestion is now officialy filed
This is not a trivial thing to get right, however. One of the keys to our software working behind NATs and firewalls is that our communications sessions are established by the client doing an HTTP GET to the server (to a special notification queue URL.) The
server can then send any important information back to the client as a response to that GET. (the idea being it's much more reliable for the client to connect to the cloud than for the cloud to connect to the client)
When you click "Connect" to a remote device, that device sends an invite to the cloud, and then the cloud sends word of the invite through that notification queue.
If the remote client is asleep, it can't keep the HTTP connection open. So now the cloud has to figure out how to send a WOL packet to this machine that might be well hidden behind a NAT.
I'm not a networking guy by any means, so maybe there's a well established way to do this...but it sounds tricky to me, and in any event would be a different approach to remote connectivity than what we have built for the technology preview.
- The remote desktop through the browser thing. That's available on WHS right now, and while it works great
if it works, it doesn't work quite as smoothly as one is led to believe. For instance, you need to install an RDP ActiveX control to be able to use the remote desktop feature in the WHS Remote Access website. When I'm at an internet cafe, I may not
be able to install this control. When I'm at a friend's house, I may not wat to install stuff on his PC. Then what?
Live Mesh also uses a control to display the RDP session in the browser. If someone has figured out how to parse and display RDP in JScript, I am all ears Not sure there's really any better solution here...
Bas wrote:
Also, I set my machines to sleep when I'm away. Most people power them down entirely. Then what? Will there be a way to wake them up remotely? Again, in WHS, I had to install a 3rd party wake-on-lan addon to even
get WoL functionality, and then it's still a chore. I have to:
1. Use the remote access website to RDP to the WHS
2. Open the WHS Console on the server itself
3. Use the WoL addon in the Console to wake up one of my PC's
4. Log off of the WHS.
5. RDP to the computer I just woke.
That's not very smooth. How will Mesh's remote access features fix that? Will it, for instance, auto-attempt to wake any machine you RDP to?
We don't have wake-on-LAN as part of our client communications platform. I will make sure that's on the list of things to consider.
Bas wrote:
- Can I 'meshify' my My Documents folder and automatically sync all my documents
and application settings across PC's?
Well, I don't think app settings are usually in My Documents? You can meshify My Docs (as long as you don't have any other Live Mesh Folders already present in the My Docs hierarchy) and it should work, taking into consideration we're still in Tech Preview.
App settings are harder, since some apps open their settings files for r/w access for the lifetime of the app, and some apps don't store settings in the filesystem at all.
Bas wrote:
- Is there or will there be some way to sync my RSS feeds across devices? If I read an RSS feed, I want it to be marked as 'read' on
all my devices, not just the one I read it on.
The platform certainly supports this, if an app wants to implement this kind of functionality.
Bas wrote:
- What about email? Can I install Windows Live Mail on all my PC's and sync the message store across all PC's, so that I can check my email and read previously downloaded email on any PC? What will happen if I have my email client open on two PC's at the same
time? Will it mess up the synch, or will I see emails appearing on my laptop when I download them on my desktop?
Email is one of those file types that's hard to synch today when you're dealing with a monolithic PST or OST file. Apps can certainly write to Live Mesh platform to enable great roaming of your email experience, but that will happen over time (once the platform
is available.)
Bas wrote:
- The 5GB data limit. I understand why you guys are doing this, but I have a WHS that's available from anywhere in the world. I can get as much storage on it as money can buy. Can I choose to have Mesh store it on my WHS rather than in a Microsoft Data Center
when it is storing stuff in 'the cloud', without any limits on what I can do? (In other words: can I set it up so that my Live Desktop is actually stored on my WHS rather than in a data center, so that I don't have to deal with the 5GB file limit?)
Yes, using WHS as your own personal cloud storage is a popular request, and one that we are looking into. The platform is certainly designed to support multiple, federated storage servcies.
I can assure you that the Visual Studio team is thinking about how and when to do this...but it never hurts for them to have more customer input to guide their decisions. In the meantime, we do have a set of component vendors who have already signed up
to build Office 2007 UI controls. From the bottom of
http://www.microsoft.com/presspass/features/2006/nov06/11-21officeui.mspx (this includes some ISVs as well):
David Steere and Trevor Robinson: How Live Mesh P2P Syncing Works
Jul 14, 2008 at 9:43 AMDavid Steere and Trevor Robinson: How Live Mesh P2P Syncing Works
Jul 14, 2008 at 9:42 AMDavid Steere and Trevor Robinson: How Live Mesh P2P Syncing Works
Jul 14, 2008 at 9:38 AMLive Mesh's pub/sub model is conceptually a push model -- each device has a notification queue, the device can create subscriptions, and when a subscription generates an event (or another device or part of the Mesh needs to reach the device), that event is posted to the queue and the device gets it.
Because Live Mesh is designed to work across any network topology, we can't always ensure that the cloud will be able to push a notification down to an arbitrary client -- it might be behind a firewall, or NAT, or who knows what. So instead, we have each client open up a single long-lived HTTP connection to the server. If there are no new notifications, the request times out after 60 seconds, and then the client opens a new one. When a new notification comes in, the cloud sends down in response to that open request from the client. You might have heard this technique referred to as Comet or full-duplex AJAX.
David Steere and Trevor Robinson: How Live Mesh P2P Syncing Works
Jul 12, 2008 at 2:28 PMDavid Steere and Trevor Robinson: How Live Mesh P2P Syncing Works
Jul 12, 2008 at 2:26 PMDavid Steere and Trevor Robinson: How Live Mesh P2P Syncing Works
Jul 11, 2008 at 10:55 AM@aL_ : Nothing new to say on integration with other MS propertise/apps yet, but we are definitely contiuing to work on this.
Ray Ozzie: Introducing Live Mesh
Apr 29, 2008 at 3:32 PMThe suggestion is now officialy filed
This is not a trivial thing to get right, however. One of the keys to our software working behind NATs and firewalls is that our communications sessions are established by the client doing an HTTP GET to the server (to a special notification queue URL.) The server can then send any important information back to the client as a response to that GET. (the idea being it's much more reliable for the client to connect to the cloud than for the cloud to connect to the client)
When you click "Connect" to a remote device, that device sends an invite to the cloud, and then the cloud sends word of the invite through that notification queue.
If the remote client is asleep, it can't keep the HTTP connection open. So now the cloud has to figure out how to send a WOL packet to this machine that might be well hidden behind a NAT.
I'm not a networking guy by any means, so maybe there's a well established way to do this...but it sounds tricky to me, and in any event would be a different approach to remote connectivity than what we have built for the technology preview.
cheers,
j
Ray Ozzie: Introducing Live Mesh
Apr 25, 2008 at 5:16 PMLive Mesh also uses a control to display the RDP session in the browser. If someone has figured out how to parse and display RDP in JScript, I am all ears
We don't have wake-on-LAN as part of our client communications platform. I will make sure that's on the list of things to consider.
Well, I don't think app settings are usually in My Documents? You can meshify My Docs (as long as you don't have any other Live Mesh Folders already present in the My Docs hierarchy) and it should work, taking into consideration we're still in Tech Preview. App settings are harder, since some apps open their settings files for r/w access for the lifetime of the app, and some apps don't store settings in the filesystem at all.
The platform certainly supports this, if an app wants to implement this kind of functionality.
Email is one of those file types that's hard to synch today when you're dealing with a monolithic PST or OST file. Apps can certainly write to Live Mesh platform to enable great roaming of your email experience, but that will happen over time (once the platform is available.)
Yes, using WHS as your own personal cloud storage is a popular request, and one that we are looking into. The platform is certainly designed to support multiple, federated storage servcies.
-Jeremy, a PM on the Live Mesh team.
Scott Field: How secure is Vista, really? - Part I
Nov 29, 2006 at 11:12 AMWhitepaper on Vista Security: http://download.microsoft.com/download/c/2/9/c2935f83-1a10-4e4a-a137-c1db829637f5/WindowsVistaSecurityWP.doc
CredMan (credential manager): http://msdn.microsoft.com/library/en-us/secauthn/security/credentials_management.asp?frame=true
Scott's blog entry on kernel patching: http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspx
Guidelines on driver installation: http://www.microsoft.com/whdc/driver/install/32-64bit_install.mspx
UAC and the secure desktop: http://www.microsoft.com/technet/windowsvista/security/uacppr.mspx
Office UI - New Licensing Story
Nov 21, 2006 at 2:35 PMOffice UI Licensing Partners
90Degree Software
Attachmate
Falafel Software, Inc.
DevComponents LLC
Developer Express
ILOG, Inc.
Infragistics, Inc.
Syncfusion Inc.
Telerik Corp.
Xceed
Objective Computing
ABB
MindJet
Serena Software
DivElements
See more comments…