Mobile computing is taking over. The superhero model for a typical IT worker is surely Batman, with a dozen gizmos hanging off his belt: smartphones, USB keys, MP3 players, cameras. However, Windows software developers who want their applications to synchronize data among those devices and with desktop clients, servers and web services... those developers often would prefer root canal surgery. Every Windows app that requires synchronization has had to be custom-crafted code; everything is built from scratch.
MORE ON APPLICATION DEVELOPMENT
Microsoft's Sync Framework attempts to address that particular toothache. The Sync Framework, now in Community Technology Preview (CTP), extends Visual Studio 2008 to sync-enable applications and services. It will work with both online data (such as rich Internet applications and Web services) and peer-to-peer collaboration (such as file updating across USB keys or smartphone data and setting synchronization). "We now have a common reusable extensible framework to keep information synchronized, from back end servers to devices to peer-to-peer," explained Anthony Carrabino, Microsoft Senior Product Manager for SQL Server Marketing. Carrabino discussed the Sync Framework during the DevConnections conference held in Las Vegas this week.
With the Sync Framework, a developer enables a server or application to be sync-enabled using "sharing extensions" on Microsoft SQL Server 2008, Visual Studio 2008, Windows NTFS file systems and removable drives. Developers don't have to know the nitty-gritty of Internet protocols, as the framework takes care of the gory details, and the framework is also said to have a platform-agnostic architecture. A node that's set to be a willing participant in the sync architecture—such as that USB key or a smartphone—can be set to automatically update whenever a connection is possible. How it's controlled and the data that's exchanged is up to the developer, but the connection and data-swap process is smoothed.
After a developer creates the sync-enabled client, server or web service, endpoints (which may themselves be services, applications or devices) are —bam!—suddenly enabled to do synchronization. The Sync Framework has prebuilt components to make it easier for the programmer to work with particular types of devices or services. After an endpoint is defined as a participant and a network connection is found, they can all "talk" and synchronize the data, said Carrabino.
Ho-hum, yet another framework that keeps developers from having to drill down into protocols. But here's the cool thing for IT teams: once a server or application is set to participate in the synchronization network, other applications can use that predefined synchronization without additional custom development.
For example, if you write an in-house custom application to synchronize server information with mobile devices in an inventory application, and the Accounts Payable department later decides it wants to employ a Web services application to synchronize payment schedules with the company's partners, nobody has to start all over again with yet another custom synchronization platform. Developers fro the different parties all can participate in the same database-driven connection used in the inventory application. That could save gobs of time.
Security-wise, "Whatever you do at the data level is
respected and leveraged by the sync framework," said Carrabino.
That includes whatever security you're using to protect the
information in-place (database, encryption, third party
security keys); it also relies on the transport, such as
https or SSL. Services can have another level
authentication, Carrabino adds; there's a little more control
at that point.