# Monday, December 08, 2003
Last week I mentioned that the Microsoft Messaging message wasn't being fully ACK'd by the community and posed some questions.  In the interest of clarifying the message and checking my own understanding, here are some answers I've come up with based on watching the PDC sessions on my daily train commute and the comments that BWill from the Indigo team left on my last post.

What's the relationship between Indigo, MSMQ, BizTalk and  SQL Server "Yukon" Service Broker?  When and where is each technology appropriate?
Basically it depends what type of application you are trying to build and what environment it needs to run in.  Here's a chart adapted from the DAT406 session:

Technology Indigo MSMQ "Yukon" Service Broker
Environment Any WS-* compliant endpoint Windows NT Yukon on both ends
Application Any distributed application Any Async NT Application Database applications
Message Store In memory or DB persistent store
(Yukon/SQL Server 2000)
MSMQ Message Store
(NT File System)
Built into Yukon
Type of Message Persistent and non-persistent dialogs Reliable, Express and Transactional Messaging Transactional messaging only
Protocol Various Various TCP only

Where does BizTalk come into it?
BizTalk is a product that that builds upon other technologies in the Microsoft platform.  As BWill says in comments on a previous post, choosing BizTalk or Indigo will be a question of how much of the infrastructure you want to build yourself.  BizTalk has connectors for MSMQ currently, in future it may connect to Indigo or possibly to Yukon Service Broker.  BizTalk 2004 is currently in Beta it's on a different release schedule than the other products.

Where does Yukon Service Broker fit?
Here's Roger Wolter's answer from the DAT406: Building Reliable Asychronous Database Applications with Yukon:

The key to keep in mind is that Service Broker is a database application framework, not a messaging system.  Yeah we send messages to other databases, but if you're building a messaging infrastructure there's not enough in Service Broker to satisfy your needs.  If you are building a queued, asynchronous database application and you wanted to use reliable messaging to scale out that application, Service Broker is the answer.

There were some hostile questions in the DAT406 session about why it was necessary to put a messaging layer in the database.  John Cavnar-Jonson (who definitely needs a blog) calls it an 'abomination' in the Developmentor Indigo discussion list.  Personally, I think it's part of a Dr. Evil style plan from the SQL team - if they were to add a spreadsheet to the product then a great majority of the world's applications wouldn't need an OS letting the SQL team achieve world domination.  Seriously though, there seem to be several good reasons:

  • Developers that know SQL can now  develop queued, asynchronous database apps.  The ability to have asynchronous queues is a very nice architectural feature.  Being able to achieve this with SQL syntax like BEGIN DIALOG ... FROM SERVICE ... TO SERVICE is pretty cool.

  • It's all in the one box.  Everything happens within the database.  Backup, restore, installation, configuration, monitoring and security are all there in the one location.  So deployment of the database is deployment of the messaging system etc. (no need to hassle with MSMQ installs).

  • The  message broker is the database.  It's easy to query the status of messages, processing the queues is as simple as writing a stored procedure, the database can efficiently throttle the queue processing resources and it's possible to farm out message processing work to another machine since all that is required to process a queue is a DB connection string.

  • It's fast. The Service Broker is fast because there's no need for two-phase commits for transactional messaging, there's no need to cross processes to get to the messaging platform and if the send and receive queues are in the same database then it's very fast.

Neils Berglund from Developmentor has been teaching Yukon for a while to Microsoft employees (such as Tim Sneath) and has an excellent sample chapter on Yukon Service Broker that's available for free download.

How does MSMQ fit into the longer term picture?
BWill says in my comments that the Indigo team has shared the love and embraced the MSMQ team into its building.  John Cavnar-Jonson did some research at the PDC:

I completely disagree with the idea that Indigo offers all of the functionality of MSMQ. I discussed this exact question at the PDC with Steve Swartz, Mike Vernal, and Anand (whose last name I don't recall, but he's an MSMQ program manager).  Indigo will offer reliable messaging (which is a huge improvement over current web service technology), but it will not be a full-fledged message queuing system.

As I reported from the PDC, the message was:

"We are not building the uber queuing system - we are not a replacement yet for MSMQ - we have support for routing, but we aren't replacing CISCO, we support eventing but we aren't a replacement for Tibco."

I think there's more to be said in this space.  It's likely that this is about achieving an Indigo V1 release (primarily about unifying the three different programming models and baking WS-* specification support into the platform) and then targeting more ambitious goals with future releases.

Which parts of Indigo will ship in Whidbey and which bit will ship before or with Longhorn?
Basically, System.Transaction will be in Whidbey, the rest later.  I'm still digesting Don's WSV302 Indigo Part2: Secure, Reliable, Transacted Services and Jim Johnson's Transactional Programming on the Windows Platform presentations to understand this more deeply.

Given that the last version of WSE will be wire-level compatible with Indigo and that a future version of WSE is likely to support WS-ReliableMessaging, what are the benefits of Indigo other than the simplified programming model?
Even though I love WSE I'm following the words of Hervey and accepting that WSE is V.Last++.  This question was me fishing for what features Indigo will provide me with as an architect/developer that I can't get from WSE.  BWill mentions:

Advantages of Indigo over WSE: three off the top of my head are performance, integration, and support [it's part of the platform rather than WSE's 2+1 support policy]. I'm sure there are others. Also, note that there is no guarantee that every feature in Indigo will also be WSE.

So, no bites as to what the extra functionality of Indigo might be, so I'm still fishing (e.g. digging deeper into the Longhorn SDK Indigo Samples).  Of course, Indigo has learnt from WSE, so the Indigo programming model will also be nicer (though the WSE programming model is already small and well refactored).

Indigo is committed to supporting WS-* standards and interoperability, but what extra functionality will be available if the whole environment is made up of Indigo boxes?
I'm still trying to get a feel for what features and functionality might be available in Indigo.  BWill mentions the fact that Indigo will likely run faster in an all-Indigo environment. 

Indigo does offer Peer to Peer functionality
Robert Scoble tells us:

I stopped in on Don Box yesterday and he gave me a demo. Indigo is going to radically change how we think of Internet technologies. Imagine something that looks like a website, but that doesn't require a centralized server. Now you're getting your mind around what Indigo could do. Indigo is designed to take advantage of our always on, always connected computers.

It's not difficult to spot an Evangelist with a marketing strength is it :)? Sounds like a simple programming model on top of existing network stacks opens up opportunities to use the Internet for more than just the web browsers against a central web server.  I think I'll review WSV306 Indigo and Peer to Peer apps on the train this week.

posted on Monday, December 08, 2003 10:02:46 AM (GMT Standard Time, UTC+00:00)  #   
Related posts:
Office Server 2007: Can it help me write less code?
Server-side Excel: changing the face of financial apps?
Ray Ozzie: Services Disruption and the need for 'Client Server Service Synergy'
DDD3: Deadline for speaker submissions extended until Monday
DDD III on Sat 3 June: Call for Speakers!
I can see clearly now: NUnitAddin and NCoverBrowser
Tracked by:
"Post massage" (Site map index for adipex realestate) [Trackback]
"universita italiane" (universita-italiane.pacific-rim-realty.com) [Trackback]
"commercial flooring" (commercial-flooring.richardskogerson.com) [Trackback]
"software gratis" (software-gratis.mercedcountyrealestate.net) [Trackback]
"computers repair" (computers-repair.stephanie-bradshaw.com) [Trackback]
"trova lavoro svizzera" (trova-lavoro-svizzera.oceanshores-realty.com) [Trackback]
"francesco guccini" (francesco-guccini.jeremiahroberson.com) [Trackback]
"risultati partite in diretta" (risultati-partite-in-diretta.maui-upcountry.com) [Trackback]
"cheap domain name" (cheap-domain-name.wailea-realty.com) [Trackback]
"auto noleggio cortona" (auto-noleggio-cortona.chenwangrealty.com) [Trackback]
"cina hotel" (cina-hotel.david-coats.com) [Trackback]
"domiciliazione bancaria" (domiciliazione-bancaria.fresnocountyrealestate.net) [Trackback]
"home loans" (home loans) [Trackback]
"sesso annunci" (sesso annunci) [Trackback]
"Phentermine." (Phentermine.) [Trackback]
"Free fantasy rape videos." (Rape fantasy.) [Trackback]
"Cialis online." (Cialis online pharmacies.) [Trackback]
"Ambien danger." (Ambien danger.) [Trackback]
"Brutal rape torture murder video." (Anime rape brutal gang.) [Trackback]
"Incontri coppia." (Incontri coppia.) [Trackback]
"free rape porn links" (free rape porn links) [Trackback]
"Patient assistance and pharmacy and fioricet." (Patient assistance and pharmacy... [Trackback]
"video hard free gratis mpeg" (video hard free gratis mpeg) [Trackback]
"Generic viagra." (London uk buy generic viagra.) [Trackback]
"IeriWinner_49" (IeriWinner_49) [Trackback]
"Roulette" (Roulette) [Trackback]
"Phentermine 37.5 mg diet pills." (Phentermine diet pills.) [Trackback]
"Tramadol hcl." (Tramadol hcl-acetaminophenophen par.) [Trackback]
"Gang rape and xxx free bbw porn sex video clips." (Rape xxx.) [Trackback]
"sex tips" (sex tips) [Trackback]
"Buy cheap cialis online at low prices." (Cheap cialis.) [Trackback]
"Prision rape videos." (Rape sex videos.) [Trackback]
"Buy cialis." (Where can i buy cialis online.) [Trackback]
"Oklahoma sex offenders." (Registered sex offenders.) [Trackback]
"free rape sites" (free rape sites) [Trackback]
"Tramadol." (Tramadol 200 tabs,fed-ex overnight.) [Trackback]
"Fotoannuncio incontri." (Fotoannuncio incontri.) [Trackback]
"incontri amicizia" (incontri amicizia) [Trackback]
"Rape porn dvd." (Porn rape dvd.) [Trackback]
"Free bondage rape pictures." (Preteen rape pictures.) [Trackback]
"Ass rape porn." (Ass rape porn.) [Trackback]
"Penis enlargement cheap viagra and noni juice." (Cheap viagra.) [Trackback]
"sex granny video" (sex granny video) [Trackback]
"buy phentermine" (buy phentermine) [Trackback]
"Free sex movies forced sex rape." (Adult forced rape site video free.) [Trackback]
"interracial sex porn" (interracial sex porn) [Trackback]
"porn" (porn) [Trackback]
"Cheap generick viagra." (Cheap viagra.) [Trackback]
"The japanese rape of nanking." (Movies, dvd japanese rape movies.) [Trackback]
"Cialis buy online arizona." (Order cialis online.) [Trackback]
"Order cheap phentermine online." (Buy phentermine online.) [Trackback]
"teen blowjob gallaries" (teen blowjob gallaries) [Trackback]
"anal rape porn" (anal rape porn) [Trackback]
"chaepest phentermine" (chaepest phentermine) [Trackback]
"Ambien cr." (Ambien cr.) [Trackback]
"airsoft rifles" (airsoft rifles) [Trackback]
"Cialis free delivery." (Cialis free delivery.) [Trackback]
"erotic stories gang bang and wife rape" (erotic stories gang bang and wife rape... [Trackback]
"Celebrex and side effects." (Celebrex.) [Trackback]
"blonde slut sucks" (blonde slut sucks) [Trackback]
"Phentermine 37.5 mg." (Phentermine 37.5.) [Trackback]
"Buy ambien." (Buy ambien.) [Trackback]
"Rape fantasies." (Rape fantasies.) [Trackback]
"buy viagra online uk" (buy viagra online uk) [Trackback]
"pornhog gay cum" (pornhog gay cum) [Trackback]
"Buy hydrocodone illegally." (Buy hydrocodone online.) [Trackback]
"Xanax generic." (Drugstore charge for generic xanax with no copay.) [Trackback]
"asian porn movies cumshot facial free" (asian porn movies cumshot facial free) [Trackback]
"Tramadol amp buy valium online medications." (Buy tramadol online.) [Trackback]
"bad credit loan" (bad credit loan) [Trackback]
"Baccarat" (Baccarat) [Trackback]
"Online Casinos" (Online Casinos) [Trackback]
"Cheap ambien." (Cheap ambien.) [Trackback]
"Homeowners Insurance" (Homeowners Insurance) [Trackback]
"Slots Machines" (Slots Machines) [Trackback]
"Phentrmine vs phentermine." (Phentrmine vs phentermine.) [Trackback]
"Order viagra online." (Ambien eteamz active com link order viagra.) [Trackback]
"angelina jolie" (angelina jolie) [Trackback]
"Home Owner Insurance" (Home Owner Insurance) [Trackback]
"Home Insurance" (Home Insurance) [Trackback]
"information on male gay sex" (information on male gay sex) [Trackback]
"Cheap phentermine." (Cheap phentermine.) [Trackback]
"iscrizione collocamento-33" (iscrizione collocamento-33) [Trackback]
"homeowners insurance" (homeowners insurance) [Trackback]
"Tiffany towers movies." (Tiffany towers free movies.) [Trackback]
"cosa serve rocefin" (cosa serve rocefin) [Trackback]
"graduatoria d istituto 3 fascia brescia" (graduatoria d istituto 3 fascia bresc... [Trackback]
"Home Owners Insurance" (Home Owners Insurance) [Trackback]
"Buy valium." (Buy valium c.o.d..) [Trackback]
"forced sex pussy" (forced sex pussy) [Trackback]
"Cialis soft tabs treatment effective." (Cialis soft tabs.) [Trackback]
"fabbrica" (fabbrica ) [Trackback]
"Caribbean Poker" (Caribbean Poker) [Trackback]
"Online Video Poker" (Online Video Poker) [Trackback]
"Insurance Homeowners" (Insurance Homeowners) [Trackback]
"antica erboristeria pompeiana" (antica erboristeria pompeiana) [Trackback]
"ass licking lesbian" (ass licking lesbian) [Trackback]
"the bitter end the date rape play" (the bitter end the date rape play) [Trackback]
"Cheap tramadol." (Tramadol cheap no rx free overnight shipping.) [Trackback]
"hot naked chicks pissing" (hot naked chicks pissing) [Trackback]
"Tramadol hcl liquid." (Tramadol hcl.) [Trackback]
"velocita" (velocita) [Trackback]
"Hydrocodone apap 5 500." (Hydrocodone consultations.) [Trackback]
"Amoxicillin." (Amoxicillin.) [Trackback]
"Buy tramadol online cod." (Buy tramadol online cod.) [Trackback]
"Buy hydrocodone online consultation." (Where to buy hydrocodone online.) [Trackback]
"Buy hydrocodone online." (Buy hydrocodone online.) [Trackback]
"Order phentermine online." (Online phentermine.) [Trackback]
"No prescription needed pharmacy feed back." (Phentermine 37.5 no prescription n... [Trackback]
"Phentermine forum online discount pharmacy service." (Discount phentermine.) [Trackback]
"Buy hydrocodone online without a prescription." (Hydrocodone online.) [Trackback]
"Drug phentermine." (Phentermine florida.) [Trackback]