Two models for sharing enterprise data.
Our Information architecture group has been discussed models for sharing enterprise data. The following lines summarize of our discussions.
Each and every enterprise systems deal with data entities for certain enterprise users group. That system target is to let the user to work with system data in order to fulfill user enterprise tasks. As such the user has very close and intimate knowledge of the system data and business logic that activate on system data.
When we want to share data between enterprise user groups we don’t want users group to deal with other users groups internal data. We'd like user groups to deal with certain system data that concern them rather then all system data. It is pretty much clear that most of the system data is for internally uses and the minority has meaning for other groups thus should be shared.
After mapping all systems data that should be shared across the enterprise there are two main concerns that we address.
1) Format to share data. Usually most of data sharing is done by writing documents and send them across the enterprise. So the default format was Word which is the enterprise word processor. But we are talking about sharing system data so we need away to mark entities and their types when they appear on document. So it looks like plain XML will be much more appropriate for this task. Using XML we can use XML tags to mark entities and we can use XSLT to format and display them to the end user. Yes we can do it with word but we will end up with Word engine that will be responsible for marking entities… (And I don’t mention other formats such as power point and excel). From our point of view and enterprise business architecture we currently are voting for XML.
2) Model of data sharing. There are two models that we thought about:
a. Single point of share: this model is built on dedicate system that map all shared systems entities and present certain flow of work on those entities. Dedicate system form structural way of work on enterprise entities which is easy to work with but is very firm and hard to "bend".
b. Virtual share bus: in this model there isn’t one system that manages share data. Instead every system has transformer that know how to convert system shared data to XML and present XML document and manipulate it. Virtual share bus present XML bus that enable transferring of data between systems and enable every system to show and manipulate or add information to the shared XML document. This model is much more flexible but harder for user to grasp.