Good keynotes from Pat Helland and Bill Gates yesterday on day 1. There are a couple hundred folks at the event and I thought Gates (and Eric Rudder) was very candid in answering questions for almost an hour. I was particularly interested in Gate's comments on the investment they've made in India for outsourced development (3 large firms). Also talked with other attendees from large ISVs that have also outsourced portions of their development to India and other places.
Helland's talk was called "Metropolis - Part 1" where he made an analogy between the evolution of cities (and associated commerce) and the evolution of IT. Within this major analogy he made 8 other analogies to individual pieces of the physical infrastructure in the evolution of citieis to pieces within IT. These included:
Pat's assessment is that IT is currently at 1880! This is the case since Business process a gleam in our eye, Virtual enterprises getting going, and Communication and browsing well established.
Pat then went through some practical advice for implementing services today (in the pre WS-* world). Some of his most interesting points were in regards to the need for creating a conversation ID, message ID, version ID, and sequence numbers inside your messages. In that way services can ensure once only processing of messages and processing messages in the appropriate order. Another point he made is that messages should be timestamped for validity (perhaps for infinity). The service should then log requests (before sending the response) and responses so it can replay responses if the same request comes in again. This ensures idempotence or the ability to handle a message arriving multiple times. It also improves performance by essentially caching the message in the database (storage is cheap). He also recommended not implementing distributed transactions in business services and to model each message as an atomic transaction. Reference data should also be versioned and immutable so messages can reference a particular version of the reference data. When designing a business service from existing apps you need to look for idempotent sequences of messages and define a message interface (XSD schema) for each sequence.
At the end Pat sang a couple songs about messaging, very funny! Had a nice reception at the hotel afterwards and received a signed copy of Simon Guest's new book on J2EE interoperability with .NET.