业务模块相互调用的实现方法、装置、设备及存储介质与流程

文档序号:26804103发布日期:2021-09-29 02:19阅读:143来源:国知局
业务模块相互调用的实现方法、装置、设备及存储介质与流程

1.本技术属于应用程序开发技术领域,具体涉及一种业务模块相互调用的实现方法、装置、设备及存储介质。


背景技术:

2.随着移动终端业务的拓展与丰富,面向移动终端的应用程序的功能越来越丰富。应用程序的功能依赖于组成该应用程序的各业务模块,多个业务模块之间存在错综复杂的关联关系,如某一业务模块调用其他业务模块中的方法或跳转到其他业务模块的页面等。
3.相关技术中,通常在业务纬度上把应用程序划分成多个小的业务模块,每一个业务模块都分别在独立的工程中研发,各业务模块研发完成后再把各业务模块的构建产物整合到主工程中,构建出完整的应用程序。
4.但上述相关技术中各业务模块间之间的关联关系杂乱无章,若从主工程中把某个业务模块抽离出来,不仅这个业务模块无法独立运行,而且主工程中其他与该业务模块之间存在关联关系的业务模块也将无法正常运行。业务模块的独立性很差,模块间整合难度很大,应用程序的构建效率很低。


技术实现要素:

5.本技术提出一种业务模块相互调用的实现方法、装置、设备及存储介质,在应用程序中设置了桥接组件,通过桥接组件实现业务模块之间的相互调用。桥接组件使各模块之间的关联关系条理有序,使应用程序具有了跨模块通信的能力。各模块间相互独立,将任意模块从应用程序的主工程中抽离,都不会影响其他模块执行。实现多模块无依赖并行开发及对代码权限的分级管理。
6.本技术第一方面实施例提出了一种业务模块相互调用的实现方法,包括:
7.当执行第一业务模块的调用方程序时,调用桥接组件;
8.通过所述桥接组件判断所述调用方程序所需调用的第二业务模块中的被调用方程序是否存在;
9.若所述被调用方程序存在,则通过所述桥接组件调用所述第二业务模块中的所述被调用方程序。
10.在本技术的一些实施例中,所述桥接组件中包括消息总线服务和注册表;所述通过所述桥接组件判断所述调用方程序所需调用的第二业务模块中的被调用方程序是否存在;若所述被调用方程序存在,则通过所述桥接组件调用所述第二业务模块中的所述被调用方程序,包括:
11.通过所述消息总线服务查找所述注册表中是否包含所述调用方程序所需调用的第二业务模块中的被调用方程序;
12.若所述注册表中包含所述被调用方程序,则通过所述消息总线服务调用所述第二业务模块中的所述被调用方程序。
13.在本技术的一些实施例中,所述通过所述消息总线服务查找所述注册表中是否包含所述调用方程序所需调用的第二业务模块中的被调用方程序,包括:
14.通过所述消息总线服务获取所述调用方程序所需调用的第二业务模块的模块标识和被调用方标识;
15.根据所述模块标识,查询所述注册表中是否包含所述调用方程序所需调用的第二业务模块对应的第一程序容器,所述第一程序容器中封装有所述第二业务模块包括的所有被调用方程序;
16.若所述注册表中包含所述第二业务模块对应的第一程序容器,则判断所述第一程序容器中是否包括所述被调用方标识对应的被调用方程序;
17.若所述第一程序容器中包括所述被调用方标识对应的被调用方程序,则执行通过所述消息总线服务调用所述被调用方程序的操作。
18.在本技术的一些实施例中,所述方法还包括:
19.若所述注册表中不包含所述第二业务模块对应的第一程序容器,或,所述第一程序容器中不包括所述被调用方标识对应的被调用方程序,则调用所述第一业务模块中所述调用方程序对应的预设被调用程序。
20.在本技术的一些实施例中,所述通过所述消息总线服务调用所述第二业务模块中的所述被调用方程序,包括:
21.获取所述调用方程序对应的业务参数;
22.通过所述消息总线服务将所述业务参数传输给所述第二业务模块中的所述被调用方程序,以在所述第二业务模块中根据所述业务参数执行所述被调用方程序;
23.获取所述被调用方程序的执行结果,通过所述消息总线服务将所述执行结果传输给所述调用方程序。
24.在本技术的一些实施例中,所述执行第一业务模块的调用方程序之前,还包括:
25.将所述第一业务模块中包括的所有被调用方程序封装在第一程序容器中,所述第一业务模块为应用程序包括的任一业务模块;
26.将第一业务模块中包括的所有调用方程序封装在第二程序容器中;
27.通过宏定义声明所述第一程序容器及所述第一业务模块包括的每个被调用方程序;
28.通过宏定义声明所述第二程序容器及所述第一业务模块包括的每个调用方程序。
29.在本技术的一些实施例中,所述方法还包括:
30.在编译所述应用程序时,将声明的所述第一程序容器及所述每个被调用方程序收集在所述第一业务模块对应的构建文件中;
31.将声明的所述第二程序容器及所述每个调用方程序收集在所述构建文件中。
32.在本技术的一些实施例中,所述将声明的所述第一程序容器及所述每个被调用方程序收集在所述第一业务模块对应的构建文件中,包括:
33.建立所述第一业务模块的模块标识与声明的所述第一程序容器之间的绑定关系;
34.通过预设数据结构建立声明的所述第一程序容器与声明的每个被调用方程序之间的绑定关系;
35.将建立绑定关系后的所述第一程序容器写入所述第一业务模块对应的构建文件
中。
36.在本技术的一些实施例中,所述将声明的所述第二程序容器及所述每个调用方程序收集在所述构建文件中,包括:
37.通过预设数据结构建立声明的所述第二程序容器与声明的每个调用方程序之间的绑定关系;
38.分别为所述每个调用方程序设置其所需调用的第二业务模块的模块标识及被调用方程序的被调用方标识,所述第二业务模块为与所述第一业务模块之间存在相互调用关系的业务模块;
39.将声明的所述第二程序容器写入所述第一业务模块对应的构建文件中。
40.在本技术的一些实施例中,所述方法还包括:
41.在启动所述应用程序时,从每个业务模块对应的构建文件中分别获取每个业务模块的第一程序容器和第二程序容器;
42.将每个业务模块的第二程序容器中每个调用方程序的程序地址均调整为指向所述桥接组件中的消息总线服务;
43.将每个业务模块的第一程序容器均写入所述桥接组件包括的注册表中。
44.本技术第二方面的实施例提供了一种业务模块相互调用的实现装置,包括:
45.桥接组件调用模块,用于当执行第一业务模块的调用方程序时,调用桥接组件;
46.判断模块,用于通过所述桥接组件判断所述调用方程序所需调用的第二业务模块中的被调用方程序是否存在;
47.调用模块,用于若所述被调用方程序存在,则通过所述桥接组件调用所述第二业务模块中的所述被调用方程序。
48.本技术第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
49.本技术第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
50.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
51.在本技术实施例中,将业务模块中的被调用方程序封装在第一程序容器中,将被调用方程序封装在第二程序容器中。并在编译时将第一程序容器和第二程序容器收集在业务模块的构建文件中。在应用程序中设置了桥接组件,在启动应用程序时将各业务模块的调用方程序的程序指针均指向桥接组件中的消息总线服务,将各业务模块的第一程序容器均写入桥接组件中的注册表中。任意具有相互调用关系的业务模块都可以通过该桥接组件实现模块间的程序调用。通过桥接组件使各业务模块之间的关联关系条理有序,使应用程序具有了跨模块通信的能力。各业务模块之间相互独立,将任意业务模块从应用程序的主工程中抽离,都不会影响其他业务模块的执行。实现多业务模块无依赖并行开发,研发人员无需把时间浪费在自己不关心的业务逻辑的构建上,且能实现对代码权限的分级管理。
52.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本技术的实践了解到。
附图说明
53.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
54.图1示出了本技术一实施例所提供的业务模块的组成示意图;
55.图2示出了本技术一实施例所提供的启动时将各业务模块在桥接组件中整合绑定的示意图;
56.图3示出了本技术一实施例所提供的一种业务模块相互调用的实现方法的流程示意图;
57.图4示出了本技术一实施例所提供的业务模块中face容器和callout容器在编译、启动及运行时的操作示意图;
58.图5示出了本技术一实施例所提供的模块间通过桥接组件进行调用的示意图;
59.图6示出了本技术一实施例所提供的一种业务模块相互调用的实现方法的流程示意图;
60.图7示出了本技术一实施例所提供的一种业务模块相互调用的实现装置的结构示意图;
61.图8示出了本技术一实施例所提供的一种电子设备的结构示意图;
62.图9示出了本技术一实施例所提供的一种存储介质的示意图。
具体实施方式
63.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
64.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
65.下面结合附图来描述根据本技术实施例提出的一种业务模块相互调用的实现方法、装置、设备及存储介质。
66.目前面向移动终端的应用程序的功能越来越丰富,在开发应用程序时通常按照业务逻辑将应用程序划分成多个业务模块,每个业务模块分别由不同的研发团队独立开发。各业务模块研发完成之后再将各业务模块的构建文件整合到该应用程序的主工程中,构建出完整的应用程序。
67.但由于相关技术中各业务模块之间存在错综复杂的关联关系,若从主工程中把某个业务模块抽离出来,通常会使其他与该业务模块之间存在关联关系的业务模块无法正常运行,甚至使应用程序的主工程都构建失败。因此相关技术中业务模块的独立性很差,模块间整合难度很大,导致应用程序的构建效率很低。
68.本技术实施例提供了一种业务模块相互调用的实现方法,该方法分别对业务模块中调用其他业务模块的调用方程序和被其他业务模块调用的被调用方程序进行了封装,设置了桥接组件,将各业务模块的调用方程序的程序指针均指向桥接组件中的消息总线服
务,以及将各业务模块中封装被调用方程序的第一程序容器均写入桥接组件中的注册表中。任意具有相互调用关系的业务模块都可以通过该桥接组件实现模块间的程序调用。该方法通过桥接组件来建立模块间的关联关系,使各业务模块之间的关联关系条理有序,使应用程序具有了跨模块通信的能力。通过该桥接组件使各业务模块之间相互独立,可以实现多团队无依赖并行开发,每个团队开发各自的业务模块,不需要再把时间浪费在自己不关心的业务逻辑的构件上,而且在此基础上可以实现对代码权限进行分级管理。
69.在本技术实施例中,按照业务逻辑将应用程序划分为多个业务模块,由不同的研发团队在相互独立的工程中分别开发各业务模块。业务模块可能与其他业务模块存在关联关系,关联关系可以包括调用和被调用两类。本技术实施例将业务模块中需要调用其他业务模块的程序称为调用方程序,将被其他业务模块调用的程序称为被调用方程序。对于应用程序包括的每个业务模块,其处理方式都是相同的,本技术实施例以第一业务模块为例进行说明,第一业务模块为应用程序包括的任一业务模块。
70.在第一业务模块开发时将第一业务模块中包括的所有被调用方程序梳理出来,并封装在第一程序容器中。将第一业务模块中包括的所有调用方程序梳理出来,并封装在第二程序容器中。为了便于描述本技术实施例将第一程序容器称为face容器,将第二程序容器称为callout容器。
71.通过上述方式对业务模块中的调用方程序和被调用方程序分别进行封装之后,如图1所示,业务模块的组成包括face容器、主体逻辑和callout容器。其中,callout容器需要调用其他业务模块中的face容器,而该业务模块中的face容器则被其他业务模块中的callout容器调用。其中,主体逻辑为业务模块的程序代码。
72.本技术实施例还在第一业务模块中通过宏定义分别对face容器、callout容器、每个调用方程序及每个被调用方程序进行声明。其中,声明的face容器中包括每个被调用方程序对应的被调用方标识,被调用方标识可以为被调用方程序的名称。声明的每个被调用方程序中包括每个被调用方程序的被调用方标识及程序主体。声明的callout容器中包括每个调用方程序对应的调用方标识,调用方标识可以为调用方程序的名称。声明的每个调用方程序中包括每个调用方程序的调用方标识及程序主体。其中,可以以数据类型class string类型在face容器中声明所有被调用方程序,以及在callout容器中声明所有调用方程序。
73.例如,通过宏定义sy_face_export来进行face容器声明,通过宏定义sy_callout_export来进行callout容器声明,通过宏定义sy_face_method来进行被调用方程序的声明,通过宏定义sy_callout_method来进行调用方程序的声明。
74.对于应用程序的各个业务模块,都通过上述方式对业务模块中的调用方程序和被调用方程序进行封装,并通过宏定义对封装得到的程序容器及每个调用方程序和每个被调用方程序进行声明。各业务模块完成源程序的编写之后,对该应用程序各业务模块的源程序进行编译。
75.由于各业务模块中都通过宏定义对封装得到的程序容器及每个调用方程序和每个被调用方程序进行了声明,因此在编译过程中能够自动收集每个业务模块的调用方程序和被调用方程序。以第一业务模块来说,第一业务模块为应用程序中的任一业务模块。在编译应用程序中的第一业务模块时,将声明的第一程序容器及每个被调用方程序收集在第一
业务模块对应的构建文件中;将声明的第二程序容器及每个调用方程序收集在第一业务模块对应的构建文件中。
76.具体地,在编译第一业务模块时,建立第一业务模块的模块标识与声明的第一程序容器之间的绑定关系;通过预设数据结构建立声明的第一程序容器与声明的每个被调用方程序之间的绑定关系;将建立绑定关系后的第一程序容器写入第一业务模块对应的构建文件中。构建文件为能够被计算机识别的二进制文件,该构建文件相当于第一业务模块的安装文件。
77.在编译第一业务模块时,还通过预设数据结构建立声明的第二程序容器与声明的每个调用方程序之间的绑定关系;分别为每个调用方程序显式地设置其所需调用的第二业务模块的模块标识及被调用方程序的被调用方标识,第二业务模块为与第一业务模块之间存在相互调用关系的业务模块;将声明的第二程序容器写入第一业务模块对应的构建文件中。
78.对于应用程序包括的每个业务模块,都按照上述方式完成编译过程,从而可得到每个业务模块的构建文件。而且本技术实施例还在应用程序中设计了桥接组件,桥接组件中包括消息总线服务和注册表。其中,消息总线服务负责模块间相互调用过程中的消息转发、目标模块定位及被调用方确认等所有相关操作,注册表中用于存储应用程序中各个业务模块的第一程序容器。
79.通过编译过程得到每个业务模块的构建文件后,依据每个业务模块的构建文件启动该应用程序,在启动时,从每个业务模块对应的构建文件中分别获取每个业务模块的第一程序容器和第二程序容器;将每个业务模块的第二程序容器中每个调用方程序的程序地址均调整为指向桥接组件中的消息总线服务;将每个业务模块的第一程序容器均写入桥接组件包括的注册表中。
80.如图2所示,在启动时将每个业务模块的callout容器中的每个调用方程序的程序地址指向桥接组件中的消息总线服务。将每个业务模块的face容器均写入桥接组件包括的注册表中。
81.完成上述应用程序的编译及启动过程之后,如图3所示,通过以下步骤实现业务模块之间的相互调用:
82.步骤101:当执行第一业务模块的调用方程序时,调用桥接组件。
83.在应用程序运行的过程中,执行第一业务模块的主体逻辑,当主体逻辑调用第一业务模块的第二程序容器(即callout容器)中的调用方程序时,由于在上述应用程序启动过程中已经将第一业务模块的第二程序容器中的每个调用方程序的程序地址指向桥接组件中的消息总线服务。因此在第一业务模块的主体逻辑调用第二程序容器中的任意调用方程序时,均会转而调用桥接组件,从而将第一业务模块的调用操作转化为桥接组件的调用操作。
84.步骤102:通过桥接组件判断该调用方程序所需调用的第二业务模块中的被调用方程序是否存在。
85.通过步骤101的操作调用桥接组件后,通过桥接组件包括的消息总线服务查找注册表中是否包含调用方程序所需调用的第二业务模块中的被调用方程序。首先通过消息总线服务获取调用方程序所需调用的第二业务模块的模块标识和被调用方标识。具体地,在
第一业务模块的主体逻辑调用某个调用方程序时,解析出该调用方程序的程序指针指向桥接组件中的消息总线服务。因此跳转至执行消息总线服务,在此过程中会将第一业务模块中的该调用方程序的调用方标识传输给消息总线服务。消息总线服务根据该调用方标识,追加执行编译过程中声明的该调用方标识对应的程序主体,程序主体为该调用方程序的实现代码,该程序主体的实现代码中包括该调用方程序所需调用的第二业务模块的模块标识和被调用方标识。从该程序主体中获得该调用方程序所需调用的第二业务模块的模块标识和被调用方程序的被调用方标识。
86.然后根据上述获得的模块标识,查询桥接组件的注册表中是否包含该调用方程序所需调用的第二业务模块对应的第一程序容器;若注册表中包含第二业务模块对应的第一程序容器,则进一步判断第一程序容器中是否包括上述获得的被调用方标识对应的被调用方程序。若第一程序容器中包括该被调用方标识对应的被调用方程序,则表明该调用方程序所需调用的第二业务模块处于第一业务模块所在的工程项目中,且第二业务模块中包括了该调用方程序所需调用的被调用方程序,后续执行以下步骤103的操作来调用该被调用方程序。
87.若注册表中不包含第二业务模块对应的第一程序容器,则表明第二业务模块不在第一业务模块所在的工程项目中。或者,若注册表中虽然包含第二业务模块对应的第一程序容器,但第一程序容器中不包括上述被调用方标识对应的被调用方程序,则表明虽然第二业务模块在第一业务模块所在的工程项目中,但第二业务模块中并不包括该调用方程序所需调用的被调用方程序。在这两种情况下,无法实现该调用方程序对第二业务模块中的被调用方程序的调用,为避免这种调用失败的情况,本技术实施例在每个业务模块中为每个调用方程序设置了预设调用程序,在出现上述两种情况后,消息总线服务会将用于指示未查找到目标被调用方程序的指示参数返回给第一业务模块的该调用方程序,该调用方程序接收到该指示参数之后,会转而调用第一业务模块中该调用方程序对应的预设被调用程序。
88.执行上述预设被调用程序后,会将执行结果返回给该调用方程序。从而使该调用方程序获得一个默认的执行结果,并继续往下执行。避免了存在相互调用关系的第二业务模块不存在时导致第一业务模块执行出错的情况。
89.步骤103:若被调用方程序存在,则通过桥接组件调用第二业务模块中的该被调用方程序。
90.具体地,通过消息总线获取调用方程序对应的业务参数。例如,调用方程序需要调用第二业务模块的被调用方程序以获得某商品的详细信息,则该业务参数可以为该商品的标识。
91.通过消息总线服务将该业务参数传输给第二业务模块中的被调用方程序,以在第二业务模块中根据该业务参数执行被调用方程序;获取被调用方程序的执行结果,通过消息总线服务将执行结果传输给第一业务模块中的该调用方程序。
92.为了便于理解本技术实施例提供的调用方法,下面结合附图进行说明。如图4所示,在应用程序编译时,对每个业务模块中封装有被调用方程序的face容器和封装有调用方程序的callout容器进行注册,此处注册是指将face容器和callout容器进行了上文所述的一系列绑定操作,并将其写入业务模块对应的构建文件中。在应用程序启动时,将face容
器整合至桥接组件的注册表中,即将face容器写入注册表中。以及,将callout容器整合至桥接组件中的消息总线服务,即将callout容器中的每个调用方程序的程序指针指向桥接组件中的消息总线服务。在应用程序运行时,业务模块的callout容器调出,即callout容器中的调用方程序通过桥接组件调用其他业务模块。而face容器中的被调用方程序通过桥接组件接收其他业务模块的调用。如图5所示,模块a为调用方,模块b为被调用方,当模块a的主体逻辑调用模块a中的callout容器时,通过桥接组件实现对模块b中的face容器的调用。
93.图6示出了本技术实施例的详细调用实现过程,s1:将业务模块包括的所有被调用方程序封装在第一程序容器中,将业务模块包括的所有调用方程序封装在第二程序容器中。s2:通过宏定义声明第一程序容器、业务模块包括的每个被调用方程序、第二程序容器及业务模块包括的每个调用方程序。s3:在编译时,将声明的第一程序容器、每个被调用方程序、第二程序容器及每个调用方程序收集在业务模块对应的构建文件中。s4:在启动时,从业务模块对应的构建文件中分别获取业务模块的第一程序容器和第二程序容器,将第二程序容器中每个调用方程序的程序地址指向桥接组件的消息总线服务,将第一程序容器写入桥接组件的注册表中。s5:在运行时,当执行第一业务模块的调用方程序时,调用桥接组件。s6:通过消息总线服务查找注册表中是否包含该调用方程序所需调用的第二业务模块中的被调用方程序,如果是,则执行步骤s7,如果否,则执行步骤s8。s7:通过消息总线服务调用第二业务模块中的被调用方程序。s8:调用第一业务模块中该调用方程序对应的预设被调用程序。
94.在本技术实施例中,将业务模块中的被调用方程序封装在第一程序容器中,将被调用方程序封装在第二程序容器中。并在编译时将第一程序容器和第二程序容器收集在业务模块的构建文件中。在应用程序中设置了桥接组件,在启动应用程序时将各业务模块的调用方程序的程序指针均指向桥接组件中的消息总线服务,将各业务模块的第一程序容器均写入桥接组件中的注册表中。任意具有相互调用关系的业务模块都可以通过该桥接组件实现模块间的程序调用。通过桥接组件使各业务模块之间的关联关系条理有序,使应用程序具有了跨模块通信的能力。各业务模块之间相互独立,将任意业务模块从应用程序的主工程中抽离,都不会影响其他业务模块的执行。实现多业务模块无依赖并行开发,研发人员无需把时间浪费在自己不关心的业务逻辑的构建上,且能实现对代码权限的分级管理。
95.本技术实施例还提供一种业务模块相互调用的实现装置,该装置用于执行上述任一实施例提供的业务模块相互调用的实现方法。参见图7,该装置包括:
96.桥接组件调用模块701,用于当执行第一业务模块的调用方程序时,调用桥接组件;
97.判断模块702,用于通过桥接组件判断调用方程序所需调用的第二业务模块中的被调用方程序是否存在;
98.调用模块703,用于若被调用方程序存在,则通过桥接组件调用第二业务模块中的被调用方程序。
99.在本技术实施例中,桥接组件中包括消息总线服务和注册表;
100.判断模块702,用于通过消息总线服务查找注册表中是否包含调用方程序所需调用的第二业务模块中的被调用方程序;
101.调用模块703,用于若判断模块702判断出注册表中包含被调用方程序,则通过消
息总线服务调用第二业务模块中的被调用方程序。
102.查找模块702,具体用于通过消息总线服务获取调用方程序所需调用的第二业务模块的模块标识和被调用方标识;根据模块标识,查询注册表中是否包含调用方程序所需调用的第二业务模块对应的第一程序容器,第一程序容器中封装有第二业务模块包括的所有被调用方程序;若注册表中包含第二业务模块对应的第一程序容器,则判断第一程序容器中是否包括被调用方标识对应的被调用方程序;若第一程序容器中包括被调用方标识对应的被调用方程序,则执行调用模块703的操作。
103.调用模块703,还用于若查找模块702在注册表中未查找到第二业务模块对应的第一程序容器,或,在第一程序容器中未查找到被调用方标识对应的被调用方程序,则调用第一业务模块中调用方程序对应的预设被调用程序。
104.调用模块703,具体用于获取调用方程序对应的业务参数;通过消息总线服务将业务参数传输给第二业务模块中的被调用方程序,以在第二业务模块中根据业务参数执行被调用方程序;获取被调用方程序的执行结果,通过消息总线服务将执行结果传输给调用方程序。
105.该装置还包括:封装模块,用于将第一业务模块中包括的所有被调用方程序封装在第一程序容器中,第一业务模块为应用程序包括的任一业务模块;将第一业务模块中包括的所有调用方程序封装在第二程序容器中;
106.声明模块,用于通过宏定义声明第一程序容器及第一业务模块包括的每个被调用方程序;通过宏定义声明第二程序容器及第一业务模块包括的每个调用方程序。
107.该装置还包括:收集模块,用于在编译应用程序时,将声明的第一程序容器及每个被调用方程序收集在第一业务模块对应的构建文件中;将声明的第二程序容器及每个调用方程序收集在构建文件中。
108.收集模块,具体用于建立第一业务模块的模块标识与声明的第一程序容器之间的绑定关系;通过预设数据结构建立声明的第一程序容器与声明的每个被调用方程序之间的绑定关系;将建立绑定关系后的第一程序容器写入第一业务模块对应的构建文件中;以及,具体用于通过预设数据结构建立声明的第二程序容器与声明的每个调用方程序之间的绑定关系;分别为每个调用方程序设置其所需调用的第二业务模块的模块标识及被调用方程序的被调用方标识,第二业务模块为与第一业务模块之间存在相互调用关系的业务模块;将声明的第二程序容器写入第一业务模块对应的构建文件中。
109.该装置还包括:启动模块,用于在启动应用程序时,从每个业务模块对应的构建文件中分别获取每个业务模块的第一程序容器和第二程序容器;将每个业务模块的第二程序容器中每个调用方程序的程序地址均调整为指向桥接组件中的消息总线服务;将每个业务模块的第一程序容器均写入桥接组件包括的注册表中。
110.本技术的上述实施例提供的业务模块相互调用的实现装置与本技术实施例提供的业务模块相互调用的实现方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
111.本技术实施方式还提供一种电子设备,以执行上述业务模块相互调用的实现方法。请参考图8,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图8所示,电子设备8包括:处理器800,存储器801,总线802和通信接口803,所述处理器800、通信
接口803和存储器801通过总线802连接;所述存储器801中存储有可在所述处理器800上运行的计算机程序,所述处理器800运行所述计算机程序时执行本技术前述任一实施方式所提供的业务模块相互调用的实现方法。
112.其中,存储器801可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
113.总线802可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器801用于存储程序,所述处理器800在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述业务模块相互调用的实现方法可以应用于处理器800中,或者由处理器800实现。
114.处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步骤。
115.本技术实施例提供的电子设备与本技术实施例提供的业务模块相互调用的实现方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
116.本技术实施方式还提供一种与前述实施方式所提供的业务模块相互调用的实现方法对应的计算机可读存储介质,请参考图9,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的业务模块相互调用的实现方法。
117.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
118.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的业务模块相互调用的实现方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
119.需要说明的是:
120.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技
术,以便不模糊对本说明书的理解。
121.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
122.此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
123.以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1