An interesting blog entry and associated Infoworld article from Jon Udell on The many meanings of metadata.

The solution is a complex recipe, but we can find many of the ingredients at work in the emerging discipline of SOA (service-oriented architecture). We use metadata to describe the interfaces to services and to define the policies that govern them. The messages exchanged among services carry metadata that interacts with those policies to enable dynamic behavior and that defines the contexts in which business transactions occur. The documents that are contained in those messages and that represent those transactions will themselves also be described by metadata.

It’s a concept that’s closely related to what I think of as one of the key tenets of the SOA philosophy: Interface-first Design.

You can’t have loosely-couple applications working together if you don’t know how you’re going to wire them together. You need to have a defined interface that can be used first as part of a test harness while you build and QA your service, and then as a contractual relationship between two businesses. The interface is the description of a services capabilities.

It really doesn’t matter what sites behind the interface, as long as the interface is stable.