Chapter 6: Data-Centered Software Architecture - Coggle Diagram
Chapter 6: Data-Centered Software Architecture
The shared data module
characterized by a centralized data store that is shared by all surrounding software components
two major partitions:
independent software component or agents.
The connections between the data module and the software components are implemented either by explicit method invocation or by implicit method invocation.
Repository Architecture Style
Applicable domains of repository architecture:
■ Suitable for large, complex information systems where many software component clients need to access them in different ways
■ Requires data transactions to drive the control flow of computation
■ Data store reliability and availability are important issues. Centralized repository is vulnerable to failure compared to distributed repository with data replication.
■ High dependency between data structure of data store and its agents. Changes in data structure have significant impacts on its agents. Data evolution is more difficult and expensive.
■ Cost of moving data on network if data is distributed.
■ Layered, multi-tier, and MVC
built up on the top of multiple physical repositories.
Most database systems allow users or developers to create views that are virtual repositories since they do not exist physically
Blackboard Architecture Style
developed for speech recognition applications in the 1970s.
■ Scalability: easy to add or update knowledge source.
■ Concurrency: all knowledge sources can work in parallel since they are independent of each other.
■ Supports experimentation for hypotheses.
Applicable domain of blackboard architecture:
■ The problem spans multiple disciplines, and each problem involves completely different types of knowledge expertise and problemsolving paradigms that require cooperation.
■ Partial or approximate solution is acceptable to the problems.
■ Exhaustive searching is impossible and impractical since it may take forever because available knowledge and even data and hypotheses may not be complete or precisely accurate.
■ Suitable for solving open-ended and complex problems such as
artificial intelligence (AI) problems where no preset solutions exist
■ Due to the close dependency between the blackboard and knowledge source, the structure change of the blackboard may have a significant impact on all of its agents.
■ Since only partial or approximate solutions are expected, it can be difficult to decide when to terminate reasoning.
■ Synchronization of multiple agents is an issue. Since multiple agents are working and updating the shared data in the blackboard simultaneously, the preference or priority of executions of multiple agents must be coordinated.
■ Debugging and testing of the system is a challenge.
■ Implicit invocation architecture such as event-based, MVC architecture