Service Oriented Language

I like Jeff’s suggestions for a Service Oriented Lanugage as well as RebelGeekz’ idea of how to include XML Infoset information in a language without resorting to angle brackets. I wonder what a community developed lanugauge would look like? I’ve experimented with Coco/R which really reduces the effort it takes to build a parser. Of course, the language design and code generation are the hard parts!

Source for Coco/R is available on the Rotor Community Projects page. Other cool projects include a port of Rotor to WinCE, two different AOP projects – one for C# and the other language neutral and a set of improved collections.

New .NET Architecture Center

Steve and Keith beat me too it (I was in a meeting), but let me blog the news anyway: We’ve relaunched the MSDN .NET Architecture Center. In addition to the much-improved look and feel, it improves our ability to get new content on the site. For example, we just posted the February edition of Architecture Update featuing an article on smart clients by David Hill and a new community article by yours truly (plus a new yet still horrific picture). We also have two webcasts this week (actually, we have webcasts every week).

Let me know what you think of the new design plus what other content you’d like to see up there.

BTW, I’m aware that there is no RSS feed for the new Architecture Center yet. We’re working on that…

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.