Voting


One last thought in the world of Web Services, and that concerns voting. For the foreseeable future one of the tempting options for Web Services will be those that are provided free of charge. As mentioned earlier, there may be many motivations for providers to provide a service on a free basis.

A concern is that you will not be able to establish a contract with many of the free services, yet they may be so enticing that you will not want to pass them by. Your business may become dependent on them, without you being able to ensure that they are always available, reliable, and accurate.

To address this, I propose that firms build into the service-oriented architecture a voting service. This service would find at least two and preferably three or four providers that provide the same or equivalent services. For example, say that you find a service that provides routing information for your truck fleet. You give it two addresses and it gives you the total mileage for the preferred truck route between the two locations.

You find two more such services and send each request to all three. How you process this information will depend on whether the originating call was synchronous or asynchronous (this is another argument for the asynchronous approach).

For an asynchronous call you wait for all three services to respond (or wait some reasonable time frame, such as 2 minutes) and assume that one of them is off line if they don't respond in that time frame. If all three respond with the same answer (within some preset interval), you pass the information on. Two out of three you might pass on or throw an exception, depending on the importance of the answer. If all three are different you throw an exception. In any case you mark the outliers, return to them later, and review any services that are consistently not agreeing and either cull them or investigate (they might be right even though they don't agree).

For a synchronous call, you send back the first result you get. You keep it, and if both of the other two disagree with the first one, you throw an exception that will stop the originating transaction. If one of the others disagrees, you flag it for follow-up later.




Semantics in Business Systems(c) The Savvy Manager's Guide
Semantics in Business Systems: The Savvy Managers Guide (The Savvy Managers Guides)
ISBN: 1558609172
EAN: 2147483647
Year: 2005
Pages: 184
Authors: Dave McComb

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net