一种多粒度的服务架构的实现方法和装置的制造方法

文档序号:10660912阅读:370来源:国知局
一种多粒度的服务架构的实现方法和装置的制造方法
【专利摘要】本申请公开了一种多粒度的服务架构的实现方法和装置,该方法包括:按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块;将所述子服务模块均部署在可垂直扩展系统的单个进程中;为每个所述子服务模块单独部署对应的数据库;为每个所述子服务模块在自身的进程中构建自身的业务功能。本申请提供的上述多粒度的服务架构的实现方法和装置,将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
【专利说明】
一种多粒度的服务架构的实现方法和装置
技术领域
[0001]本发明属于网络应用和软件技术领域,特别是涉及一种多粒度的服务架构的实现方法和装置。
【背景技术】
[0002]传统的服务框架是一个整体式的应用程序框架,是一个单独的、在单个系统镜像上运行的逻辑可执行文件。对系统的任何更改都会涉及构建和部署一个新的服务器端应用程序版本,任何更改都会导致整个应用程序重新构建和部署。
[0003]具体的,服务器端处理客户端请求,执行逻辑分析,检索和更新来自数据库的数据,并选择和填充将视图发送到客户端。在项目开发中,现有的整体化服务端模型耦合性过高,即便是在仅更改一行代码的情况下,软件开发人员也需要花费几十分钟甚至超过几个小时对所有代码进行编译,并花费大量的时间重新部署新生成的产品,以验证自己的更改是否正确。

【发明内容】

[0004]为解决上述问题,本发明提供了一种多粒度的服务架构的实现方法和装置,将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
[0005]本发明提供的一种多粒度的服务架构的实现方法,包括:
[0006]按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块;
[0007]将所述子服务模块均部署在可垂直扩展系统的单个进程中;
[0008]为每个所述子服务模块单独部署对应的数据库;
[0009]为每个所述子服务模块在自身的进程中构建自身的业务功能。
[0010]优选的,在上述服务架构的实现方法中,还包括:
[0011 ]为每个所述子服务模块单独设置对应的编程语言。
[0012]优选的,在上述服务架构的实现方法中,还包括:
[0013]利用客户端对每个所述子服务模块进行单独访问。
[0014]优选的,在上述服务架构的实现方法中,还包括:
[0015]对每个所述子服务模块进行单独的修复、测试或重新部署。
[0016]优选的,在上述服务架构的实现方法中,还包括:
[0017]对每个所述子服务模块进行单独的扩容或升级。
[0018]本发明提供的一种多粒度的服务架构的实现装置,包括:
[0019]划分单元,用于按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块;
[0020]第一部署单元,用于将所述子服务模块均部署在可垂直扩展系统的单个进程中;[0021 ]第二部署单元,用于为每个所述子服务模块单独部署对应的数据库;
[0022]构建单元,用于为每个所述子服务模块在自身的进程中构建自身的业务功能。
[0023]优选的,在上述服务架构的实现装置中,还包括:
[0024]语言设置单元,用于为每个所述子服务模块单独设置对应的编程语言。
[0025]优选的,在上述服务架构的实现装置中,还包括:
[0026]访问单元,用于利用客户端对每个所述子服务模块进行单独访问。
[0027]优选的,在上述服务架构的实现装置中,还包括:
[0028]修复测试及重新部署单元,用于对每个所述子服务模块进行单独的修复、测试或重新部署。
[0029]优选的,在上述服务架构的实现装置中,还包括:
[0030]扩容及升级单元,用于对每个所述子服务模块进行单独的扩容或升级。
[0031]通过上述描述可知,本发明提供的上述多粒度的服务架构的实现方法和装置,由于先按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块,然后将所述子服务模块均部署在可垂直扩展系统的单个进程中,再为每个所述子服务模块单独部署对应的数据库,最后为每个所述子服务模块在自身的进程中构建自身的业务功能,因此能够将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]图1为本申请实施例提供的第一种多粒度的服务架构的实现方法的示意图;
[0034]图2为多粒度服务模式的示意图;
[0035]图3为子服务故障独立修复的示意图;
[0036]图4为子服务独立扩容和升级的示意图;
[0037]图5为本申请实施例提供的第一种多粒度的服务架构的实现装置的示意图。
【具体实施方式】
[0038]本发明的核心思想在于提供一种多粒度的服务架构的实现方法和装置,将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
[0039]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]本申请实施例提供的第一种多粒度的服务架构的实现方法如图1所示,图1为本申请实施例提供的第一种多粒度的服务架构的实现方法的示意图,该方法包括如下步骤:[0041 ] S1:按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块;
[0042]需要说明的是,每个子服务模块是一个单独的进程,只实现特定的功能,不同的子服务模块的实现相互独立,可部署在不同的服务器上。
[0043]S2:将所述子服务模块均部署在可垂直扩展系统的单个进程中;
[0044]S3:为每个所述子服务模块单独部署对应的数据库;
[0045]S4:为每个所述子服务模块在自身的进程中构建自身的业务功能。
[0046]这就打破了原有服务端单体化模型的机制,而采用新机制:将单体化服务划分成多粒度的相互独立的子服务,各服务成为松散耦合的组件。各个子服务具有分布式性质,仅提供单个专一的功能,可以采用与其他服务不同的技术。这种架构可让应用程序更容易开发、操作、维护和交互。让各个子服务变成一种“即插即用”服务,对系统服务端的维护由原有的整体维护转换为小组件的单点维护。多粒度子服务架构模式中的每个子服务拥有独立的运行流程及数据结构,各个子服务代表了一个独立的业务逻辑,这种独立性让代码相对更加容易理解,各个子服务的独立部署能力也可提高整体运行效率。
[0047]通过上述描述可知,本申请实施例提供的上述第一种多粒度的服务架构的实现方法,由于先按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块,然后将所述子服务模块均部署在可垂直扩展系统的单个进程中,再为每个所述子服务模块单独部署对应的数据库,最后为每个所述子服务模块在自身的进程中构建自身的业务功能,因此能够将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
[0048]本申请实施例提供的第二种服务架构的实现方法,是在上述第一种服务架构的实现方法的基础上,还包括如下技术特征:
[0049]为每个所述子服务模块单独设置对应的编程语言。
[0050]本申请实施例提供的第三种服务架构的实现方法,是在上述第二种服务架构的实现方法的基础上,还包括如下技术特征:
[0051 ]利用客户端对每个所述子服务模块进行单独访问。
[0052]在这种情况下,客户端请求功能时,不再访问整体服务端,而是根据业务需求访问相应的一个或多个子服务模块。如图2所示,图2为多粒度服务模式的示意图,可见,服务不再以整体的形式对客户端进行响应或者访问数据库,而是根据业务被划分为不同服务。各个子服务成为一个可垂直扩展的单个进程,每个服务只实现特定功能,在自己的进程内围绕自身的业务功能构建。不同子服务的实现是相互独立的,可以使用不同的数据库,甚至是不同的编程语言。在处理一个客户端的请求时,不再是直接访问整体的服务,而是根据业务需求访问一个或多个子服务模块。
[0053]本申请实施例提供的第四种服务架构的实现方法,是在上述第三种服务架构的实现方法的基础上,还包括如下技术特征:
[0054]对每个所述子服务模块进行单独的修复、测试或重新部署。
[0055]具体的如图3所示,图3为子服务故障独立修复的示意图,独立的子服务提高了服务端的整体容错性,对系统服务端的维护由原有的整体维护转换为小组件的单点维护。如果服务I出现故障,开发人员可单独对服务I进行修复,测试和重新部署。在整个过程中,月艮务2和服务3依旧正常独立的响应执行业务,系统不会出现宕机现象,从而提高整体运行效率。
[0056]本申请实施例提供的第五种服务架构的实现方法,是在上述第一种至第四种中任意一种服务架构的实现方法的基础上,还包括如下技术特征:
[0057]对每个所述子服务模块进行单独的扩容或升级。
[0058]具体的,如图4所示,图4为子服务独立扩容和升级的示意图。子服务的独立性也意味着系统较强的扩展性,在多粒度子服务架构中,各个子服务可根据自身需要独立的扩容或者升级,可以对子服务2进行扩容,对子服务3单独升级,子服务2和子服务3的操作是相互独立的,且在业务升级或者扩容的过程中,在此过程中子服务I依旧正常的执行业务,这样系统的扩容升级影响范围大大缩小,提高的整体开发效率。
[0059]综上所述,本申请实施例提供的方法,各子服务用于独立的运行流程和数据模型,提高代码的开发速度,降低开发难度;各个子服务模块相对独立,降低了耦合性,便于维护;各个服务可单独测试,减少关联故障的影响,提高系统整体的容错性。
[0060]本申请实施例提供的第一种多粒度的服务架构的实现装置如图5所示,图5为本申请实施例提供的第一种多粒度的服务架构的实现装置的示意图,该装置包括:
[0061 ]划分单元501,用于按照业务类型的区别,将整体化的服务架构划分为不同的子服务丰吴块;
[0062]第一部署单元502,用于将所述子服务模块均部署在可垂直扩展系统的单个进程中;
[0063]第二部署单元503,用于为每个所述子服务模块单独部署对应的数据库;
[0064]构建单元504,用于为每个所述子服务模块在自身的进程中构建自身的业务功能。
[0065]通过上述描述可知,本申请实施例提供的第一种多粒度的服务架构的实现装置,将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
[0066]本申请实施例提供的第二种服务架构的实现装置,是在上述第一种服务架构的实现装置的基础上,还包括如下技术特征:
[0067]语言设置单元,用于为每个所述子服务模块单独设置对应的编程语言。
[0068]本申请实施例提供的第三种服务架构的实现装置,是在上述第二种服务架构的实现装置的基础上,还包括如下技术特征:
[0069]访问单元,用于利用客户端对每个所述子服务模块进行单独访问。
[0070]在这种情况下,客户端请求功能时,不再访问整体服务端,而是根据业务需求访问相应的一个或多个子服务模块。
[0071]本申请实施例提供的第四种服务架构的实现装置,是在上述第三种服务架构的实现装置的基础上,还包括如下技术特征:
[0072]修复测试及重新部署单元,用于对每个所述子服务模块进行单独的修复、测试或重新部署。
[0073]在这种情况下,独立的子服务提高了服务端的整体容错性,对系统服务端的维护由原有的整体维护转换为小组件的单点维护。
[0074]本申请实施例提供的第五种服务架构的实现装置,是在上述第一种至第四种中任意一种服务架构的实现装置的基础上,还包括如下技术特征:
[0075]扩容及升级单元,用于对每个所述子服务模块进行单独的扩容或升级。
[0076]这样系统的扩容升级影响范围大大缩小,提高的整体开发效率。
[0077]综上所述,本申请实施例提供的上述多粒度的服务架构的实现方法和装置,能够将整体式服务端拆分为多粒度的、相互独立的子服务,能够降低软件服务系统整体的耦合度,减少服务端负载,减少关联故障影响,提高系统软件整体的服务运行效率和软件的可维护性,便于测试和发布。
[0078]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种多粒度的服务架构的实现方法,其特征在于,包括: 按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块; 将所述子服务模块均部署在可垂直扩展系统的单个进程中; 为每个所述子服务模块单独部署对应的数据库; 为每个所述子服务模块在自身的进程中构建自身的业务功能。2.根据权利要求1所述的多粒度的服务架构的实现方法,其特征在于,还包括: 为每个所述子服务模块单独设置对应的编程语言。3.根据权利要求2所述的多粒度的服务架构的实现方法,其特征在于,还包括: 利用客户端对每个所述子服务模块进行单独访问。4.根据权利要求3所述的多粒度的服务架构的实现方法,其特征在于,还包括: 对每个所述子服务模块进行单独的修复、测试或重新部署。5.根据权利要求1-4任一项所述的多粒度的服务架构的实现方法,其特征在于,还包括: 对每个所述子服务模块进行单独的扩容或升级。6.一种多粒度的服务架构的实现装置,其特征在于,包括: 划分单元,用于按照业务类型的区别,将整体化的服务架构划分为不同的子服务模块; 第一部署单元,用于将所述子服务模块均部署在可垂直扩展系统的单个进程中; 第二部署单元,用于为每个所述子服务模块单独部署对应的数据库; 构建单元,用于为每个所述子服务模块在自身的进程中构建自身的业务功能。7.根据权利要求6所述的多粒度的服务架构的实现装置,其特征在于,还包括: 语言设置单元,用于为每个所述子服务模块单独设置对应的编程语言。8.根据权利要求7所述的多粒度的服务架构的实现装置,其特征在于,还包括: 访问单元,用于利用客户端对每个所述子服务模块进行单独访问。9.根据权利要求8所述的多粒度的服务架构的实现装置,其特征在于,还包括: 修复测试及重新部署单元,用于对每个所述子服务模块进行单独的修复、测试或重新部署。10.根据权利要求6-9任一项所述的多粒度的服务架构的实现装置,其特征在于,还包括: 扩容及升级单元,用于对每个所述子服务模块进行单独的扩容或升级。
【文档编号】H04L29/06GK106027576SQ201610627219
【公开日】2016年10月12日
【申请日】2016年8月3日
【发明人】李娟 , 袁鹏飞
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1