[发明专利]基于插件的软件开发方法有效
申请号: | 201210048317.3 | 申请日: | 2012-02-28 |
公开(公告)号: | CN103294458B | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 陈明建;胡金勇;邹根兰;陈国云 | 申请(专利权)人: | 广州市艾发信息技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京同辉知识产权代理事务所(普通合伙)11357 | 代理人: | 魏忠晖 |
地址: | 510000 广东省广州市天河区五山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 插件 软件 开发 方法 | ||
技术领域
本发明涉及计算机技术,特别涉及一种基于插件的软件开发方法。
背景技术
插件技术由于其可选择、可扩充、可替换的特性,被广泛的应用在各种应用软件的开发中,并取得了良好的效果。目前主要有两类应用情景。
第一类用来扩充现有的软件功能。比较有名的应用案例有:
(1)Firefox浏览器,有成千上万的功能、美化、定制插件,如IE Tab插件、FireFTP插件。
(2)Photoshop,有滤镜、抠图、磨皮、纹理导出等等丰富和方便其功能和使用的插件。
(3)3DS Max和Maya,有数据导出插件,用于在游戏开发中导出3DSMax或Maya编辑的模型、骨骼、场景等数据为游戏需要的磁盘文件。
第二类用来实现可选的技术手段。通过插件技术实现软件的部分组成模块,以能够在不同的应用程序需求下,替换使用不同的组成模块。比如在游戏引擎领域,对GL或D3D渲染器的选择,通常就会采取插件的方式实现,比较典型的案例是OGRE引擎的渲染器。
不论是第一种应用案例情景,还是第二种应用案例情景,插件都只是被作为软件开发中的辅助手段,没有将插件作为整个软件的开发框架,而是将插件技术应用在了某个局部,用以改善扩展性。第一种情景下,通过实现软件框架定义的插件接口规范来实现插件,由软件加载和驱动插件工作,以扩充和完善软件的功能和效果;第二种情景下,通过替换使用不同的插件,来达到软件性能的优化、效果的改善等。
目前的基于插件的软件开发方法,其插件通常是针对特定应用场景,事先约定调用接口规范,或基于COM(Component Object Model,组件对象模型)技术的插件实现方法,其插件主要由调用方定义被调用接口,实现方实现这些接口约定和语义,调用方通过确定的插件管理器,获取到插件实现对象,并调用其接口实现。如OGRE(Object-Oriented Graphics Rendering Engine,面向对象图形渲染引擎)的渲染器插件和OGRE的场景管理插件,它们的实现就约定了渲染器必须实现调用者定义的渲染接口规范,场景管理器必须实现调用者定义的场景管理接口规范。
目前的基于插件的软件开发方法,其软件框架,都是针对特定领域的、具象的框架结构。如OGRE是游戏领域,其构建了一套图形引擎框架结构,并给出了相关实现;再如ACE(adaptive communication environment,是一套C++的通信库,它提供了socket/threading/memory management等多种系统调用的面对对象的wrapper,使C++通信软件开发更加简单),其是网络模型领域。
目前的基于插件的软件开发方法,其主要存在以下缺点:
a.由于其软件框架应用局部范围,且未解决通用插件框架的构建问题,故而针对不同类型的应用,调用方均需要搭建不同的插件管理框架实现一个新的插件的管理功能,付出了额外的实施成本。
b.从插件接口的约定上,由于采用由调用方起着主导约定的定义方式,依赖框架实现,插件需要连接到框架代码,这要求调用方具备较高的设计抽象能力。
c.从软件框架的搭建上,由于软件框架本身和应用类型和应用局部相关,针对不同应用场景,软件框架的设计模型不一,应用方需要具备丰富的相关领域的知识背景,提高了架构设计者本身的要求,加重了应用开发对不同应用场景架构的理解成本和实施成本,并且如果要将不同应用场景架构整合在一起时,需要对框架进行大量的改动,非常不方便。
发明内容
本发明要解决的技术问题是提供一种基于插件的软件开发方法,服务框架本身和应用类型无关,可以方便嵌入到任何技术方案之中,且不需要修改,方便了功能插件和各种技术方案的整合。
为解决上述技术问题,本发明提供的基于插件的软件开发方法采用的技术方案是:
分别开发一个服务框架和多个服务插件;
所述服务框架,用于实现服务框架服务接口,并管理驱动服务插件运行;
实现服务框架服务接口,是建立服务接口和服务名的一一对应,一个服务接口是指一个服务插件提供的功能接口,服务名是指用于查询服务接口指针的名字;
管理驱动服务插件运行,包括服务插件的加载、卸载及更新,服务框架在加载服务插件时,调用服务插件的初始化函数并输入服务框架接口给该初始化函数;在卸载服务插件时,调用服务插件的最终化函数;在更新服务插件时,调用服务插件的更新函数并输入上一帧开始执行到本帧开始执行所流逝的时间给该更新函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州市艾发信息技术有限公司,未经广州市艾发信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210048317.3/2.html,转载请声明来源钻瓜专利网。