iluwatar / java-design-patterns

Design patterns implemented in Java
https://java-design-patterns.com
Other
90.07k stars 26.61k forks source link

Microkernel architecture #1086

Open iluwatar opened 5 years ago

iluwatar commented 5 years ago

Description

The Microkernel Architecture design pattern, also known as the plug-in architecture, is ideal for product-based applications that need to extend their core functionalities through plug-ins. This pattern is characterized by a minimal core system that contains the essential functionality of the application, and additional features or customizations are provided through independent plug-in modules. This approach promotes extensibility, flexibility, and maintainability of the software by isolating the core system from the custom processing logic.

Main Elements:

  1. Core System: The foundational part of the application containing the minimal functionality required to run the system.
  2. Plug-in Modules: Independent components that add specialized processing or additional features to the core system. They should remain isolated from each other to avoid dependencies.
  3. Plug-in Registry: A system that manages the available plug-in modules, providing information such as their names, data contracts, and access protocols.

References

  1. Priyal Walpita's article on Microkernel Architecture: Software Architecture Patterns: Microkernel Architecture
  2. "Software Architecture Patterns" by Mark Richards: Chapter 3 (Microkernel Architecture)

Acceptance Criteria

  1. Core System Implementation: Develop a core system with essential functionalities and a mechanism to interact with plug-in modules.
  2. Plug-in Module Integration: Create at least two plug-in modules that demonstrate the extensibility of the core system by providing additional features.
  3. Plug-in Registry: Implement a plug-in registry to manage the available plug-in modules, ensuring they can be dynamically discovered and loaded by the core system.
RudolfBun commented 4 years ago

@iluwatar Can I work on this issue?

iluwatar commented 4 years ago

Yes @RudolfBun go ahead

iluwatar commented 3 years ago

Assistance is needed to resolve this issue