Yes! this is sync for all…Microsoft Sync Framework…the anywhere, anytime, any device thing, which is currently available in CTP, and will hopefully be released as part of Visual Studio 2008. Countdown for release of VS2008 has already begun, and it is arriving this month.
“Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline access for applications, services, and devices. It features technologies and tools that enable roaming, sharing, and taking data offline. Using Microsoft Sync Framework, developers can build sync ecosystems that integrate any application, with any data from any store using any protocol over any network. Microsoft Sync Framework consists of the following technologies:
- Microsoft Sync Services for ADO.NET, which is used to synchronize databases for offline and collaborative scenarios.
- Sync Services for File Systems, which is used to synchronize files and folders in a file system.
- Sync Services for SSE, which is used to synchronize RSS and Atom feeds with data in a local store.
- Sync Framework core components, which are used to create synchronization providers for any type of data store.
- Metadata Storage Service, which is used to store synchronization metadata in SQL Server Compact Edition.”
Architects and developers and have been developing such custom frameworks for pretty much every large-scale enterprise application. Even I have designed a very light-weight object oriented SAF (Store and Forward) Framework for a system where MSMQ is not appropriate. And yes, for many occasions, these frameworks are one of the the core components of any multi-node, service oriented system. Replicating files or SQL data, passing object oriented messages, either pushing new configurations to nodes, or pulling generated files in the center…we have always used MSMQ, custom schedulers for FTP and web services calls, socket server, 3rd part tools and etc.
The Microsoft Sync Framework is the definite answer to all such needs and for solutions of any scale. I would say that this framework is going to be the heart of all the future SOA based enterprise solutions to be built on Microsoft platform.
This out-of-the-box system can be used in heterogeneous environments, where many tools and utilities are used to integrate loosely coupled multi-platform systems. To have an out-of-the-box experience, many enterprises are using Microsoft BizTalk Server as the core integration hub for integrating in house systems as well as for dealing business with outside world.
BizTalk is a mammoth of SOA jungle…many cant afford it, and many find it an overkill for small or mid size solutions, but hey, now you can have your own BizTalk Mini which can fit anywhere, and here is the formula:
Take .Net Framework 3.5, build required custom synchronization providers for Microsoft Sync Framework, use WCF (Windows Communication Foundation) where appropriate. Lets call them adaptors. Use some Plug-in Framework to raise the level of abstraction for the adaptors. Have a flexible Task Scheduler in the core, along with yet again, a Plug-in based WF (Workflow Foundation) engine, and certainly…the SQL 2005 or SQL 2005 Express as the universal data store, and you are done. All what is left are UI Tools for monitoring and configuration management initially, and many bells and whistles can be added further.
Yeah I know this is no match for BizTalk at all, but trust me, this is a BizSecret I’m revealing here for nothing…one can build a light-weight business process orchestration engine on top of this which can manipulate data from/to any data source. This was the first idea that came into my mind when I read about Microsoft Sync Framework. I will start a POC (Proof of Concept) solution on the idea as soon as I get some time, and I would love to start an open source project based on this idea and any volunteers are welcome.