iluwatar / iluwatar/java-design-patterns
Blackboard architectural pattern
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 94.7k
- Forks
- 27.4k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 10
Description
Description:
Implement the Blackboard design pattern in the project. The Blackboard pattern is an architectural pattern used in situations where multiple subsystems need to collaborate to solve a problem that is beyond the individual capabilities or knowledge of each subsystem. The main elements of the Blackboard pattern include:
- Blackboard: A shared global memory structure that holds the data or state of the solution space. All subsystems read from and write to the blackboard.
- Knowledge Sources: Independent subsystems or modules that have specialized knowledge and can operate on the data in the blackboard. They can contribute partial solutions or refine existing data.
- Control Component: Manages the flow of control among the knowledge sources. It determines which knowledge source will get access to the blackboard at any given time based on certain criteria or heuristics.
References:
- https://en.wikipedia.org/wiki/Blackboard_system
- Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
- Pattern-Oriented Software Architecture: A System of Patterns
Acceptance Criteria:
- A blackboard component that allows multiple knowledge sources to read and write data.
- At least three independent knowledge sources that interact with the blackboard to contribute to or refine the solution.
- A control component that manages the interaction between the knowledge sources and ensures orderly access to the blackboard.
For more details on contributing to this project, please refer to our contribution guidelines.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no target files, tests, or entry points. Start with the contribution guidelines and the linked Blackboard references, then inspect existing pattern implementations; done requires a shared blackboard, at least three independent knowledge sources, and a control component coordinating their access.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100