Hi,
I am thinking about some issues which may match the term software integration best.
Assume there is a machine running an operating system and some programms A, B and C. Now all programms somehow store data on the filesystem. Lets say A uses Apache Derby, B uses PostgreSQL and B uses XML files.
Now there are three ways to store data. The obvious question is: Why not use just one way of storing data for all programms?
At first someone could say: There is no way to configure the way of storing data for most programms. It is build into the programms itself. Its a developer decission, based on the requirements of the software.
This may be right, but I don't think that most programms has special requirements on how to store data. There is only a minority of programms which needs a specific way of storing data. All developers of the majority of software may agree to one specific way of storing data, e.g. PostgreSQL. Now the administrator could install PostgreSQL and all the programms could use it together.
This could be even more flexibel. I don't know if there is something similar for native programms, but for Java programms you can use something like JDO to store the data. JDO is a standardized persistence framework, which is datastore agnostic. It is possible to use RDBMS, XML, object bases datastores or whatever. The programm is almost 100% independent from the way of storing data! You can configure the way the programm uses to store data through a configuration file.
If all programms would use JDO, all programms could be configured to use the same datastore, without beeing fixed to a special one. This would simplify the software landscape on such a machine.
This is not limited to datastores. There maybe other redundant software on this system, which is even more integrated into the software and may not be configured from outside, because lack of abstraction.
Are there any known approaches to integrate all the different software in a more homogeneous way?
Thanks in advance