Please enable JavaScript.
Coggle requires JavaScript to display documents.
CHAP 6 Data-Centered Software Architecture - Coggle Diagram
CHAP 6 Data-Centered Software Architecture
Is characterized by a centralized data store that is shared by all surrounding software components.
Repository Architecture Style
Is a data-centered architecture that supports user interaction for data processing (as opposed to the
batch sequential transaction processing discussed earlier).
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
Benefits
System scalability and reusability of agents: easy to add new software components because they do not have direct communication with each other
Reduces the overhead of transient data between software components
Data integrity: easy to back up and restore
Limitations
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.
Data store reliability and availability are important issues. Centralized repository is vulnerable to failure compared to distributed repository with data replication.
Related architecture:
Layered, multi-tier, and MVC
Blackboard Architecture Style
Applicable domain of blackboard architecture
Suitable for solving open-ended and complex problems such as artificial intelligence (AI) problems where no preset solutions exist.
The problem spans multiple disciplines, and each problem involves completely different types of knowledge expertise and problem solving 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.
Benefits
Concurrency: all knowledge sources can work in parallel since they are independent of each other.
Supports experimentation for hypotheses
Scalability: easy to add or update knowledge source
Reusability of knowledge source agents.
Limitations
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
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.
Debugging and testing of the system is a challenge.
Related architecture