当您的软件系统或产品包含许多与外部实体的集成点时,微内核体系结构模式将非常有用。最重要的是,您将无法准确判断出将来将哪些实体集成到您的系统中。可以将微内核架构模式识别为基于插件的模式。。也称为插件架构模式,它由两个主要组件组成,即核心系统和插件组件。
微内核架构模式的两个主要组成部分
核心系统包含运行系统所需的最少功能。在其他体系结构模式中,如果我们替换,添加或更改系统中的规则,则整个系统都会受到影响。在微内核架构中,不会发生这种情况,因为我们将规则划分为插件组件。插件模块包括其他功能,并且相互隔离且彼此独立。
核心系统与插件的关联
核心系统需要跟踪可用的插件,因此需要通过注册表来跟踪。将组件插入核心系统时,将使用插件的名称,位置,数据协定和协定格式等信息来更新此注册表。同样,删除注册表时,注册表也会通过删除此信息进行相应更新。
合同本质上是输入和输出数据。尽管核心系统和插件可能不是同一类型,但它允许交换数据。如果使用第三方模块,而用户无法控制所使用的合同,则可以使用适配器。我们可以说明这是适配器设计模式的直接用法。这样可以确保核心系统不需要专门的代码即可读取模块。因此,插件模块仅对核心系统进行了最小的更改。这样可以轻松地测试和部署应用程序。
微内核架构模板示例
Eclipse IDE是微内核体系结构的最佳示例之一。Eclipse作为基本产品只是一个编辑器。但是,一旦添加了插件,它就会成为可定制且更有用的产品。另一个简单的示例是您使用的Web浏览器。可以添加多个插件,为基本的Web浏览器提供更多功能。
Eclipse的男女同校复习工具就是这种架构模式的一个示例。在此示例中,将有一个源验证工具(即核心系统),该工具读取Java文件并将其传递到字符串列表中并输出到报告中。在此应用程序中,所有检查组件都作为插件组件连接到核心系统。插件模块检查标头标准,拦截器,审计写等。通过源验证工具具有此类插件清单和正在运行的代码,可以轻松进行代码审查。您无需担心其他标准检查,因为它们是自动化的。
Map <String,String> pluginRegistry = new HashMap <String,String>();
静态的{
pluginRegistry.put(HEADER,“ ValidationHeaderPlugin”);
pluginRegistry.put(SQL,“ ValidationsqlPlugin”);
pluginRegistry.put(INTERCEPT,“ ValidationinterceptPlugin”);
pluginRegistry.put(AUDIT,“ ValidationAuditPlugin”);
}
这可能是注册表的样子;这只是一张简单的地图。因此,您无需使用任何外部工具即可连接到插件。
结论
以下是微内核架构模式的优缺点。
优点
它可以对插件模块中的更改做出反应,同时最大程度地减少对核心系统的更改。
与分层体系结构不同,具有插件模块意味着更易于部署,从而最大程度地减少了停机时间。
由于可以单独测试各个模块,因此测试也更加容易。
尽管通常不是用于高性能应用程序的理想模式,但由于将应用程序定制为仅包括所需的功能,因此它可以发挥良好的性能。
缺点
应用程序往往较小,因此无法高度扩展。
在实施之前需要对设计进行彻底的分析。需要分析的项目包括合同版本控制,内部插件注册表,插件粒度以及可用于插件连接的广泛选择