Monday, January 24, 2005 - Posts
I've been thinking a lot recently about Yukon's Service Broker in preparation for some talks I'm working. Pretty much everything I've learned so far has come from Dan Sullivan (who really needs to get a blog) or Robert Hurlbut, two names to follow if you're going to be serious about SSB (well, other than Roger Wolter, but you better already know who he is…).
Today I had a chance to start reading Towbridge et. al. Integration Patterns book and something just clicked. We hear a lot of folks asking the question: "Well, if it had a GUI, why would I still use BizTalk?" My answer now is "because BizTalk is a Process Integration Controller, where as Service Broker is what its name implies." To understand that answer, you have to understand the differences between Process Integration Control and Message Brokering. I couldn't really hope to that justice here, and the definition of what a Process Manager does is pretty much describes what BizTalk does. The seeming lack of differences between an SSB Service Application (typically a stored proc, T-SQL or otherwise) and a BizTalk orchestration muddies waters further. But the key difference in my mind is how you use them. For example, SSB also fits nicely within this book's definition of a message brokering system -- basically a concentrator/multiplexer for messages between. BizTalk, however, makes it easier to build out more finely-grained process integration programs that operation between most any set of endpoints (between bounds, OS and the myriad of other factors.)
That thought helped confirmed a mnemonic for SSB that I've been working on for a while: Complex, but not hard. But be careful to understand that's not literally what I'm saying -- its just a shortcut for remembering the following:
SSB provides a framework for building Asynchronous, Distributed, Transacted and Queue Messages (ADTQM for short). It takes care of the hard-to-code problems like guaranteeing in-order delivery and message correlation. In other words, you don't have to (or likely want to) do that hard work if SSB is an option in environment. What SSB also does is allow you to focus on the complex parts more immediately. That is: how do I design an application for the business problem. Think of it this way: suppose you working on a "e-tailing" application that lets customers buy products from you online. SSB removes one of the barriers you have to making that kind of application scale up and out gracefully by giving you the framework to work with that solves the hard parts of writing messaging applications. How you choose to solve the complexities like making sure that a customer's credit is okay, or posting charges to the general ledger or creating a shipping order for the warehouse are done right and in the right order is left up to you.
Now if we just had a nice GUI for doing that! I'd be a nice surprise to see one ship with SQL Server 2005 though. That's not to say that the community or third-party ISVs couldn't create some very good ones indeed. I'm sure several will.
print $blog <<RANT;
Some people just can't be wrong. Even when they are and they know it. That's bad, but hey, that's human nature. Its tollerable to let them think they won.
Some people just love to use every conceivable adjective they can find to make everthing seem likes its a terrible drama unfolding. Fine, eventually everybody else learns to filter out those hystronics and get past them.
Then there are some people who, once they get of hold of something that they don't think is right but others disagree have to keep harping on and talking about and debating it ad nasuem. Eventually, it just becomes too easy to tune them out.
Finally, there are just some people who want to have the intrepretation of the facts be seen as the facts. That's madding because frequently, such people seem to adjust the "facts" to suit their point. Once you call them on it, they seem to fold pretty quickly.
But you know who drives me totally nuts?
People who do all four of those at the same time! I'm sad to say it, but in my short tenure as an MVP, I've seen two cases of it.
If you're one of those people, might I suggest this short self-help program.
- Say out loud: "Nobody knows everything. Everybody has something to learn and to teach." Repeat for five minutes.
- Again: "My name is not Chicken Little and the sky is not falling." Repeat for a least five mintues.
- Next try: "I'm just looking at the bark, not the whole tree or the forest."
- Then try speaking this for another five minutes "Nobody else sees the world through my eyes... as long as their in my head."
What will you get for your efforts? Will this theraphy help you be a better person?
Frankly, I don't know. I hope it does, but if it doesn't that's fine, its achieved what I wanted it to.
It kept you busy not bothering me for 20 minutes so I could move on help others.
RANT
Bonus points if you can tell me programming language the preceding would be an perfectly acceptable chunk of code in and what it does.
More of a note to myself: You can't create a XML Path Index without a primary XML Index, and you can't create a primary XML index without a primary key on the table. You also can't alter the columns in a Primary Key if you have an dependent XML index on the same table.
Of course, you can have a primary key without any XML indices, but that messes up my little mnenomic... :(
Funked. Depressed. Saddened.
The other day I mentioned that big things were up in the air. They've since crashed. I should have seen it coming I guess. And it really feels like its for the best. Still, it sucks.
So the song in my mind tonight is another Zevon classic, "The French Inhaler." Its my comfort music.
Where will you go with your scarves and your miracles
Who's gonna know who you are
Drugs and wine and flattering light
You must try it again till you get it right
Maybe you'll end up with someone different every night
I wonder how long its going to take to get my first Spam...