Friday, October 22, 2010

My Latest Project - Sync Framework

Okay, it's been quiet around here. I've been working on a new angle for a client to research an alternative to Merge Replication. Enter: Microsoft's Sync Framework (Sync FX). Yes, it's true, I'm actually coding. In C# nonetheless. Go figure!

So what is this Sync Framework all about anyway? The concepts are really not that foreign. Other than not having a fancy GUI or Wizard to walk you through the setup (enter C# progamming) the concepts aren't too difficult to understand. Let's break them down in terms we're familiar with:

You still have your teams - Source and Destination - but when working with Sync, we're going to call them Servers and Clients. Instead of configuring your Publisher and Subscribers as one would with replication, now you are going to Provision your Server or your Client. Okay, simple enough. Here is also where instead of creating a Distribution database, you have now created tracking tables, triggers and sync stored procs to handle your inserts/updates/deletes.

Next up would be creating the Publications. However, we're renaming those to Scopes now. Before you get too worked up, yes, you can Filter your Scopes. This is where things can get intricate depending on your architecture. A 2-tier architecture is rather straightforward, but start going with n-tier (which is supported) and you had best have it all mapped out before you start Provisioning and building out Scopes, much less adding Filters.

The third component in Sync Framework would be the actual Sync. There are no Agents or Jobs to monitor, as this would all be handled in your application with code. This is where you kick off the Sync processing and you can choose to only go one direction, download (ie: Server to Client) or go the other direction, upload (Client to Server) or both! The flexibility allowed with Sync Framework also supports Peer-to-Peer/Mesh sync-ing capabilities.

Since each aspect is controlled by the code and the stored procedures/triggers, you get the utmost in flexibility with creating your own Sync scenarios. Every item is incredibly customizable!

I will endeavor to continue a series of postings about Sync FX. If you have questions, please add a comment and I'll do what I can to help answer. At this time, most of the available information is out on MSDN or in the Sync Framework Forums. Check those out here:
http://msdn.microsoft.com/en-us/sync/default.aspx
http://blogs.msdn.com/b/sync/

For any of you working with SQL Azure, Sync FX will be your Go To option for data synchronization. There is no Replication support: http://msdn.microsoft.com/en-us/library/ee336241.aspx.

A Few Downsides
One thing that has come up in the Forums is the fact that since Replication is not supported, and everyone is pushed to using Sync FX, it should follow that Sync FX would make it much easier to use Dynamic Filtering scenarios. Currently, this is not the case.

Additionally, there is (in the current release) no support for changes to DDL's. So, don't go adding/changing your datamodel or plan to have your Stored Procs, Views, Function, etc. Sync'd automatically.

Pretty Awesome Stuff
Okay, so even with some of the current drawbacks, I have a great vision of this Framework for the future. It is highly customizable, making it extremely flexible to fit the needs of almost any organization. Oh, and to top it all off - you can build your own custom Data Providers to connect to ANY datasource. SQL not required.

Wednesday, September 8, 2010

Exercise your Rights

These last couple of weeks have brought a few key wide reaching issues to the forefront: How Transparent is Transparency? It's Time to Rock the Vote! and People Will Burn Anything for Publicity

In light of the actual events surrounding these topics (SQLPASS Board Nominations, SQLPASS Board Election, and that moron in FL who wants to burn a pile of holy tomes) it really got me thinking. We, as Americans, have really fallen into a mode of complacency. As long as things are 'good enough' and events unfold the way we expect them to, then really, why should any one individual ever stand up and rock the boat? Our not-so-distant relatives fought very, very hard to groom our American culture into what they envisioned would be Easier Times for future generations. Ladies and Gentlemen, I believe they succeeded! And with that success, we have enjoyed kicking back and taking a load off in their honor. What we have not accomplished, sadly, is making sure the system keeps working for us.

Putting this in terms of technology, let's say you have your current system running at optimum levels and sailing along on a daily basis without a hitch. The processes are tried and true, the schedules kicking off exactly and precisely as they are supposed to, and everything is just hunky dory. The longer this period lasts, the easier it becomes to have a false sense of confidence in the system. Small changes start to add up, but you don't really see their effects right away. It's only after an accumulation of updates and minor changes that you may start to notice an issue with a particular facet of the system, maybe performance. The typical American (bear with me on this one) at this point would say "yeah, it's a little slower, but it's still working, so nothing to worry about". Now let this continue to compound over the next several months - or years, even - and HOLY MOLEY! What happened to my system? It was working so well...and now it's even more onerous a task to make it right than it would have been if only you had maintained it in the first place.

So, going back to other side of my analogy, why did we let our government get so out of control? And I'm talking here about the American Government. It doesn't matter if you're Democrat, Republican, Green, Tea, or Dolphin party. Our country was founded on a premise of By the People, For the People. Why then, don't people who complain about health care, foreign policy and a bevy of other issues, go out and make their voices heard? If you feel that you don't have time or energy or a 'say' in anything that goes on in government, you are flat out wrong. It's everyone's duty to make their say heard. It can start with simple things like voting. You don't have to run for office, but you can put your best effort forward and actually go to the polls (or send in one via mail or online in some cases - absentee) and make a Choice. Cast your Vote.

As SQL Server professionals, we also have a way of making our needs and wants heard. It has been wonderful to see people acting passionately about our community. I wish we had that same care about our country. If you haven't voted in the SQLPASS Election yet, please make sure to do so.

So, to end my rant (thanks for tagging along) I want to tell that so-called Church in Florida to STFU. Do you have the right to burn books? Sure. Do you have the right to tell someone else that their religion is less than yours by burning their holy book? No, that just makes you a bully. Now take *your* book and go read it - obviously you haven't done that yet.

Friday, September 3, 2010

Speaking Engagements this Fall

So, I'm super excited to be able to start standing in front of my peers and sharing my knowledge! I have a handful of bookings coming up where I will be talking about Transacational Replication and Women In Technology topics.

Join us if you can!

September 7th, 6pm
Downers Grove, IL
Suburban Chicago Users Group Monthly Meeting
Transactional Replication 101

September 18th, 10am
Iowa City, IA
SQL Saturday #50
Transactional Replication 101

September 18th, 11am
Iowa City, IA
SQL Saturday #50
Women In Technology Panel

October 2nd, Lunch time
Kansas City, MO
SQL Saturday #53
Women In Technology Panel
JUST ADDED! Transactional Replication 101

November 10th, 11:30am
Seattle, WA
PASS Summit
Women In Technology Luncheon - Moderator