Marrying a relational database to a file system is one of the daunting challenges faced by WinFS. Another will be convincing
developers to exploit the built-in WinFS types and create new types that define customized axes of controlled metadata. A
third challenge will be to build bridges between WinFS types, which are specialized .Net objects, and documents or messages
represented using XML and described by XML schemas.
Over time, of course, all file systems have evolved in the direction of richer metadata. The star-crossed BeOS left one important
signpost. The Be File System supported unlimited amounts and types of file metadata and could effectively index and query
that metadata years before its spiritual descendant, Apple's Spotlight, arrived on the scene.
Another signpost is ReiserFS, a journaling file system that's used in a number of Linux distributions. In Version 4, which
was recently released, speed, reliability, and extensibility were all priorities, but the long-term goal is to model information
in ways that are friendlier to the associative style of human thought. "We very much share the BeFS vision of enhancing the
file system namespace semantics," architect Hans Reiser has said. To get there, it was first necessary to create a flexible,
high-performance foundation for managing metadata. Now that's done, he says, and the next phase -- "adding search engine and
database semantic features into the file system namespace" -- can begin.
Bringing it all together
As we weave more and better metadata into software, documents, Web sites, and file systems, the information stored in these
various containers will become more available, more cohesive, and therefore more useful. The next challenge is how -- in this
new era of interconnected systems, people, and business processes -- to unite these separate realms.
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.
There's no overarching schema for the metadata that flows through the service network, touching routers, registries, security
gateways, databases, and end-user applications. And, in view of its many forms and uses, it's not clear that convergence on
a single standard is necessary or even desirable. What is necessary is that within each metadata domain we strike healthy
balances between the constraints we apply to metadata vocabularies and the evolutionary freedom we allow them. Across domains,
we'll speak the lingua franca of data and metadata, namely XML.