Tuesday, March 4, 2008

Semantic Web Brings Change to SOA

Web DevelopmentIt's impossible to underestimate the impact that SOA, or service-oriented architectures, has had on enterprises and business integration. Whether or not a business has implemented a full-fledged SOA platform, there is still a very good chance that a large portion of their business and partner integration is based on core SOA technologies such as XML.

The funny thing about SOA is that despite its importance, its origins were in many ways a surprise to many of the pundits and experts who followed the technology at the time of its infancy.

Back then, most of the focus on Web services was on the consumer and individual side of the Web. Anyone who sat through early Web services demos most likely saw a sample application designed to help an individual book travel, or buy online goods.

But while all of the pundits were focused on consumer-side Web services (and often predicting the failure of Web services due to the lack of consumer Web services) much of the real work in Web services happened in the nuts and bolts of enterprise back office integration.

Core Web services technologies such as XML, UDDI and WSDL proved invaluable to helping businesses tie together their databases and applications and also integrate with partner applications. And the growth and maturation of these technologies has led to what we today call SOA.

And now SOA is today facing a potentially radical change that could greatly alter the way businesses use and build SOA platforms. And interestingly, the technology that will bring about this change is one that faced a similar growth curve as SOA.

This technology is the Semantic Web, which itself faced misplaced hype in its infancy and is now seeing real growth and interesting implementations that are in many ways different from the initial expectations.

The Semantic Web is Web creator Tim Berners-Lee's next vision for the Web and a technology that has been called (somewhat unfortunately) Web 3.0. In short, the Semantic Web is a set of technologies that make it possible to treat all content and information on the Web as if it was data in a database. In a semantic-enabled Web, whole new types of applications and mashups become possible as everything on the Web is tagged, marked and linked to accurately portray what it is.

Not surprisingly, these technologies could have a huge impact on how Web services and SOA systems are deployed.

Think about a typical Web service. The technologies of Web services tell systems how to connect, how to map to each other and how to convert data. But they can't tell anything about the services themselves. To a SOA enabled system, there's really no difference between a WSDL for a supply chain system and a WSDL for reading RSS feeds.

But in a semantically enabled SOA, the services would actually describe themselves. In these scenarios, it would be possible to write implementations that would automatically find all services and data that had been tagged to meet a specific SOA need (say for example tax information).

These capabilities, along with other important Semantic Web technologies such as SPARQL, which essentially brings SQL-like querying capability to the entire Web, could revolutionize how SOA systems are built and used and, most importantly, how they evolve.

In a semantic-enabled SOA, whole new realms of information become possible, and I expect we will soon start to see radically new SOA systems that leverage Semantic Web technologies.

Will it be SOA 3.0? I sure hope not. But it will be very interesting.

No comments: