一种定制服务组件的调用方法和装置的制造方法
【技术领域】
[0001]本发明涉及企业应用软件开发领域,尤其涉及一种定制服务组件的调用方法和装置。
【背景技术】
[0002]目前,应用软件系统需要面对各种客户,比如ERP类软件系统常常遇到这样的问题,各个企业都有自己的文化和特征,现有的ERP软件系统和该企业的需求匹配度不高,不能完全满足企业的个性化需求,就会导致客户丢失。如果对软件系统进行定制开发,则可能面临极大的成本投入和风险,开发周期也会延长。
[0003]业界现有的定制开发方式,主流有Saas架构的两种思路:一是为每个企业用户独立部署一套应用,使用代码分流进行定制开发;二是使用文件配置方式和工作流,提前预留定制配置项,为每个新企业定制配置。
[0004]但是上述方法也有很多不理想的地方,对于Saas思路一来说,如果定制的企业用户过多,代码分流也多,软件系统的维护和升级面临不断的膨胀成本和不可预估的风险;对于Saas思路二来说,预设配置项会使软件系统的复杂度增加,严重增加了产品的开发成本和开发周期,而去配置项本身也会不断更新,可能会造成软件系统不断重构代码。
【发明内容】
[0005]为解决现有技术中存在的问题,本发明实施例主要提供一种定制服务组件的调用方法和装置,在软件系统中增加、删除定制服务组件时,灵活简单,节省开发成本,降低风险。
[0006]本发明的技术方案是这样实现的:
[0007]本发明提供一种定制服务组件的调用方法,该方法包括:
[0008]在服务切入点设置定制拦截器,软件系统在调用服务时,拦截调用;检索出与当前调用服务对应的定制拦截器;
[0009]所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件。
[0010]上述方案中,所述在服务切入点设置定制拦截器为:对软件系统中需要定制的服务切入点进行解析,根据解析结果对相应的逻辑部件和定制规则进行个性化定制设置,输出具有约定格式的定制拦截器。
[0011]上述方案中,所述在调用服务时,拦截调用为:拦截处理中心对所有的服务调用进行拦截。
[0012]上述方案中,所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件为:所述定制拦截器判断调用的服务是否与定制规则匹配,当匹配时,执行所述当前调用服务的定制服务组件,当不匹配时,由下一个与当前调用服务对应的定制拦截器判断调用的服务是否与定制规则匹配,当匹配时,执行所述当前调用服务的定制服务组件;
[0013]所述定制规则为:用户身份+服务名。
[0014]本发明还提供一种服务组件的调用装置,该装置包括:定制设置中心、拦截处理中心、定制拦截器;其中,
[0015]所述定制设置中心,用于在服务切入点设置定制拦截器;
[0016]所述拦截处理中心,用于在软件系统在调用服务时,拦截调用,检索出与当前调用服务对应的定制拦截器,并通知所述定制拦截器;
[0017]定制拦截器,用于确定与调用的服务匹配的定制服务组件,执行所述定制服务组件。
[0018]上述方案中,所述定制设置中心,具体用于对软件系统中需要定制的服务切入点进行解析,根据解析结果对相应的逻辑部件和定制规则进行个性化定制设置,输出具有约定格式的定制拦截器。
[0019]上述方案中,所述定制拦截器,具体用于当确定调用的服务与定制规则匹配时,执行所述当前调用服务的定制服务组件。
[0020]上述方案中,所述定制拦截器,具体还用于当确定调用的服务与定制规则不匹配时,通知拦截处理中心;
[0021]相应的,所述拦截处理中心,还用于在第一个与当前调用服务对应的定制拦截器确定调用的服务与定制规则不匹配时,检索下一个与当前调用服务对应的定制拦截器。
[0022]本发明提供了一种定制服务组件的调用方法和装置,通过在服务切入点设置定制拦截器,在软件系统调用服务时,拦截当前服务调用,检索出与当前调用服务对应的定制拦截器,定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件,实现软件系统的灵活定制,满足“开闭原则”和“定制可拔式管理”,达到了节省开发成本、降低风险的效果,并提高了软件系统的可持续维护。
【附图说明】
[0023]图1为本发明实施例提供的定制服务组件的调用方法流程示意图;
[0024]图2为本发明实施例提供的定制服务组件的调用装置的结构示意图;
[0025]图3为本发明实施例提供的定制服务组件的调用示意图;
[0026]图4为本发明实施例提供的定制拦截处理流程图。
【具体实施方式】
[0027]本发明实施例中,通过在服务切入点设置定制拦截器,软件系统在调用服务时,拦截调用;检索出与当前调用服务对应的定制拦截器,所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件,从而实现软件快速、灵活的定制开发。
[0028]下面通过附图及具体实施例对本发明做进一步的详细说明。
[0029]本发明实施例提供一种定制服务组件的调用方法,该方法的流程示意图如图1所示,包括以下步骤:
[0030]步骤101:在服务切入点设置定制拦截器;
[0031]具体的,对软件系统中需要定制的服务切入点进行解析,即解析具体需要定制的逻辑部件以及与这些逻辑部件相对应的定制规则,根据解析结果对相应的逻辑部件和定制规则进行个性化定制设置,输出具有约定格式的定制拦截器;例如,在查询服务的切入点设置定制拦截器时,需要对查询服务中输入的关键字这一部分的逻辑部件进行定制,而且该逻辑部件需要有对应的匹配规则,规则至少为两个特征,如,用户名+服务名,再根据上述需要对查询服务的逻辑部件和对应的定制规则进行具体设置,就可以输出有约定格式的查询服务的定制拦截器;
[0032]其中,所述约定格式,就是统一继承一个拦截处理中心提供的接口类;具有所述约定格式的定制拦截器才可以被拦截处理中心识别。
[0033]步骤102:软件系统在调用服务时,拦截调用;
[0034]具体的,当软件系统在任何一个服务切入点调用任意服务时,拦截处理中心对所有的服务调用进行拦截;其中,所述拦截具体为:软件系统中所有的服务都注册在容器中,当调用容器中的任意服务时,所有的服务调用都要经过拦截处理中心的动态代理入口,通过源代码在所述动态代理入口处对服务调用进行拦截。
[0035]步骤103:检索出与当前调用服务对应的定制拦截器,所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件;
[0036]具体的,拦截处理中心将服务调用拦截后,遍历所有具有约定格式的定制拦截器,判断是否存在与当前调用服务对应的定制拦截器,当不存在时,直接执行当前调用服务的标准版服务组件,当存在时,所述定制拦截器判断调用的服务是否与定制规则匹配,当匹配时,执行所述当前调用服务的定制服务组件,当不匹配时,由下一个与当前调用服务对应的定制拦截器判断调用的服务是否与定制规则匹配,当匹配时,执行所述当前调用服务的定制服务组件;在所有与当前调用服务对应的定制拦截器均确认调用的服务与定制规则不匹配时,执行所述当前调用服务的标准版服务组件;
[0037]其中,所述标准版服务组件为实现服务基本功能的逻辑部件;所述定制服务组件为实现服务个性定制开发后的功能的逻辑部件;
[0038]所述定制规则可以根据设计需求或产品特点来设置,例如,可以是用户身份+服务名,在实际应用中,不同的企业可能对相同的服务有不同的要求,因此,设置定制规则可以避免企业之间对相同服务都有定制时,在使用过程中发生混淆。
[0039]为了实现上述方法,本发明实施例还提供一种定制服务组件的调用装置,如图2所示,该装置包括:定制设置中心20、拦截处理中心21、一个以上定制拦截器22 ;其中,
[0040]所述定制设置中心20,用于在服务切入点设置定制拦截器22 ;
[0041]所述拦截处理中心21,用于在软件系统在调用服务时,拦截调用,检索出与当前调用服务对应的定制拦截器22,并通知所述定制拦截器22 ;
[0042]定制拦截器22,用于确定与调用的服务匹配的定制服务组件,执行所述定制服务组件;
[0043]所述定制设置中心20,具体用于对软件系统中需要定制的服务切入点进行解析,根据解析结果对相应的逻辑部件和定制规则进行个性化定制设置,输出具有约定格式的定制拦截器22 ;
[0044]所述约定格式就是统一继承一个拦截处理中心提供的接口类,具有所述约定格式的定制拦截器22才可以被拦截处理中心21识别;
[0045]所述定制拦截器22,具体用于当确定调用的服务与定制规则匹配时,执行所述当前调用服务的定制服
务组件;所述定制拦截器22具有专一性,每增加一个定制内容,都对应一个定制拦截器;
[0046]所述定制拦截器22,具体还用于当确定调用的服务与定制规则不匹配时,通知拦截处理中心21 ;
[0047]相应的,所述拦截处理中心21,还用于在第一个与当前调用服务对应的定制拦截器22确定调用的服务与定制规则不匹配时,检索下一个与当前调用服务对应的定制拦截器。
[0048]例如,定制规则是:用户身份+服务名;用户I使用软件系统时,调用了查询服务,拦截处理中心21将所述查询服务的调用拦截下来,判断是否存在约定格式的所述查询服务的定制拦截器22,当存在时,所述定制拦截器22判断用户I的用户身份和服务名是否与定制规则中允许调用查询服务的定制服务组件的用户身份和服务名一致,当一致时,执行查询服务的定制服务组件;当不一致时,执行查询服务的标准版服务组件。
[0049]软件系统需要一套标准版的应用,可以完整进行所有业务流程,将标准版应用模块化,将各个业务逻辑细分为各个服务,并通过容器将这些服务管理起来,就可以通过本发明实施例提供的定制服务组件调用方法为任意一个服务进行个性化定制,本发明实施例提供的定制服务组件的调用示意图如图3所示,具体如下:
[0050]软件系统中任意调用内部服务的地方都可以作为起点,开始调用另一个服务;
[0051]服务调用被拦截处理中心21拦截,所述拦截处理中心21开始遍历所有具有约定格式的定制拦截器,判断是否存在与当前调用服务对应的定制拦截器,当存在时,所述定制拦截器判断调用的服务是否与定制规则匹配,如,当前调用的是查询服务,如果存在查询服务的定制拦截器,所述定制拦截器确认所述查询服务与定制规则匹配后,执行查询服务的定制组件I,如果不存在查询服务的定制拦截器,则直接执行标准版服务组件,如果所述定制拦截器确认所述查询服务与定制规则不匹配,则拦截处理中心21继续遍历所有具有约定格式的定制拦截器,判断是否存在查询服务的另一个定制拦截器,当存在时,所述定制拦截器确认所述查询服务与定制规则匹配后,执行查询服务的定制组件1,当不存在时,直接执行标准版服务组件;在下一次服务调用时,当前调用的是统计服务,如果存在统计服务的定制拦截器,所述定制拦截器确认所述统计服务与定制规则匹配后,执行统计服务的定制组件2,如果不存在统计服务的定制拦截器,则直接执行标准版服务组件,如果所述定制拦截器确认所述统计服务与定制规则不匹配,则拦截处理中心21继续遍历所有具有约定格式的定制拦截器,判断是否存在统计服务的另一个定制拦截器,当存在时,所述定制拦截器确认所述统计服务与定制规则匹配后,执行统计服务的定制组件2,当不存在时,直接执行标准版服务组件;依此类推,直到服务调用结束。
[0052]本发明实施例提供的定制拦截处理流程如图4所示;
[0053]在标准版软件系统中的服务调用开始,所有调用被拦截处理中心拦截,所述拦截处理中心检索所有符合约定格式的定制拦截器,判断是否存在与调用的服务匹配的定制拦截器,如,调用查询服务时,检索所有定制拦截器,判断是否有查询服务的定制拦截器;当不存在时,则直接执行标准版服务组件,实现标准逻辑,当存在时,由所述定制拦截器判断查询服务与定制规则是否匹配,当匹配时,执行查询服务的定制服务组件,实现定制逻辑,当不匹配时,返回寻找下一个定制拦截器,继续判断是否存在查询服务的另一个定制拦截器;所述定制规则,是在定制设置时设定的,可以是用户身份+服务名,本发明对此不做限定,可根据产品特点和用户需要等因素进行设定;
[0054]在本发明实施例提供的上述处理流程中,遵守“开闭原则”,对标准版软件系统智能扩展,不能修改,当增加定制内容时,只需要增加一个定制拦截器和定制逻辑部件代码,指定服务接口就可轻松实现;定制内容可以实现“可插拔式”管理,当删除定制内容时,可以只使用一个按钮来点击开关,在线软件系统不需要重新部署和重启,就能实现定制内容的开启和关闭,如果需要彻底删除定制内容,只需删除定制拦截器和定制逻辑代码,不会给软件系统留下任何垃圾。
[0055]本发明实施例提供的定制服务组件的调用方法如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式,所述存储介质包括但不限于U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁盘存储器、⑶-ROM、光学存储器等;
[0056]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0057]由上述实施例可以看出,本发明提供的定制服务组件的调用方法和调用装置,在服务切入点设置定制拦截器,在软件系统调用服务时,拦截调用,检索出与当前调用服务对应的定制拦截器,定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件,在现有的软件设计低耦合方面取得了非常大的进步,从根本上解决了软件系统标准版和定制版之间的困扰和难题,达到了节省开发成本、降低风险的效果,并提高了软件系统的可持续维护。
[0058]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种定制服务组件的调用方法,其特征在于,该方法包括: 在服务切入点设置定制拦截器,软件系统在调用服务时,拦截调用;检索出与当前调用服务对应的定制拦截器; 所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件。2.根据权利要求1所述的调用方法,其特征在于,所述在服务切入点设置定制拦截器为:对软件系统中需要定制的服务切入点进行解析,根据解析结果对相应的逻辑部件和定制规则进行个性化定制设置,输出具有约定格式的定制拦截器。3.根据权利要求2所述的调用方法,其特征在于,所述在调用服务时,拦截调用为:拦截处理中心对所有的服务调用进行拦截。4.根据权利要求3所述的调用方法,其特征在于,所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件为:所述定制拦截器判断调用的服务是否与定制规则匹配,当匹配时,执行所述当前调用服务的定制服务组件,当不匹配时,由下一个与当前调用服务对应的定制拦截器判断调用的服务是否与定制规则匹配,当匹配时,执行所述当前调用服务的定制服务组件; 所述定制规则为:用户身份+服务名。5.一种服务组件的调用装置,其特征在于,该装置包括:定制设置中心、拦截处理中心、定制拦截器;其中, 所述定制设置中心,用于在服务切入点设置定制拦截器; 所述拦截处理中心,用于在软件系统在调用服务时,拦截调用,检索出与当前调用服务对应的定制拦截器,并通知所述定制拦截器; 定制拦截器,用于确定与调用的服务匹配的定制服务组件,执行所述定制服务组件。6.根据权利要求5所述的调用装置,其特征在于,所述定制设置中心,具体用于对软件系统中需要定制的服务切入点进行解析,根据解析结果对相应的逻辑部件和定制规则进行个性化定制设置,输出具有约定格式的定制拦截器。7.根据权利要求5所述的调用装置,其特征在于,所述定制拦截器,具体用于当确定调用的服务与定制规则匹配时,执行所述当前调用服务的定制服务组件。8.根据权利要求7所述的调用装置,其特征在于,所述定制拦截器,具体还用于当确定调用的服务与定制规则不匹配时,通知拦截处理中心; 相应的,所述拦截处理中心,还用于在第一个与当前调用服务对应的定制拦截器确定调用的服务与定制规则不匹配时,检索下一个与当前调用服务对应的定制拦截器。
【专利摘要】本发明公开了一种定制服务组件的调用方法,在服务切入点设置定制拦截器,软件系统在调用服务时,拦截调用,检索出与当前调用服务对应的定制拦截器;所述定制拦截器确定与调用的服务匹配的定制服务组件,执行所述定制服务组件;本发明还公开了一种定制服务组件的调用装置,包括:定制设置中心、拦截处理中心和定制拦截器。
【IPC分类】G06F9/44, G06F9/46
【公开号】CN104899013
【申请号】CN201410079832
【发明人】付章华, 杨帝海, 吴国华, 许振华, 潘庆宝, 陈乐丹
【申请人】深圳中兴网信科技有限公司
【公开日】2015年9月9日
【申请日】2014年3月5日