Introducing Web Services
Simply defined, Web services are software solutions delivered via the Web. They differ than traditional Web based solutions because they do not require an application interface and are designed to be integratedor consumedby other software solutions. This might be another Web service, a desktop application like Microsoft Word, a Web site or any other software "application" you might imagine. Web services are somewhat analogous to software components but they do not reside on the user's machine and are not (physically) contained within your solution. They are external service that your solution calls upon. A simple example of such a service might be a legal or dictionary that you ship with your word processing solution; useful but probably only to a small segment of your user base. From the end-user standpoint, solutions utilizing Web service might come packed with a cornucopia of features, most of which you might seldom use. As Web services, you do not need to install these features on your computer just in case you might require them in the future. Instead, they are made available to you only when you need them.
The business case for Web services is fairly strong and easy to imagine. It is perhaps easiest to think of .NET Web services in terms of cable television. Cable TV is a subscription modelit provides you with a choice of services (feature sets). With most cable providers, you can choose from at least two service tiers: basic cable, which provides only a core set of channels (basic features); and "basic plus" cable, which comes with a large number of channels. Then, as you know, there are the premium channels such as HBO, Disney, The Movie Channel, Cinemax, and others for which you pay an additional flat monthly subscription fee. Lastly, there are the pay-per-view channels that charge a varying per-program or per-day fee. The software of tomorrow might follow a very similar pricing and delivery plan, where the channels represent sets of features/services and the programs represent individual features. The major difference between pay-per-view programming and Web services will of course be that you don't have to wait until 8:00 EST for the "prime time" delivery of the service.
Web service enabled software is especially attractive in a corporate environment where different users in your company may require vastly different subsets of functionality. Your company needs only purchase and install the basic version of a solutionwithout crippling the power users. They could then gain access to the additional features on a per-use or some type of subscription basis using the Web as the delivery mechanism. Under a subscription scheme, the corporation can either subscribe directly on behalf of its user base or authorize or deny subscription rights to its users directly.
IBM, Sun Microsystems, and just about every other major company are jumping on the service bandwagon by creating their own infrastructure delivery solutions. The major advantage of .NET compared to some of the other platforms is that it delivers a more comprehensive set of standards based features and technologies. Among other things, .NET includes a single class framework library for building different types of solutions, makes it possible to use your preferred development language, is supported by a feature charged enterprise development tool and has infrastructure support from numerous enterprise class servers.
Microsoft formerly introduced one of the first and also most comprehensive Web service initiatives to date at its Professional Developer Conference (PDC) in October 2001: .NET My Services, formerly codenamed HailStorm.