Picture an organization with many departments and systems, many of which must share data. For example, one deparment/system is responsible for updating customer data but many departments/systems must be able to read and relate that customer data to their own data. In such a situation, what is your view on using web services to share this core business data across multiple systems?
It seems there are several usage models to consider:
- Application retrieving a single record – No real issues here. There may be a small performance degradation when switching from other mechanisms (e.g. duplicating data across multiple databases and then using database queries to retrieve) to web services but that may be acceptable in many cases.
- Application showing a table of data where the data source for the columns span multiple databases – For example, showing a list of customer names alongside their orders. If both are in one data source then this is easy to develop and performance is quick. If customer names are pulled from CRM’s database and order info is pulled using the Order System's web service then development is more difficult because the data has to be merged and execution gets slow because the middle tier has two (or more) data retrieval operations and then must traverse more than one data set.
- Application searching for data where the search criteria spans multiple systems – If the system can’t join data elements and specify all of the predicates and sort order in one query then this becomes very difficult to develop and very slow to execute.
Note that each of these usage models attempts to use web services to retrieve data within one organization/network. Can web services be made to suit each of these usage models?