当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]“开架式”软件设计是基于应用程序的可扩充性提出来的,是一种软件底层架构的实现方式。他更关注应用程序底层架构的实现,与具体应用程序的实现无关,或者说具体的应用程序是构建在这种架构定义的范畴之内的。

早期的国内应用软件产品,其扩展性都是相对较差的,尽管开发商也为此作过很多工作,包括二次开发工具包等等。主要原因就是这些应用本身框架的局限 性,不具有可扩展性,在设计时我们关注的只是应用程序的实现,没有关注我们的应用应该构建在一种开放的框架上。(当然开发语言本身也有一定的局限性)

“开架式”软件设计是基于应用程序的可扩充性提出来的,是一种软件底层架构的实现方式。他更关注应用程序底层架构的实现,与具体应用程序的实现无关,或者说具体的应用程序是构建在这种架构定义的范畴之内的。

在这种设计思想下,我们的应用程序框架可形象比喻成书架一样,我们提供一个架子(规范),书架内容的不断丰富,就好像将不同的书(功能/插件)放在架子上一样,当然书需要满足我书架尺寸的要求。

在这种框架下,提供的是一堆服务和资源以及调用和扩展这些服务及资源的规范,而这些服务和资源也是可扩展的,你可以在一个组件中编写一些服务和 资源由框架加载并与其他的组件分享。组件的功能是由框架加载并执行,它可以访问框架提供的资源和服务,如可以访问界面元素,访问数据库、文件,调用日志服 务写入日志、访问多语言信息等等。

大概的运行时框架如下:

图中的组件A和B可理解为系统提供的组件或者应用程序功能性组件。

其中的关键就是要提供一种机制:

1、 保证组件可以被框架加载并运行,

2、 将组件中包含的资源和服务注册到该框架中,

3、 组件访问框架中的资源和服务的透明性。(也表现出组件间、组件和框架间的协作性和可访问性)。

有了这样的应用程序框架,我们可以任意扩展应用程序的功能组件,只要他遵循框架定义的规范。我们可以新增加一个组件,可以提供新的资源和服务 (如果愿意),可以访问框架中的资源和服务就好像这些都是该组件自身具有的,而组件中提供的功能可以通过配置插入到恰当的菜单或工具条供用户调用。而这些 对用户是透明的,他们不知道界面中的某个功能究竟来自于那一个组件。组件和组件之间是彼此独立的离散的。

远景:

将产品发布成为这样一套框架(标准)和预先提供的功能组件,用户可以到网上直接下载组件进行程序的升级,用户可以根据框架定义的规范自行开发, 甚至有第三方软件公司根据框架的内容和标准专门开发特有的功能,如软件对GPRS、视频会议的支持等等。也可以支持OpenSource,开放标准提供给 网上大量的开发者开发功能组件,作为用户可以在网上找到需要的功能组件。这些或多或少已经是一种商业模式的问题了。

优点:

1、 扩展性极强,可以对其任意组合,

2、 因为组件和组件之间是彼此独立的离散的,带来的升级也是方便的,

3、 程序更新只需要下载和替换相关的组件即可,

4、 程序的架构是严密的,

5、 架构本身的升级比较容易。

缺点:

1、 性能的影响。高扩展性必然以牺牲一定性能作为代价的。

2、 功能扩展的不定性。

3、 高度共享带来的安全性也是一个要考虑的问题。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文中,小编将对服务器予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 服务器 计算机 扩展性

前言:     SOA在IT行业已经存在很多年,随着近几年智能汽车的出现,用于对于自动驾驶、V2X、智能座舱等新功能的需求也逐渐强烈,汽车逐渐由一个机电耦合的系统转变为一个智能终端,类似智能手机,可升级可进化。面对这样的...

关键字: 软件架构

点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达我从事嵌入式软件开发有6、7个年头,bsp,驱动,应用软件,androidhall,framework等都有涉猎。平时除了关注嵌入式行业的发展,也多少对...

关键字: 嵌入式 软件架构

想知道如何设计大型企业级的系统吗?在开始主要的代码开发之前,我们必须选择一种合适的体系架构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,应该先了解不同的体系结构。-   什么是架构模式   -...

关键字: 软件架构

关注星标公众号,不错过精彩内容来源 |网络我从事嵌入式软件开发有6、7个年头,bsp,驱动,应用软件,androidhall,framework等都有涉猎。平时除了关注嵌入式行业的发展,也多少对Web,后台服务端,分布式...

关键字: 嵌入式 软件架构

在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发、维护。我相信在嵌入式或单片机软件开发的初期...

关键字: 嵌入式软件 软件架构

作者:Go语言由浅入深链接:https://www.jianshu.com/p/18944235727a你是否想知道企业大规模系统是如何设计的?在软件开发开始之前,我们必须选择一个合适的架构,能提供所需的功能和质量特性。...

关键字: 软件架构

关注星标公众号,不错过精彩内容来源|嵌入式在左c语言在右在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,...

关键字: 软件架构

摘 要:参考美国海军预备在政府实验室建立基于下一代机载软件环境2.0(Future Airborne Capability Environment, FACE)标准的未来开放式航电架构原型。由Open Group发布的F...

关键字: 可移植性 软件架构 数据分发服务 平台服务

以下内容中,小编将对自动驾驶以及目前大家对自动驾驶的误解的相关内容进行着重介绍和阐述。

关键字: 自动驾驶 传感器 软件架构
关闭
关闭