一种业务服务方法、装置、电子设备以及可读存储介质与流程

文档序号:27488427发布日期:2021-11-22 13:40阅读:63来源:国知局
一种业务服务方法、装置、电子设备以及可读存储介质与流程

1.本技术涉及软件技术领域,具体而言,涉及一种业务服务方法、装置、电子设备以及可读存储介质。


背景技术:

2.随着公司业务的不断增加,项目的功能也变得越来越复杂,这就使得各个业务代码之间的耦合变得越来越多,从而使得业务代码无法进行高效地管理,进而降低了业务服务的效果。为了解决这一问题,目前技术人员研发出了目标

动作机制,以减少业务代码之间的耦合。但是,在实践中发现,使用现有的这种方法之后,依旧无法彻底解决业务代码之间的耦合问题,从而导致业务代码的管理效果依旧不佳,进而导致了业务服务的效果不佳。


技术实现要素:

3.本技术实施例的目的在于提供一种业务服务方法及装置,能够实现各个业务代码之间真正的解耦,从而提高业务代码的管理效果,进而改善业务服务的效果。
4.本技术实施例第一方面提供了一种业务服务方法,所述方法适用于客户端,所述客户端包括多个互不耦合的业务组件,每个业务组件能够独立运行,包括:
5.响应于用户的触发操作,确定与所述触发操作相对应的业务请求;
6.根据目标

动作机制和运行时系统,调用与所述业务请求相对应的目标业务组件;
7.通过所述目标业务组件,将所述业务请求发送至与所述目标业务组件相对应的目标服务端;
8.接收所述目标服务端通过所述目标业务组件提供的业务服务。
9.在上述实现过程中,该方法可以优先响应用户的触发操作,并同时确定出与该触发操作相对应的业务请求;然后,再通过目标

动作机制和运行时系统获取到与业务请求相对应的目标业务组件,并通过目标业务组件,将业务请求发送至与目标业务组件相对应的目标服务端;接收目标服务端通过目标业务组件提供的业务服务。可见,实施这种实施方式,能够使得业务组件实现业务代码间的完全解耦,并在业务代码间完全解耦的情况下进行业务组件的调用,从而使得业务组件之间相互独立,有利于业务服务的高效进行;同时,实施这种实施方式,还能够提高业务代码的管理效果,较以往业务服务的效果有着较大的改善。
10.进一步地,所述调用与所述业务请求相对应的目标业务组件,包括:
11.通过中间层,调用与所述业务请求相对应的所述目标业务组件。
12.在上述实现过程中,该方法可以通过目标

动作机制的中间层调用与业务请求相对应的目标业务组件。可见,实施这种实施方式,能够将目标

动作机制的中间层作为用户与目标业务组件之间的中转,以使用户能够使用目标业务组件所提供的服务,从而避免用户直接寻找业务组件,进而为业务服务提供了便利。
13.进一步地,所述通过中间层,调用与所述业务请求相对应的所述目标业务组件,包
括:
14.确定与所述业务请求相对应的目标中间件,基于所述目标中间件调用与所述目标中间件相对应的目标业务组件;所述中间层包括多个中间件,所述多个中间件和所述多个业务组件一一对应。
15.在上述实现过程中,该方法可以在调用目标业务组件的过程中,优先确定与所述业务请求相对应的目标中间件,并基于该目标中间件调用对应的目标业务组件。可见,实施这种实施方式,能够通过中间层的中间件进行目标业务组件的寻找与调用,从而能够更加容易地获取到与业务请求相对应的目标业务组件。
16.进一步地,所述多个中间件封装在一起,或者,各中间件分别与对应的业务组件封装在一起。
17.在上述实现过程中,该方法可以在中间层中封装多个中间件,以使中间件可以被中间层统一调用;或者,将中间件和业务组件封装一起封装在中间层,以使中间层可以直接通过中间件快速调用业务组件。
18.进一步地,所述基于所述目标中间件调用与所述目标中间件相对应的目标业务组件,包括:
19.基于所述目标中间件,确定与所述目标中间件相匹配的目标业务组件,并确定所述目标业务组件的组件类别;
20.根据所述组件类别和运行时系统的api,动态创建并运行组件实例,以确定与所述组件类别相匹配的调用方法;
21.通过所述调用方法,调用所述目标业务组件。
22.在上述实现过程中,该方法可以通过业务组件的组件类别和运行时系统确定调用方法,并根据该调用方法对目标业务组件进行调用;另外,该种方法还能够基于组件类别进行对业务代码进行分离,从而避免所有代码在中间层堆积而导致臃肿的情况发生。
23.进一步地,所述客户端还包括通用组件,所述通用组件中不包括业务代码。
24.在上述实现过程中,客户端中还包括与业务无关的其他通用组件,该通用组件不用于实现业务服务,也无法实现业务服务。由此,通用组件不包括业务代码。
25.进一步地,所述方法还包括:
26.若确定所述业务服务出现异常,则排查所述目标业务组件。
27.在上述实现过程中,当业务服务出现异常时,可以自动排查目标业务组件,从而能够提高排查准确率和排查效率。
28.进一步地,所述调用与所述业务请求相对应的目标业务组件的步骤包括:
29.控制目标

动作机制的中间层通过运行时系统的api创建与所述业务请求相对应的请求对象;所述请求对象呈字符串的形式;
30.控制目标

动作机制的中间层,根据所述请求对象和业务组件中包括的业务对象进行寻找,得到与所述业务请求相匹配的业务组件。
31.在上述实现过程中,该方法可以使中间层利用运行时系统的api,通过字符串的形式创建请求对象,再把该请求对象交由中间层去寻找业务组件以便调用。可见,实施这种实施方式,能够通过api创建target对象,以使创建的target对象该可以用于匹配业务对象,以实现对业务组件的寻找,从而实现业务组件的准确寻找。
32.进一步地,所述控制目标

动作机制的中间层,根据所述请求对象和业务组件中包括的业务对象进行寻找,得到与所述业务请求相匹配的业务组件的步骤包括:
33.控制目标

动作机制的中间层通过运行时系统的api创建与所述业务请求相对应的选择器;
34.控制目标

动作机制的中间层,根据所述请求对象、所述选择器和业务组件中包括的业务对象进行主类寻找,得到与所述业务请求相匹配的业务组件。
35.在上述实现过程中,该方法可以通过api创建选择器,并根据选择器和请求对象进行主类寻找,以获取到准确的业务组件。可见,实施这种实施方式,能够基于两类特征进行主类寻找,从而获取到准确的业务组件,进而提高业务代码的管理效果,改善业务服务的效果。
36.本技术实施例第二方面提供了一种业务服务装置,所述装置适用于客户端,所述客户端包括多个互不耦合的业务组件,每个业务组件能够独立运行,包括:
37.确定单元,用于响应于用户的触发操作,确定与所述触发操作相对应的业务请求;
38.调用单元,用于根据目标

动作机制和运行时系统,调用与所述业务请求相对应的目标业务组件;
39.发送单元,用于通过所述目标业务组件,将所述业务请求发送至与所述目标业务组件相对应的目标服务端;
40.接收单元,用于接收所述目标服务端通过所述目标业务组件提供的业务服务。
41.在上述实现过程中,该装置能够使得业务组件实现业务代码间的完全解耦,并在业务代码间完全解耦的情况下进行业务组件的调用,从而使得业务组件之间相互独立,有利于业务服务的高效进行;同时,实施这种实施方式,还能够提高业务代码的管理效果,较以往业务服务的效果有着较大的改善。
42.进一步地,所述调用单元具体用于根据目标

动作机制和运行时系统,通过中间层调用与所述业务请求相对应的所述目标业务组件。
43.在上述实现过程中,该装置能够将目标

动作机制的中间层作为用户与目标业务组件之间的中转,以使用户能够使用目标业务组件所提供的服务,从而避免用户直接寻找业务组件,进而为业务服务提供了便利。
44.进一步地,所述调用单元具体用于根据目标

动作机制和运行时系统,确定与所述业务请求相对应的目标中间件,基于所述目标中间件调用与所述目标中间件相对应的目标业务组件;所述中间层包括多个中间件,所述多个中间件和所述多个业务组件一一对应。
45.在上述实现过程中,该装置能够通过中间层的中间件进行目标业务组件的寻找与调用,从而能够更加容易地获取到与业务请求相对应的目标业务组件。
46.进一步地,所述多个中间件封装在一起,或者,各中间件分别与对应的业务组件封装在一起。
47.在上述实现过程中,该种方式可以在中间层中封装多个中间件,以使中间件可以被中间层统一调用;或者,将中间件和业务组件封装一起封装在中间层,以使中间层可以直接通过中间件快速调用业务组件。
48.进一步地,所述调用单元包括:
49.第一子单元,用于根据目标

动作机制和运行时系统,确定与所述业务请求相对应
的目标中间件;
50.第二子单元,用于基于所述目标中间件,确定与所述目标中间件相匹配的目标业务组件,并确定所述目标业务组件的组件类别;
51.第三子单元,用于根据所述组件类别和运行时系统的api,动态创建并运行组件实例,以确定与所述组件类别相匹配的调用方法;
52.第四子单元,用于通过所述调用方法,调用所述目标业务组件。
53.在上述实现过程中,该装置可以通过业务组件的组件类别和运行时系统确定调用方法,并根据该调用方法对目标业务组件进行调用;另外,该装置还能够基于组件类别进行对业务代码进行分离,从而避免所有代码在中间层堆积而导致臃肿的情况发生。
54.进一步地,所述客户端还包括通用组件,所述通用组件中不包括业务代码。
55.在上述实现过程中,客户端中还包括与业务无关的其他通用组件,该通用组件不用于实现业务服务,也无法实现业务服务。由此,通用组件不包括业务代码。
56.进一步地,所述业务服务装置还包括:
57.排查单元,用于在确定所述业务服务出现异常,则排查所述目标业务组件。
58.在上述实现过程中,当业务服务出现异常时,可以自动排查目标业务组件,从而能够提高排查准确率和排查效率。
59.进一步地,所述调用单元包括:
60.第一子单元,用于控制目标

动作机制的中间层通过运行时系统的api创建与所述业务请求相对应的请求对象;所述请求对象呈字符串的形式;
61.第二子单元,用于控制目标

动作机制的中间层,根据所述请求对象和业务组件中包括的业务对象进行寻找,得到与所述业务请求相匹配的业务组件。
62.在上述实现过程中,该装置能够通过api创建target对象,以使创建的target对象该可以用于匹配业务对象,以实现对业务组件的寻找,从而实现业务组件的准确寻找。
63.进一步地,所述第二子单元具体用于控制目标

动作机制的中间层通过运行时系统的api创建与所述业务请求相对应的选择器;控制目标

动作机制的中间层,根据所述请求对象、所述选择器和业务组件中包括的业务对象进行主类寻找,得到与所述业务请求相匹配的业务组件。
64.在上述实现过程中,该装置能够基于两类特征进行主类寻找,从而获取到准确的业务组件,进而提高业务代码的管理效果,改善业务服务的效果。
65.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的业务服务方法。
66.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的业务服务方法。
附图说明
67.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看
作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
68.图1为本技术实施例提供的一种业务服务方法的流程示意图;
69.图2为本技术实施例提供的另一种业务服务方法的流程示意图;
70.图3为本技术实施例提供的一种业务服务方法的组件关系示意图;
71.图4为本技术实施例提供的一种业务服务方法的实施效果示意图;
72.图5为本技术实施例提供的一种业务服务装置的结构示意图;
73.图6为本技术实施例提供的另一种业务服务装置的结构示意图;
74.图7为本技术实施例提供的一种业务服务方法的举例app结构图示意图。
具体实施方式
75.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
76.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
77.请参看图1,图1为本技术实施例提供了一种业务服务方法的流程示意图。其中,该业务服务方法包括:
78.s101、响应于用户的触发操作,确定与触发操作相对应的业务请求。
79.本实施例中,业务请求为用户发送的请求业务服务的请求。
80.s102、根据目标

动作机制和运行时系统,调用与业务请求相对应的目标业务组件。
81.本实施例中,目标

动作机制为target

action。
82.在本实施例中,target

action中的业务组件通常会包装一层wrapper(封装)来给外界提供服务,并且使得使用者可以通过中间层来使用该种服务。
83.在本实施例中,上述的中间层通常会通过运行时系统(runtime)来调用业务组件的服务,从而实现真正意义上的解耦。
84.举例来说,当前接收到两个业务请求(第一业务请求和第二业务请求)。在寻找与两个业务请求相应的业务组件时,具体会寻找到与第一业务请求相匹配的第一子组件和第二子组件,以及与第二业务请求相匹配的第一子组件和第三子组件。可见,两种业务请求皆可寻找到相同的第一子组件,因此该第一子组件为通用子组件,而第二子组件和第三子组件因为其独立性与专用性,被称之为专用子组件。通过该例子可以明显得知,使用该方法可以使得各子组件之间完全解耦,从而有利于单独管理与整体复用。
85.在本实施例中,业务组件可以具有一些独特的小功能(如计时功能)。
86.s103、通过目标业务组件,将业务请求发送至与目标业务组件相对应的目标服务端。
87.本实施例中,该方法可以由业务服务系统执行,其中,具体的可以通过target

action中的中间层进行相应步骤的执行。也就是说,该方法的执行主体可以为target

action中的中间层。
88.本实施例中,业务组件中包括业务对象和业务类别,目标

动作机制的中间层包括
服务类别,服务类别包括业务类别;其中,服务类别用于分离中间层中的业务代码。
89.实施这种实施方式,给业务组件封装一层target(对象)来对外提供服务,并不会对业务组件造成入侵。并且,通过实现中间层的category(类别)来提供服务给使用者,可以使得使用者只需要依赖中间层,而业务组件则不需要依赖中间层。
90.实施这种实施方式,就好比封装控件,因为复杂的控件一般都会封装。此处,组件化只不过是把每个组件单独抽出来,然后将之作为多个个小工程再组成一个一个完整的项目。
91.s104、接收目标服务端通过目标业务组件提供的业务服务。
92.本实施例中,客户端还包括通用组件,通用组件中不包括业务代码。可以理解的是,通用组件是和业务无关的组件。
93.作为一种可选的实施方式,该方法还包括:
94.若确定业务服务出现异常,则排查目标业务组件。
95.也就是说,在本技术实施例中,每一个业务组件都是相互独立的,因此,在业务服务出现问题的时候,不必排查其他业务组件,仅仅排查目标业务组件即可。
96.当然,必要的时候,还需要排查目标服务端,对此不做赘述。
97.本实施例中,该方法的执行主体可以为计算机这类计算装置,对此本实施例中不作任何限定。
98.在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
99.目前,随着公司业务的不断发展,项目的功能越来越复杂,各个业务代码耦合越来越多,代码量急剧增加,传统的mvc(m是指业务模型,v是指用户界面,c则是控制器)或者mvvm架构(mvc的改进版)已经无法高效的管理工程代码,因此需要用一种技术来更好地管理工程,而组件化是一种能够解决代码耦合的技术。
100.基于此,实施本实施例所描述的业务服务方法,能够优先响应用户的触发操作,并同时确定出与该触发操作相对应的业务请求;然后,再通过目标

动作机制和运行时系统获取到与业务请求相对应的目标业务组件,并通过目标业务组件,将业务请求发送至与目标业务组件相对应的目标服务端;接收目标服务端通过目标业务组件提供的业务服务。可见,实施这种实施方式,能够使得业务组件实现业务代码间的完全解耦,并在业务代码间完全解耦的情况下进行业务组件的调用,从而使得业务组件之间相互独立,有利于业务服务的高效进行;同时,实施这种实施方式,还能够提高业务代码的管理效果,较以往业务服务的效果有着较大的改善。
101.请参看图2,图2为本技术实施例提供的一种业务服务方法的流程示意图。如图2所示,其中,该业务服务方法包括:
102.s201、响应于用户的触发操作,确定与触发操作相对应的业务请求。
103.作为一种可选的实施方式,响应于用户的触发操作,确定与触发操作相对应的业务请求的步骤之后,该方法还包括:
104.根据目标

动作机制和运行时系统,通过中间层,调用与业务请求相对应的目标业务组件。
105.作为一种进一步可选的实施方式,根据目标

动作机制和运行时系统,通过中间
层,调用与业务请求相对应的目标业务组件包括:
106.根据目标

动作机制和运行时系统,确定与业务请求相对应的目标中间件,基于目标中间件调用与目标中间件相对应的目标业务组件;中间层包括多个中间件,多个中间件和多个业务组件一一对应。
107.本实施例中,多个中间件封装在一起,或者,各中间件分别与对应的业务组件封装在一起。从而实现彻底解耦,业务组件之间的调用都会基于中间层实现,而不会影响业务组件本身,提升灵活性。
108.作为一种进一步可选的实施方式,根据目标

动作机制和运行时系统,通过中间层,调用与业务请求相对应的目标业务组件基于目标中间件调用与目标中间件相对应的目标业务组件的步骤可以包括步骤s202~s204。
109.s202、基于目标中间件,确定与目标中间件相匹配的目标业务组件,并确定目标业务组件的组件类别。
110.s203、根据组件类别和运行时系统的api,动态创建并运行组件实例,以确定与组件类别相匹配的调用方法。
111.本实施例中,api为应用程序接口。
112.本实施例中,请求对象是一种字符串形式的target对象。
113.在本实施例中,业务对象(业务组件中的target)中引用了业务组件,所以mediator(中间层)找到业务对象就可以了。
114.s204、通过调用方法,调用目标业务组件。
115.作为一种可选的实施方式,调用与业务请求相对应的目标业务组件的步骤包括:
116.控制目标

动作机制的中间层通过运行时系统的api创建与业务请求相对应的请求对象;请求对象呈字符串的形式;
117.控制目标

动作机制的中间层,根据请求对象和业务组件中包括的业务对象进行寻找,得到与业务请求相匹配的业务组件。
118.作为一种进一步可选的实施方式,控制目标

动作机制的中间层,根据请求对象和业务组件中包括的业务对象进行寻找,得到与业务请求相匹配的业务组件的步骤包括:
119.控制目标

动作机制的中间层通过运行时系统的api创建与业务请求相对应的选择器;
120.控制目标

动作机制的中间层,根据请求对象、选择器和业务组件中包括的业务对象进行主类寻找,得到与业务请求相匹配的业务组件。
121.请参阅图3,图3中描述了中间层、登录组件、首页显示组件、支付组件以及账务页面组件,其中,登录组件、首页显示组件、支付组件以及账务页面组件皆为业务组件;同时,由图3中箭头方向可知,业务组件可以不需要依赖中间层。
122.本实施例中,中间层可以称之为mediator。
123.在本实施例中,mediator可以理解为中介者模式。
124.本实施例中,业务组件中包括业务对象和业务类别,目标

动作机制的中间层包括服务类别,服务类别包括业务类别;其中,服务类别用于分离中间层中的业务代码。
125.在本实施例中,该方法可以优先对每个业务组件进行target(对象)和category(类别)配置,并且,一个业务组件可以对应一个或者多个target(对象)。其中,target(对
象)可以引用和依赖业务组件,category(类别)则是mediator(中间层)的分类,而使用该种分类则可以使得mediator(中间层)中的业务代码分离,避免所有代码在mediator(中间层)中堆积而导致mediator(中间层)臃肿。
126.本实施例中,相互独立的业务组件可以根据在完成组件业务时生成调用下一业务组件的请求,并通过与上述步骤相同的步骤调用其他业务组件,从而实现组件间的调用。
127.本实施例中,category(类别)利用runtime(运行时系统)的api(应用程序接口),通过字符串的形式创建请求对象(target),以及创建selector(选择器),再把请求对象和selector(选择器)交由mediator(中间层)主类以调用业务组件。
128.s205、通过目标业务组件,将业务请求发送至与目标业务组件相对应的目标服务端。
129.s206、接收目标服务端通过目标业务组件提供的业务服务。
130.作为一种可选的实施方式,该方法还可以包括:
131.检测是否接收到关联指令;
132.当接收到关联指令时,根据目标

动作机制和运行时系统,调用与业务服务相关联的其他业务组件;
133.通过其他业务组件,将关联指令发送至与其他业务组件相对应的目标服务端;
134.接收其他服务端通过其他业务组件提供的业务服务。
135.作为一种进一步可选的实施方式,该方法还可以包括:
136.建立目标业务组件和其他业务组件之间的通信通道;
137.确定目标业务组件、其他业务组件以及上述通信通道为服务组件;
138.接收操作指令;
139.通过服务组件对操作指令进行响应,并提供与操作指令相对应的服务。
140.请参阅图4,图4中描述了登录模块(登录组件)的调用情况。其中,图4左侧描述了target

action中的中间层和业务对象,在用户请求登录业务时,图4中会选择出mediator+login,以使target

action调用登录业务模块(登录组件),以使登录业务模块(登录组件)进行后续的操作(即登录或注册等)。
141.请参阅图5,图5所示出的app结构图中instantmessaging(im)、addressbook、globalsearch、workbench、personal就是五个业务组件,同样的,该五个业务组件也可以分别作为五个单独的工程存在。
142.举例:请参阅图5,instantmessaging(即时通讯)组件采用组件化开发后就可以作为一个单独的工程运行,如果其他团队想开发im功能,就可以直接接入instantmessaging组件,直接就能复用,不用再开发。
143.实施这种实施方式,当组件库的数量足够庞大时,项目只需要组合组件即可完成大部分的开发工作。
144.举例:请参阅图5,当抽取instantmessaging、addressbook、personal三个组件进行组合时,就可以得到一个具备聊天软件的大部分功能的聊天软件,这就使得开发者只需要加一些自己的特有功能就可以快速开发出一个聊天app。
145.实施这种实施方式,组件化后项目的代码结构更加清晰,追踪问题、修复bug、增加需求更方便。
146.举例:请参阅图5,采用组件化之后,各个组件相互独立,结构一目了然,如果出现im里出现bug,就只需要去instantmessaging组件里追踪问题,有效减少需要查看的代码量。
147.实施这种实施方式,不同业务组件相互独立,有利于明确团队开发的业务边界,增加团队协作效率。
148.举例:请参阅图5,图5中各个组件由不同的开发者负责,personal组件由一位开发者负责,globalsearch组件由另外一位开发者负责,如此可见,该方式能够明确团队开发的业务边界,增加团队协作效率。
149.本实施例中,因为随着项目的不断迭代,所以各个组件开始变得越来越复杂。在此基础上,各个组件相互依赖,而且每个组件可能会有共同的业务逻辑,从而导致整个项目维护起来比较麻烦。而实施这种实施方式,能够采用组件化,把每个业务逻辑和组件分离、单独管理,从而使得维护边界,进而使得各个开发人员只需要关心好自己的组件就好了。
150.可见,实施本实施例所描述的业务服务方法,能够使得业务组件实现业务代码间的完全解耦,并在业务代码间完全解耦的情况下进行业务组件的调用,从而使得业务组件之间相互独立,有利于业务服务的高效进行;同时,实施这种实施方式,还能够提高业务代码的管理效果,较以往业务服务的效果有着较大的改善。
151.请参看图6,图6为本技术实施例提供的一种业务服务装置的结构示意图。如图6所示,该业务服务装置包括:
152.确定单元310,用于响应于用户的触发操作,确定与触发操作相对应的业务请求;
153.调用单元320,用于根据目标

动作机制和运行时系统,调用与业务请求相对应的目标业务组件;
154.发送单元330,用于通过目标业务组件,将业务请求发送至与目标业务组件相对应的目标服务端;
155.接收单元340,用于接收目标服务端通过目标业务组件提供的业务服务。
156.本实施例中,业务请求为用户发送的请求业务服务的请求。
157.本实施例中,目标

动作机制为target

action。
158.在本实施例中,target

action中的业务组件通常会包装一层wrapper(封装)来给外界提供服务,并且使得使用者可以通过中间层来使用该种服务。
159.在本实施例中,上述的中间层通常会通过运行时系统(runtime)来调用业务组件的服务,从而实现真正意义上的解耦。
160.本实施例中,该方法可以由业务服务系统执行,其中,具体的可以通过target

action中的中间层进行相应步骤的执行。也就是说,该方法的执行主体可以为target

action中的中间层。
161.本实施例中,业务组件中包括业务对象和业务类别,目标

动作机制的中间层包括服务类别,服务类别包括业务类别;其中,服务类别用于分离中间层中的业务代码。
162.实施这种实施方式,给业务组件封装一层target(对象)来对外提供服务,并不会对业务组件造成入侵。并且,通过实现中间层的category(类别)来提供服务给使用者,可以使得使用者只需要依赖中间层,而业务组件则不需要依赖中间层。
163.实施这种实施方式,就好比封装控件,因为复杂的控件一般都会封装。此处,组件
化只不过是把每个组件单独抽出来,然后将之作为多个个小工程再组成一个一个完整的项目。
164.本实施例中,业务组件中包括业务对象和业务类别,目标

动作机制的中间层包括服务类别,服务类别包括业务类别;其中,服务类别用于分离中间层中的业务代码。
165.本技术实施例中,对于业务服务装置的解释说明可以参照实施例中的上述内容,对此本实施例中不再多加赘述。
166.可见,实施本实施例所描述的业务服务装置,能够使得业务组件实现业务代码间的完全解耦,并在业务代码间完全解耦的情况下进行业务组件的调用,从而使得业务组件之间相互独立,有利于业务服务的高效进行;同时,实施这种实施方式,还能够提高业务代码的管理效果,较以往业务服务的效果有着较大的改善。
167.请一并参阅图7,图7是本技术实施例提供的一种业务服务装置的结构示意图。其中,图7所示的业务服务装置是由图6所示的业务服务装置进行优化得到的。如图7所示,调用单元320具体用于根据目标

动作机制和运行时系统,通过中间层调用与业务请求相对应的目标业务组件。
168.作为一种可选的实施方式,调用单元320具体用于根据目标

动作机制和运行时系统,确定与业务请求相对应的目标中间件,基于目标中间件调用与目标中间件相对应的目标业务组件;中间层包括多个中间件,多个中间件和多个业务组件一一对应。
169.作为一种可选的实施方式,多个中间件封装在一起,或者,各中间件分别与对应的业务组件封装在一起。
170.作为一种可选的实施方式,调用单元320包括:
171.第一子单元321,用于根据目标

动作机制和运行时系统,确定与业务请求相对应的目标中间件;
172.第二子单元322,用于基于目标中间件,确定与目标中间件相匹配的目标业务组件,并确定目标业务组件的组件类别;
173.第三子单元323,用于根据组件类别和运行时系统的api,动态创建并运行组件实例,以确定与组件类别相匹配的调用方法;
174.第四子单元324,用于通过调用方法,调用目标业务组件。
175.作为一种可选的实施方式,客户端还包括通用组件,通用组件中不包括业务代码。
176.作为一种可选的实施方式,业务服务装置还包括:
177.排查单元350,用于在确定业务服务出现异常,则排查目标业务组件。
178.作为一种可选的实施方式,调用单元320包括:
179.第一子单元321,用于控制目标

动作机制的中间层通过运行时系统的api创建与业务请求相对应的请求对象;请求对象呈字符串的形式;
180.第二子单元322,用于控制目标

动作机制的中间层,根据请求对象和业务组件中包括的业务对象进行寻找,得到与业务请求相匹配的业务组件。
181.作为一种可选的实施方式,第二子单元322具体用于控制目标

动作机制的中间层通过运行时系统的api创建与业务请求相对应的选择器;控制目标

动作机制的中间层,根据请求对象、选择器和业务组件中包括的业务对象进行主类寻找,得到与业务请求相匹配的业务组件。
182.本技术实施例中,对于业务服务装置的解释说明可以参照实施例的上述内容,对此本实施例中不再多加赘述。
183.实施这种实施方式,能够使得组件可以独立运行,提高代码的复用性,其中组件化的颗粒度越细,可复用度就越高。
184.可见,实施本实施例所描述的业务服务装置,能够使得业务组件实现业务代码间的完全解耦,并在业务代码间完全解耦的情况下进行业务组件的调用,从而使得业务组件之间相互独立,有利于业务服务的高效进行;同时,实施这种实施方式,还能够提高业务代码的管理效果,较以往业务服务的效果有着较大的改善。
185.本技术实施例提供了一种电子设备,包括存储器以及处理器,存储器用于存储计算机程序,处理器运行计算机程序以使电子设备执行本技术实施例中描述的业务服务方法。
186.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,计算机程序指令被一处理器读取并运行时,执行本技术实施例中描述的业务服务方法。
187.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
188.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
189.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
190.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
191.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
192.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1