I. Introduction
There is a common need to search information supplied by data providing web services that return a set of objects for a given set of parameters without any side effects. For example, consider a query to find USAF Academy's Zip code and the State where it is located. The three different data providing web service calls in this query are GetAllStates [3] to retrieve all the states, GetInfoByState [19] to get all the Zip codes within a given state, and GetPlacesInside [4] to provide all the places having a given Zip code. A naïve implementation of the example query makes 5000 calls sequentially and takes nearly 2400 seconds to execute. The reason is that each web service call incurs high latency and message set-up costs.