components are interchangeable, loosely coupled and upgradeable, and interfaces are standardised. Therefore, they can be developed and optimised independently, thereby deceasing greatly the overall inter-dependence among components and cutting down on the coordination costs.