Repository v.s. Blackboard Architecture Styles
When talking about the idea of software development it is very common to encounter ideas of software architecture. Software architecture is the process of defining a structured solution that meets all operational and technical requirements. While also optimizing quality attributes such as performance, security, and manageability. It involves a series of decisions based on a variety of factors, each of which has an impact on the quality, performance, and manageability of the final software product. In this article I aim to focus on two types of data-centered architectures, those being a Repository Style Architecture and a Blackboard Style Architecture.
There are two common components when talking about data-centered architectures,
- A central data structure or data store or data repository, which is responsible for providing permanent data storage. It represents the current state.
- A data accessor or a collection of independent components that operate on the central data store, perform computations and might put back the results.
The differences between a Repository Style Architecture and a Blackboard Style Architecture are how the flow of control changes. In a Repository Style Architecture, the data storage is passive and the software components and clients of the data store are active. That is, the client sends requests to the system to perform actions, and the computational processes are independent and triggered by incoming requests.
In a Blackboard Style Architecture, the data store is active and its clients are passive. Thus, the flow of control changes is determined by the current data status in the data store. That is, it’s acting as a central data repository and an internal representation is built and acted upon by different computational elements. Blackboard Style Architectures usually have three distinct components,
- Knowledge Sources, also known as listeners or subscribers are distinct units. They solve parts of problems and aggregate partials solutions. Interactions among knowledge sources take place through the blackboard.
- Blackboard Data Structure, The problem-solving state data is organized into an application-dependent hierarchy. Knowledge sources make changes to the blackboard that lead incrementally to a solution to the problem.
- Control manages tasks and checks the work state.
Resources used for this post:
https://www.tutorialspoint.com/software_architecture_design/data_centered_architecture.htm
https://www.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf