Technical Content of this issue - 2 out of 5

The Part About Me

I'm staying at the Wilshire Grand. The room is a little small, but functional. The walls are a little thin. I actually changed rooms this morning because there was a group of three guys in the room next door. They weren't "call the desk and complain" loud, but I definitely knew exactly when they got in and exactly when they got up. The hotel did a nice job moving me even though a room was not available at that moment in the morning. When I got back to the hotel this evening, my suitcase as well as a computer cable I had left in the old room were in my room.

My only complaint would be the accuracy of their language. The first night I went down the hall to get a soda from "Ice and Vending" - the sign was completely accurate, except for the "and Vending" part. There is not a soda machine in the whole hotel that I have been able to find. They advertise "Complimentary Wireless High Speed Internet Access Available in Guest Rooms." - which is completely accurate if 6 kb/sec is considered High Speed. I expected slightly faster.

Great service, mediocre facilities - I think they should change the name to the Wilshire Pretty Good. I think the URL is still available.

The Great PDC Blackout of '05

The front part of the Convention Center is essentially all glass and the corridors are all filled with natural light, so when the escalator going up to the second floor was stopped after lunch, I, like any other regular rider of the DC Metro system, assumed it was broken. A few minutes later I overheard the phrase "power's out." Hmmmm. Sure enough, when I got to my presentation hall, which was not filled with natural light, it was apparent that all the power in the building was out. There were a few emergency lights on, but no screens, no mics, no PCs, etc. Everyone came in and sat down anyway and started discussing the situation. The speaker got up and told us that the power was out for at least several blocks and they did not know when it would be back on, but he wanted us to know why we were sitting in the dark. Someone observed we were probably sitting here because it had not yet occured to us to start looting.* (oooh - edgy humor!)

After about 20 minutes the power came back on and the day proceeded. Turns out that workers had connected the wrong two wires somewhere (story). Computer operations were screwed up for a little while longer, with Internet access unavailable from the Convention Center. I heard two guys talking that their ISP was down - in a wonderful illustration of irony their unavailable ISP was named "Web Hosting for Life."

*For everyone that enjoyed the looting joke, I'm sure there are some who thought it in terribly bad taste. First I would point out that bad taste is the motto of this publication, but I would also offer the following verbal apology - here.

Today's Session - Patterns and Practices for Designing Service Oriented Applications

Today's session featured many speakers, but was led by Ron Jacobs, product manager for Microsoft's Patterns and Practices group. This is the group that created that applications blocks and lots of reference materials on the correct way to construct .NET applications. In discussing the origins of the Patterns and Practices group, he admitted that all of the stuff they wrote in the 90's "made it really easy to write the wrong thing quickly. We have to give you some help about the way we think solutions should be built." I'm a big fan of this group and the info and artifacts they provide. The presenters were once again well-prepared and engaging, but the content of the session was again a little thin. It was essentially a combination of several talks.

The first talk was Patterns for Service Orientation by Ron Jacobs. He started off with the four tenets of of Service Orientation (stop me if you've heard these)-

  • Boundaries are Explicit
  • Services are Autonomous
  • Services Share Schema and COntract, not Class
  • Service Compatibility is Determined by Policy. have heard these, never mind. I get the feeling we are going to hear them alot this week, I guess that's OK, because they are important, but I will stop listing them and refer to them only as TFTOSOA from now on. He spent time talking about 2 Anti-Patterns that tend to screw up early SOA attempts.

The first was CRUD like interfaces, where you set up the contract like you would for a Create, Read, Update and Delete type of application. Problems this leads to are-

  • Things like iterations end up requiring state in the service - eg - I, as a client, start to iterate through a set of something using a cookie you provide to identify myself. Say I get the first two, then don't come back for a little while. How do you know when it is safe to let me go? How many of these "open iterators" are you willing to keep around?
  • The interface is likely to be overly chatty - Services are neccessarily the most efficient mode of communication, especially web services. Each request can be expensive from an infrastructure point of view, with security, serializing, etc. and we want to keep the count of interactions to a minimum.

The other anti-pattern he discussed was "Loosey-goosey" interfaces, or interfaces that don't do a good job controlling access to their functionality. The example he used was a service that wraps a database. When a client wants info from the database, the service owner rightfully says, "no way are you hitting my database, you need to go through the service." So far, so good. Then the service owner creates a method called ExecuteSQL that takes a SQL command as an argument. That would be a loosey-goosey interface.

One interesting point he made is that "No solution is 100%" and that you should watch for your data consistency getting corrupted. He suggested a consistency check process that monitors your database to find any inconsistencies as soon as possible, using the analogy of a canary in a coal mine. (how many of you are humming the Police song in your head right now?)

I didn't get alot of the next several talks, so don't have much to say about them. They went over some new patterns that the P and P group were implementing, but they didn't seem particularly useful to me, perhaps I don't have the vision to appreciate them. At one point, they spent an hour discussing something called the Composite Application Block, a fat client that allows the developer to write small UI's for web services that are then all hosted in one window. It was very smart client centered. There was an interesting observation about in the early nineties when we all liked client/server development with code on the desktop, Microsoft called it "Rich Client." Then the web came around and we didn't like that anymore, so we started calling it "Fat Client" as opposed to the preferred "Thin Client." Now, MSFT wants us to go back, so they are calling them "Smart Clients." Perhaps they will change again and in 4 years we will be calling them "Know it all Clients" or "Smart Ass Clients."

The last session was a presentation by a VP from Pacific Life discussing their adventure with SOA. This was the most interesting part of the entire day, both from content and the interesting, interactions with the Microsoft folks on the stage. Points he made-

  • When exposing external web services, they had problems that not all their clients had knowledgeable .NET, Java or even XML developers to write the calling software. They started getting into the development support business trying to help the dysfunctional teams to successfully call their services. They ended up writing proxies, or compiled components to distribute to their clients that encapsulated the interaction with their services and exposed properties and methods that the client teams were accustomed to. This was the first sign of conflict with the other presenters as this breaks one of TFTOSOA, but as the VP said, "hey, I gotta survive." This is exactly what Verisign does with their credit card processing, they provided NASD with a DLL that we call that then calls their web service. I'm assuming they do this to ensure that the credit card info is encrypted exactly right.
  • Although they have an Enterprise System Bus (ESB), it is not used in every scenario - some services are called directly. If he did it again he would have every call go through the ESB as right now he has no reliable way of knowing who is a client of which service. Ron Jacobs (MSFT) joked that in that case you just pull the network wire and field the calls to find out, to which the VP replied, "Yeah, that's how they do it at Microsoft."
  • They used an ESB purchased by Sun in July (I didn't catch the name). If they did it again he would use BizTalk.

The best nervous laughter on stage came when he was discussing how they test with external clients without risking their production environment. Ron quipped that the P and P group just worried about development, they don't worry about test and production, leading to-

VP - "You all don't talk about them much"
Ron - "No"
VP - "Yeah, funny how that works"

(That's when there was the nervous laughter)

Biff's PDC Mailbag

LM from NY writes - "Great pictures from Day 1. I feel like I was right there with you. Looks like an exciting trip to LA. Did you lose weight?"

For those not with us yesterday, Lenore is referring to the PDC Photo Album - updated with even more images today.

LM - Glad you like the pictures. I have not lost weight, but the camera always takes off about 5 pounds for me. I was also wearing black which many people say is slimming. -Ed.

RW from MD writes - "Hey, my take on WSE is that is that it is MSFT's stop-gap implementation of the WS-* specs until Indego [sic] gets here. Once Indego [sic again] does get here...will want you to use Indego [sic yet again]. There is a migration path for WSE to Indego [, you get the picture] and since Indego is so close and will ship on XP, 2000, 2003 and Vista so I'm not sure why they wasted your time with WSE."

RW - Excellent point. Once Indigo ships WSE will probably be deprecated. However, in 2003 MSFT was saying don't use WSE 2.0 unless you had to, because Indigo was coming and moving might be a problem. Now it is 2005, there is no Indigo and they are about to release WSE 3.0 to production. Yesterday the presenter (not a Softie, but connected) made a reference about probably having another release of WSE for Indigo in the future. Somewhere I'm pretty sure I heard someone claim that WSE would have 5+2 support (5 years, plus another 2 with paid extended support). All this tells me that WSE has a bit of a future and Microsoft is recognizing that after several years of it being the only WS-Security option it must provide a smooth transition, but everything is up in the air. I will try to pin someone down this week to get firmer details on this topic. -Ed.


Tomorrow the conference truly kicks off with the keynote address by Bill Gates as part of the 3 hour general session in the morning. Wise attendees will not drink alot of coffee as I believe there are no breaks. Following that are numerous breakout sessions where the new stuff really starts.

Sarbanes-Oxley Compliance Officer, Biff's PDC Newsletter