Reputation: 1584
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:
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?
Upvotes: 0
Views: 107
Reputation: 10225
Sharing data in the three ways you've out-lined (via Web Services) is indeed possible, but there's lots of other factors which will drive the right approach.
Architectural aspects to consider:
Things to consider when integrating with another system:
If your data exists in a single DB that's serving a transactional system then any queries made against it can affect performance of that system; if you have many systems hitting that database then you've got a crucial piece of data infrastructure to protect - it goes down so does everything else.
Databases written to support transactional systems often aren't suited to analytical ones. A common approach where I work is to ETL out copies of the data into a repository designed for the purpose in mind. The other advantage is that (as it's in a separate system) you won't get performance issues on either side.
Assuming you do ETL out the data to a new repository which source is the authoritative one? It might be that several applications ETL data into a central Data Mart or Data Warehouse where that data is integrated - and that becomes the "source of truth".
In closing - working with data (both logically and physically) is a lot like Object Orientated programming / design: a lot of the underlying principles (like SOLID) readily apply.
Upvotes: 1