New Weblogs of Note

I don’t want to be a human aggregator, but these blogs are just too cool

  • Keith Short, Architect for VS.NET Enterprise Tools. Check out his post on DSL and MDA.
  • Mary Cullinane, School of the Future Technology Architect. She’s blogging about the “opportunity to build a School of the Future for 800 kids in grades 9-12” in Philadelphia. My wife’s a teacher and I used to work closely with the Education Solutions Group. I can’t wait to see how this evolves.

TechEd Architecture Track

For those who read my site in a news reader, I added a TechEd 2004 flair to my site. The TechEd site recently posted the sessions names for the Architecture Track as well as the abstract for the Architecture PreConference Session. Get more info @ the TechEd home page.

Services Are Neither Applications Nor Components

When you create a system with web services, are your web services components or are they standalone applications? While this might seem like a semantic question, it is actually a very big deal, with a lot of implications in terms of your overall application design, as well as the design of the web services themselves. [Rockford Lhotka]

What’s funny is that it IS a semantic question, and that’s what makes it such a big deal. 😄

Seriously, Rocky argues that web services should be thought of as applications, not components. I completely agree that a web service is “not a tier in an application” and that both services and applications have clearly defined boundaries. I also think he’s on the right track when he writes that many application design principles apply to services. For example, both applications and services have data and business logic layers. But I would call the top layer of a web service the messaging layer, which has only superficial similarities to the presentation layer of an application (i.e. that’s where input and output with the outside world is handled).

However, services also share similarities with components. Services, like components, don’t stand alone. They may not trust each other, but they need to work together to some extent in order to accomplish work. This leads to design questions for services that are similar to component design questions. How do I determine which pieces of required functionality go in which services? How much process code is included in the data management services? What’s the best way to design a service to optimize reuse?

In the end, services are fundamentally different animals than applications or components and I don’t think we as an industry have enough experience building systems with them yet.

Allegiance Source

Again, I’m late to the story but I think it’s ultra-cool that MS Research released the source code to Allegiance. At 511 MB, it’s almost thirty times bigger than Rotor + Gyro, which is a significant code release in itself, though honestly, only about 5% of the Allegiance archive is code, the 95% is in the “Artwork” subdirectory. That still leaves about 25MB of compressed code.

I’d love to see a port to MC++, a la Quake II.NET. Is anyone working on it?

Hacking InfoPath

I had a few negative things to say about InfoPath a while back. Today, I finally used it to solve a “real” problem and I was extremely pleased with the result.

I’m working on some team stuff and needed to collect a bunch of info on all my teammates and stick it in an XML file. Traditionally, I’d have to send out email asking everyone to send me this info, then manually cut-and-paste the results into an XML file. Instead, I whipped up an InfoPath form (well, truthfully, I whipped up several – but that’s just because I’m not familiar with the tool) and stuck it on a SharePoint site. Now, all my teammates can go fill out the form and I can merge the results together in one big XML file. All in under an hour, including learning curve. InfoPath even supports pictures, so my teammates can even provide a photo of themselves in the form.

I’m not exactly uninstalling VS.NET, but it’s good to know how well InfoPath hits the mark for target scenarios like this one.