When you get a business need to expose a piece of data, build the necessary asset that will assist in data integration and consumption. Data integration can be accomplished in many ways – by exposing a web service interface, via an object library, message publications, ETL, or by sending file extracts. What would be an option that will be a prudent investment for your firm? Do you envision multiple applications and/or processes to consume this piece of data in real-time?
Data management interfaces typically consist of create/read/update/delete operations and additional functionality (e.g. transformation, search, enrichment, encryption, etc.). If you get a requirement to expose customer data for a project, you can provide a Customer interface that supports a getCustomer() function. If applications/processes need to get access to this data from varying platforms, you can expose this as a web service. If it is required within a single platform, you can expose it as a library (JAR or DLL for instance). The important thing is to resist placing data management logic alongside consuming application code. Every consumer would have to implement the similar code and you will add operational complexity every time you need to modify data structures or upgrade versions. The library or web service can encapsulate most of the data logic and leave the consumer with what they really want – an easy way to get and update business data.
The data management interface could also support additional operations but you don’t have to build them immediately. Over time, you can enhance this interface to offer additional functionality.