Primarily because of their distributed nature, web services provide advantages to developers, the most important of which is ease of code reuse. The cost of a web service’s distributed processing is performance. Because the web services require network operations, the web service will be considerable slower than a program’s call to a function that resides on the same computer. Consider, for example, the following C# program that determines the square root of the values 1 to 1000:
The program, in this case, simply tracks how long it takes to perform its processing and then displays output similar to the following:
In this case, the square root processing took 5 ticks (100 nanosecond intervals) to complete.
In contrast, consider the following C# program that uses a remote web service to calculate the square-root values:
In this case, the program would display output similar to:
As you can see, the message-passing overhead associated with the calling the remote web service increased the processing to over 10,000,000 ticks. The point of these two examples is to illustrate that because of network overhead, a web service, despite the increased reuse of code, is not always the best solution to a problem.