Repository v.s. Blackboard Architecture Styles

Michael Dubravski
2 min readOct 12, 2020

--

Photo by Tobias Keller on Unsplash

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.

Diagram of a Repository Style Architecture | Photo used from https://www.tutorialspoint.com/software_architecture_design/data_centered_architecture.html

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.
Diagram of a Blackboard Style Architecture | Photo used from https://www.tutorialspoint.com/software_architecture_design/data_centered_architecture.html

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

--

--

Michael Dubravski
Michael Dubravski

Written by Michael Dubravski

Hello, my name is Michael Dubravski and I am a Senior at Dickinson College pursuing a major in Computer Science and a minor in Math.

No responses yet