Communication Is Key
By Jonathan Goodyear
At Tech Ed 2005 in Orlando this year, Microsoft had a video podcast (http://www.microsoft.com/events/teched2005/podcast.mspx) crew that shuttled around the conference center on Segway scooters (http://www.segway.com). Among their antics, they would catch Tech Ed speakers off guard during their talks and rope them into impromptu interviews. They referred to these as PodAttacks. When asked what he was during one such PodAttack, Don Box responded that he was a representation of an ideal (http://casting.dlservice.microsoft.com/download/9/0/9/909bacae-0a7b-4ffc-aa59-f41a463ed91e/PodAttack_Don_Box.wmv). This was typical Don Box, and the audience loved it.
Of course, Don was referring to his heavy involvement with Indigo, the next generation XML messaging stack being developed by Microsoft. You can think of Indigo as all of the great parts of DCOM, Web services, Enterprise Services, and Remoting put together, with very few of their drawbacks. I think that Indigo is going to be a key technology component in the development of applications using Service Oriented Architecture (SOA) over the next five or more years.
However, Indigo suffers from the same drawback as its v1 rendition (Web services), in that it is extremely verbose. Any messaging stack based on XML is verbose almost by default. It s the price that seemingly must be paid for platform interoperability and standards compliance. This verbosity makes it unsuitable for some applications. Let me give you an example.
During Paul Flessner s keynote at Tech Ed, he demonstrated SQL Server 2005 s failover capabilities by bringing a Battle Bot on stage to destroy a network switch connected to one of the servers. SQL Server 2005 then seamlessly transferred operations to the second server, successfully completing the demo. The Battle Bot (named The Finalizer) is powered by .NET v2.0 and was created by my company, ASPSOFT (http://www.finalizer.net).
While building The Finalizer, my team had to determine how we were going to wirelessly transmit messages from a laptop (with its attached Xbox controller) to the Battle Bot. Because the control messages had to be processed in real-time, we calculated that we had to send a message packet every 100 milliseconds (10 times per second). We contemplated using Web services or Indigo, but the payload size would have been almost 15K. At that size, our wireless network would have been overly chatty and the responsiveness of The Finalizer would have been significantly diminished. By contrast, we were able to send the same message as a stream of bytes over a socket-based connection with only 35 bytes. It wasn t the sexiest solution, but it was the best solution.
The point that I m trying to make is that you shouldn t assume that older forms of communication like sockets and DCOM are dead. There are still times when they are the best solution to a particular problem. Web services today (followed by Indigo in the future) are far preferable options for line of business applications because of their ability to provide services such as transaction management, encryption, security, and routing. However, the very architecture that enables these advanced services makes them ill suited for situations in which raw communications speed is necessary. Line of business applications typically don t have the extremely high responsiveness constraints that we were faced with, so this barrier doesn t come into play as often in that space.
Eventually, higher bandwidth wireless connections and fiber optic wired connections will render this argument obsolete, but we re still several years away from that ideal. Until then, don t blindly accept the newest technologies that Microsoft dishes out as the solution to all problems. Prototyping and analysis must still be done, and hard architectural decisions must still be made.
Your applications should plan for the future when possible, but they must still perform today.
Jonathan Goodyear is president of ASPSoft (http://www.aspsoft.com), an Internet consulting firm based in Orlando, FL. Jonathan is Microsoft Regional Director for Florida, a Microsoft Certified Solution Developer (MCSD), and author of Debugging ASP.NET (New Riders). Jonathan also is a contributing editor for asp.netPRO. E-mail him at mailto:[email protected] or through his angryCoder eZine at http://www.angryCoder.com.