您现在的位置是:主页 > 数据库技术 > 数据库技术

通用插件系统ZStack是怎样的

IDCBT2022-01-05服务器技术人已围观

简介今天就跟大家聊聊有关通用插件系统ZStack是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 当前IaaS软件更像

今天就跟大家聊聊有关通用插件系统ZStack是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

当前IaaS软件更像云控制器软件,要成为一个完整的云解决方案还缺少很多特性(features)。作为一个正在发展中的技术,预测一个完整的解决方案的必备的所有特性是非常困难的,所以一个IaaS软件不可能在一开始就完成它所有的特性。基于以上事实,一个IaaS软件的架构必须有能力,在添加新特性的同时保持核心结构稳定。ZStack的通用插件系统,使得特性可以像插件一样实现(在线程内或在线程外),这样不只能使ZStack的功能得到了拓展,也可以注入业务逻辑内部去改变默认的行为。

动机

当前IaaS软件的处境,除了一些构建的非常好的IaaS(像AWS),大多数IaaS(包括我们的ZStack)仍然不是一个完整的云解决方案。由于像Amazon这样的已经探索多年的先驱,公有云已经有一个更成熟的模型,对于公共云解决方案应该是什么样子而言。由于仍然处在开发阶段,私有云目前还没有经过验证的完整的解决方案。不像专用的公有云软件,可以专门为制造商的基础设施和服务定制;开源的IaaS软件必须同时考虑公有云和私有云的需求,使得创建一个完整的解决方案变得更加困难。因为我们没有办法预测一个完整的解决方案应该是什么样,我们唯一的办法是提供一个插件式的架构,它能在添加插件的同时,不影响核心业务稳定性。

问题

许多软件声称自己是插件式的,但是很多并不是真的插件式的,或至少不是完全插件式的。在解释原因之前,让我们看两种主要的插件式架构的形式。虽然有很多文章讨论过这个话题,以我们的经验来看,我们把所有插件归纳成两种结构,可以被准确的描述为GoF design patterns一书中的策略模式和观察者模式。

源自策略者模式的插件

这种形式的插件通常是通过提供不同的实现,拓展软件特定的功能;或者通过添加插件APIs去添加新的功能。我们熟悉的很多软件都是通过这种模式搭建的,比如,操作系统的驱动,网页浏览器的插件。这种插件组成的工作方式是,允许应用程序通过定义良好的协议去访问插件 。

源自观察者模式的插件

这种形式的插件通常注入应用程序的业务逻辑,针对特定的事件。一旦一个事件发生,挂在上面的插件将被调用,以执行一段甚至可能改变执行流的代码,比如,当事件满足某些条件,抛出异常去停止执行流。基于这种模式的插件通常对最终用户是透明的、纯内部实现的,例如,一个监听器监听数据库插入事件。这种插件的工作方式是,允许插件通过定义良好的扩展点去访问应用程序。

标签:

很赞哦! ()

本栏推荐