[发明专利]基于微服务的软件开发方法、装置及系统在审
申请号: | 201610096981.3 | 申请日: | 2016-02-23 |
公开(公告)号: | CN107102847A | 公开(公告)日: | 2017-08-29 |
发明(设计)人: | 黄小锋;张晶 | 申请(专利权)人: | 中国水电工程顾问集团有限公司;中国水电顾问集团国际工程有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/445 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100120 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 微服 软件 开发 方法 装置 系统 | ||
技术领域
本发明涉及软件开发技术领域,特别是涉及一种基于微服务的软件开发方法、装置及系统。
背景技术
随着企业级应用系统的规模和复杂度不断增加,系统变得更加笨重和庞大,这对系统的开发、部署和升级提出了新的挑战,对企业应用架构的高效性和扩展性提出了更高的要求。
模块化是解决复杂性问题的重要工具,可以把庞大的应用程序分割成多个模块,每个模块完成独立的功能,模块之间协同工作。这样的模块我们称为组件。这些组件可以进行单独开发、单独编译、单独测试,把所有的组件组合在一起得到了完整的系统。采用组件化的应用结构,使系统的结构更加清晰,简化大型应用系统在开发、部署和升级的难度,实现多种业务功能的分离。
传统实现组件的方式是通过库(library)或者面向开放服务网管(Open Service Gateway Initiative,OSGI)框架。
采用库的方式是将通用的、与业务逻辑无关的工具类打成JAR包放到Web应用相应的目录下,如J2EE平台的WEB-INF/lib目录。
OSGI是一种动态模块化标准,它为模块化应用的开发定义了一个基础架构。基于OSGI架构的应用程序由一系列OSGI模块组建。一般根据业务功能将 系统分解成多个OSGI模块,每个模块是一个独立的工程项目,包含了实现完整业务功能的所有前端代码和后端代码。基于OSGI架构的应用系统结构图参见附图1。
各业务模块通过中间层的OSGI动态模块框架整合到一个Web应用中,Web应用作为一个整体运行在服务器上。基于OSGI模块化的应用系统,实现了模块的单独开发,而且可以在不重启应用的情况下,动态地安装、卸载、启动和停止应用程序中的模块。
通过库实现组件化的方式,只是对后端工具类代码进行了封装,无法根据业务功能进行完整切分,各个业务功能的代码混杂在一起,调试和部署难度大,一个或多个JAR包的修改,需要重启整个应用。
基于OSGI模块化技术的业务应用系统,在开发期,可以实现模块的物理分离,每个业务模块独立开发和调试,但是在部署运行时,仍需要将多个模块耦合在一起发布到Web容器上。这种方式带来如下问题:首先,全部模块在一个Web应用中加载启动,对资源要求高,需要高配置的服务器或集群来支撑系统的运行,部署成本高,而且不利于向云环境扩展。另外,不同的业务模块所需资源不同,有些可能是CPU密集型的,另一些可能是IO密集型的,在这种架构模式下,各个模块不能独立部署运行,当出现性能问题时只能扩展整个业务系统,而不能针对模块扩展其资源能力,系统扩展性差,而且相同的模块在不同业务系统中需要重复部署,造成了资源浪费。
发明内容
有鉴于此,本发明提供一种基于微服务的软件开发方法、装置及系统,其采用一组微服务的方式来构建一个应用,通过将业务功能分解到各个离散的微 服务中实现对系统功能组件的解耦,能够降低大型复杂业务系统的开发难度,克服传统JAR包或OSGI方式部署成本高、系统扩展性差和资源浪费的问题,从而更加适于实用。
为了达到上述第一个目的,本发明提供的基于微服务的软件开发方法的技术方案如下:
本发明提供的种基于微服务的软件开发方法包括以下步骤:
将待开发软件分解为若干微服务,并构建微服务框架;
将每个所述微服务分别作为一个独立的开发、调试、部署和运行单元,进行独立开发;
通过所述微服务框架,实现所述若干微服务之间的注册、发现、调用和监控,完成所述待开发软件的开发。
本发明提供的基于微服务的软件开发方法还可采用以下技术措施进一步实现。
作为优选,当需要对所述待开发软件进行扩展时,通过对所述若干微服务中的任一或者若干独立地进行水平扩展实现。
作为优选,所述若干微服务包括Web微服务和若干业务微服务,
所述Web微服务用于对外提供HTTP访问,和,通过服务接口处理所述若干微服务的处理业务逻辑;
所述若干业务微服务用于具体业务。
作为优选,所述若干微服务之间能够通过RPC协议进行通信。
为了达到上述第二个目的,本发明提供的基于微服务的软件开发装置的技术方案如下:
本发明提供的基于微服务的软件开发装置包括微服务分解单元、微服务框 架构建单元,
所述微服务分解单元用于将待开发软件分解为若干微服务;
所述微服务框架构建单元用于构建微服务框架,使得,通过所述微服务框架,能够实现所述若干微服务之间的注册、发现、调用和监控。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国水电工程顾问集团有限公司;中国水电顾问集团国际工程有限公司,未经中国水电工程顾问集团有限公司;中国水电顾问集团国际工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610096981.3/2.html,转载请声明来源钻瓜专利网。