Blog Home  Sign In RSS 2.0 Atom 1.0 CDF  

  def Softwaremaker() :
         return "William Tay", "<Challenging Conventions />"

  knownType_Serialize, about = Softwaremaker()
 

 Sunday, January 28, 2007

It is amazing to note the reach to the masses of a single MSDN Webcast. I had conducted a MSDN Webcast titled: "Acks and NAcks: Why We Need the Principles of TCP/IP Reliability in SOAP" in mid-2006 and till this day, I am still receiving questions and feedback about that topic I presented in the webcast. (Incidentally, you can view the on-demand webcast here.)

For those of you who do not want to go through this webcast again, I am going to break that presentation into the WHYs, WHATs and HOWs on this blog. This will make for easy-reading and straight-to-the-point as well.

WHY ?

This is rather straightforward. Why is it important? Why does it matter whether messages can be sent and received reliably? Web services is based on XML messages being sent and received. The most useful Web services will often be those that are the most complex and that rely on many messages being sent and received in a very specific order. That's the way that complex transactions can be built, after all.

Let us look at this problem in context before figuring out where the pain-points are. Most complex transactions in enterprises require far more messages to be sent and received. The messages will be much more intricate and may have very complex dependencies on one another, so that certain processes can't be kicked off until certain previous messages have been sent and acknowledged. Entire complex transactions can fail because a simple message didn't get through. And while it may sound simple to guarantee reliability, it's much more difficult than you might expect.

To add to the complexity, the main characteristics of Web services is communication over unreliable communication channels such as the Internet employing unreliable data transfer protocols such as HTTP, SMTP and FTP. These are considered unreliable, as they do not offer the reliable messaging services such as guaranteed delivery. Accordingly reliable messaging becomes one of the first problems that need to be addressed for Web services to become truly enterprise-capable technologies.

openquotes.png...there is nothing in SOAP or even HTTP that guarantees anyone that a message is delivered, or that allows a someone to tell the sender he/she has received the message...closequotes.png

Making reliable messaging more difficult is that messages are sent not just over the notoriously unreliable Internet, but also between partners that use entirely different networking infrastructures.

What many companies did in the past was to rely on proprietary messaging infrastructures to connect applications with one another. In these days of "open-standards", the industry would much prefer what Web services promises -- a messaging paradigm NOT based on any proprietary implementations."

To put it simply - If that reliability can't be guaranteed, Web services simply won't be used in the enterprise. The benefits of Web Services cannot be realized if it is not being used for complex scenarios in the enterprise.

Let us look at some of the inherent problems in which cross-boundaries communication happen today, especially over the cloud:

  1. Re-ordering of Messages in Multi-Path Routing Scenario

    This is one problem that not many people realize because not many people would know the entire infrastructure physical topology of a end-to-end communication network channel. If you have 2 or more intermediaries that act as routers over a load-balanced network for example, messages being sent out may be routed differently over the network. In other words - The first Message ONE may be routed via Router 2 while the second Message TWO routed over Router 1. The complexity arises when the routers have their own routing table and paths and due to congestion of Router 2 over Router 1, the second Message TWO may arrive first, faster than Message ONE, at the final destination.

  2. Intermediary Reliability

    What is not so self-explanatory is this - What happens if/when the intermediary drops my message ? How do I know if the other party has received it ? If I should send the same message again (just to be sure), how do I know if the serivce is designed to be "idempotent" ? This point has very explicit relations with the Quality-of-Service (QoS) assertions of a service. Each message sent must be received exactly once (once and only once). Failure to deliver a message be made known to both the sender and receiver.

  3. Connection Management

    • “… my connection with the service drops frequently within this Wi-Fi network, but I don’t want to lose messages or the underlying session …”
    • “Bursty Connections - I may go idle for long periods of time and I don’t want to hold transport connections open …”
    • “… my service is using resources for each session and I want to release those resources if the client is not there anymore …”

  4. Need for Transport Independence

    As I have mentioned earlier, different partners have different networking infrastructures and the need to rely on "open-standards" means that there is a need to decouple that reliablity element away from the transport. This ensures that different parties can choose to use whichever transport that suits them best but yet have a common accepted understanding on the reliability protocol that is independent of the chosen mode of transport.

To sum it up simply, we live in the real world. One that is not so perfect. The one where

  • Servers fail
  • Systems get out of synch
  • Messages get lost
  • Messages get re-ordered
  • Messages cannot be safely re-tried

and the same one that explains why we need reliable messaging in Web Services.

NEXT UP: WS-ReliableMessaging Simplified - WHAT and HOW ?

 

Saturday, January 27, 2007 11:28:19 PM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer 
  • Blog reactions

  •  Thursday, January 18, 2007

    With so much advances in game controller technologies, such as the ultra-cool Nintendo Wii , it really is no surprise that the Xbox controller has found its way into a "real" battlefield.

    Kinda gives new meaning to the phrase: "First Person Shooter", doesnt it ?

    Thursday, January 18, 2007 1:13:46 PM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer 
  • Blog reactions

  •  Wednesday, January 17, 2007

    Might go down as one of the chapters in the Technology History Books of the future:

    http://www.wired.com/news/wiredmag/1,72497-0.html

    Open Quotes Terry Semel was pissed. The Yahoo CEO had offered to buy Google for roughly $3 billion, but the young Internet search firm wasn't interested. Once upon a time, Google's founders had come to Yahoo for an infusion of cash; now they were turning up their noses at what Semel believed was a perfectly reasonable offer. Worse, Semel's lieutenants were telling him that, in fact, Google was probably worth at least $5 billion.

    This was way back in the summer of 2002, two years before Google went public. An age before Google's stock soared above $500 a share, giving the company a market value of $147 billion -- right behind Chevron and just ahead of Intel.

    As Semel and his top staff sat around the table in a corporate conference room named after a Ben & Jerry's ice cream flavor (Phish Food), $5 billion sounded unacceptably high ... Close Quotes

    Many people today still looks at the mistakes and what could-have-beens. I am still willing to bet that there are many more correct decisions that went unnoticed. It is just human-nature <consolatory_tone /> to glorify mistakes and forget achievements. Still, with a scale of a potential boo-boo as such, it is really not easy to forget.

    I believe that both are still in the game. There are just too many WHAT-IF statements. Just like most things in today's world - and please pardon my non-deterministic stance and cliche here - There is really never a winner or a loser. It is all relative. It is a matter of leads, trails and of course, catch-ups. It still remains to be seen whether that decision (or non-decision) would come back to haunt them one day. Who knows - It may be the best decision they have made.

    Tuesday, January 16, 2007 10:41:33 PM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer 
  • Blog reactions

  •  Thursday, January 11, 2007

    This is obviously the buzz that has occupied most the bits on the wire and water-cooler conversations recently.

    While there have been many opinions about it - for me, it is always functionality over form. The way I dress sums that statement up well.

    The fact (right now) that is doest support 3G is not important to me (yet) BUT the biggest obstacle is that I cannot believe their batter if NOT removable. Every PDA/phone I buy, the first accessories I buy are the extra cells - and I always asked for the higher capacity ones. I do use my PDA well.

    Having ONE cell only, since it is not removable, is a NO-NO for me.

    However, I dont know if all is cast in stone yet. This is the era of Web 2.0 and you, as the Time Magazine Person of the Year 2006, are very powerful in casting your vote in earth-shattering decisions.

    That said, I have always said I take my hats off to the marketing geniuses of the iPods. Now, I am hearing the flight captain over the airwaves: "Please turn off your iPods, mobile phones and personal computers..."

    6 months down the road, what would it be ? "Please turn off your iPod, iPhone, iMac. Period" ? Nuff said.

    Having said that, features and functionality aside, Microsoft seems to be latching on correctly as well. I remember coming across a video interview with Steve Ballmer back when Zune was released.  He mentioned that he would have tried to brand Xbox as the "Windows Game System". Now, let us all heave a sigh of relief it didnt happen and he is CEO and not CMO for a reason.

    Like many big multinationals selling products, it is always been part marketing and another part management making these branding decisions.  Robbie has been instrumental in convincing others within Microsoft to step outside that comfort zone with names like Xbox and Zune.

    According to this story, there is a Zune phone in the works. Now if there is, let us put some creative marketing algorithms around this:

    Zune = Z + Tunes (-T or +Last 3) ? So, would

    Zhone = Z + Phone (-P) OR Zone = Z + Phone (+Last 3)

    Now, who wants to bet if this would happen: "Please turn off your Zune, Zone, Zile. Period" Now, wouldn't that be something ? 

    Thursday, January 11, 2007 5:03:51 AM (Malay Peninsula Standard Time, UTC+08:00)  #    Disclaimer 
  • Blog reactions