The immediate problem we face, however, is not the lack of web services but rather the lack of an infrastructure to link web services into something where the whole is greater than the parts. A web service today is little more than a database-driven we site where many users come together and use the same application in a collaborative fashion.
This is a lot more than simply hosting an application; it's all about providing the infrastructure around an application to create an environment.
Today we have any number of web services in the consumer space, the more well-known of which are Yahoo, eBay and Amazon.com. In the business-to-business space, we have several smaller entities trying to pioneer the use of this model, more notable of which are companies such as Salesforce.com and Oracle. The trouble is that a way to link all of these web services into a suite of applications capable of interacting with one another does not exist. As a result, each web service is an island of information and content unto itself, which defeats that fundamental collaborative promise of the internet.
Fortunately a number of technology initiatives are underway to create an infrastructure for linking web services. At the forefront of this effort are technologies such as XML, UDDI (universal description, discovery and integration) and SOAP (Simple Object Access Protocol). These still-emerging technologies and standards are being packaged into competing suites of services and tools from Microsoft on the one hand, and from companies such as Sun IBM, BEA, Oracle or Hewlett-Packard that back Java on the other. It's way too early to say which of these approaches will win the day, but it's clear that the companies involved are betting the ranch.
Microsoft's .Net approach represents an opportunity to overcome the edge the Java camp now enjoys in developing applications for the web. For the backers of Java, web services represent the next generation of internet applications and a chance to cement Java as the dominant development platform. At first blush, it would appear that the Java camp has a substantial edge over Microsoft. But initial buzz about .Net, and in particular Microsoft's C# language, is surprisingly positive. And given the fractured nature of the Java community and the contentious relationship between its major backers, the Microsoft approach is starting to get a fair hearing with developers. A number of companies in the consumer space have already signed up. Will Microsoft ultimately dominate the business-to-consumer space while Java becomes the preferred platform for B2B applications?
Whatever happens, one thing is clear: in the future, developers will be required to pay a lot more attention to how seamlessly a website can be integrated with another website. Today, developers worry mostly about integrating applications with known quantities on their site. In the future, unknown developers will expect to integrate their unknown applications with your existing applications to create some greater set of services. Naturally, they will need your permission to do this, but you won't know what kind of applications they have until they come to your door.
So, to become a model citizen on the internet, you'll be required to expose the applications on your side using a set of clean standard interfaces. If you don't, you'll soon find your site isolated. The good news is that progress takes time, so no real rush is in order. Many of the tools needed are still in early stages of beta testing. But once these tools become available, the odds are good that a rush-to-market frenzy will ensue. This means developers need to be prepared and spend the coming year getting educated. Although everything you know today won't become obsolete tomorrow, it will most likely mean that the complexities you will be required to master will be significantly greater than they are today.