CN109445960B - 应用的路由方法、装置及存储介质 - Google Patents
应用的路由方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109445960B CN109445960B CN201811213362.3A CN201811213362A CN109445960B CN 109445960 B CN109445960 B CN 109445960B CN 201811213362 A CN201811213362 A CN 201811213362A CN 109445960 B CN109445960 B CN 109445960B
- Authority
- CN
- China
- Prior art keywords
- component
- calling
- routing unit
- request
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了应用的路由方法、装置及存储介质。其中,一种应用的路由方法,包括:接收第一组件的第一调用请求,第一调用请求包括与所述第一组件要调用的服务对应的服务标识;由第一进程根据应用中各组件的身份标识与应用中各服务标识的对应关系确定与服务标识对应的第二组件,并根据应用中各进程与应用中各组件的包含关系并确定第二组件所属的目标进程;由第一进程确定所述目标进程是否为所述第一进程;在目标进程为不同于第一进程的第二进程时,由第一进程向第二进程发送包含服务标识的第二调用请求;以及由第二进程根据第二调用请求调用与服务标识对应的第二组件。
Description
技术领域
本申请涉及应用开发架构领域,尤其涉及应用的路由方法、装置及存储介质。
背景技术
随着互联网的发展,越来越多的应用被发布。应用例如可以运行在用户设备中。为了提高应用中代码的复用性,开发人员可以采用组件化方式开发应用。这里,组件化方式是指将应用划分成多个功能模块,并开发每个功能模块的方式。由于不同应用的进程模型不同,一个应用的组件无法被其他应用使用。简言之,应用中各组件之间的耦合度有待降低。
发明内容
本申请提出了一种应用的路由方案,能够解耦应用中的组件。
根据本申请一方面,提供一种应用的路由方法,包括:在第一进程中,接收第一组件的第一调用请求,所述第一调用请求包括与所述第一组件要调用的服务对应的服务标识;由所述第一进程根据所述应用中各组件的身份标识与所述应用中各服务标识的对应关系确定与所述服务标识对应的第二组件,并根据所述应用中各进程与所述应用中各组件的包含关系并确定所述第二组件所属的目标进程;由所述第一进程确定所述目标进程是否为所述第一进程;在所述目标进程为不同于所述第一进程的第二进程时,由所述第一进程向所述第二进程发送包含所述服务标识的第二调用请求;以及由所述第二进程根据所述第二调用请求调用与所述服务标识对应的第二组件。
根据本申请一方面,提供一种应用的路由装置,包括:第一进程中第一总路由单元,包括:接收模块,用于接收第一组件的第一调用请求,其中,所述第一调用请求包括与所述第一组件要调用的服务对应的服务标识;查询模块,用于根据所述应用中各组件的身份标识与所述应用中各服务标识的对应关系确定与所述服务标识对应的第二组件,并根据所述应用中各进程与所述应用中各组件的包含关系并确定所述第二组件所属的目标进程;判断模块,用于确定所述目标进程是否为所述第一进程;发送模块,用于在所述判断模块确定所述目标进程为不同于所述第一进程的第二进程时,向所述第二进程发送包含所述服务标识的第二调用请求;以及所述第二进程中第二总路由单元,用于根据所述第二调用请求调用与所述服务标识对应的第二组件。
根据本申请一方面,提供一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行本申请的数据处理方法。
综上,根据本申请的技术方案可以通过总路由单元查询服务标识对应的组件,可以避免组件之间相互引用内部定义,并且可以将组件与进程间通信进行隔离。在此基础上,本申请的技术方案可以解耦应用中组件,并且可以支持各种进程模型,并且支持组件的单独编译和测试,从而极大提高了构建应用的灵活性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请一些实施例的应用场景的示意图;
图2A示出了根据本申请一些实施例的路由框架的示意图;
图2B示出了根据本申请一些实施例的路由过程的示意图;
图2C示出了根据本申请一些实施例的组件管理工具的示意图;
图3示出了根据本申请一些实施例的应用的路由方法300的流程图;
图4示出了根据本申请一些实施例的应用的路由方法400的流程图;
图5示出了根据本申请一些实施例的调用第二组件的方法500的流程图;
图6示出了根据本申请一些实施例的执行回调操作的方法600的流程图;
图7示出了根据本申请一些实施例的调用第二组件的方法700的流程图;
图8示出了根据本申请一些实施例的应用的路由过程;
图9示出了根据本申请一些实施例的应用的路由装置900的示意图;以及
图10示出了一个计算设备的组成结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在一些应用场景中,应用可以划分成多个模块。一些模块(比如登录模块、网络通信模块、推送模块和存储模块等等)的功能被不同应用(项目)需要。这里,模块也可以称为组件。由于不同应用的进程模型不同,一个应用的组件常常无法被其他应用使用。进程模型是指应用的软件架构。一个应用的进程模型可以确定该应用中各进程所包含的组件(即,确定各进程空间运行的组件)。
在一些组件化开发方案中,应用通常基于爪哇(JAVA)注解机制,在编译时确定组件与路由框架的关系。然而,在上述组件化开发方案中,一个路由框架对应于确定的进程模型。各组件需要按照确定的进程模型进行编写。换言之,路由框架不支持多种类型的进程模型。例如,对于进程模型不同的两个应用而言,一个应用的组件并不能直接应用到另一个应用中。另外,路由框架也不支持组件单独编译和单独测试。
图1示出了根据本申请一些实施例的应用场景100的示意图。
如图1所示,应用提供系统102可以通过一个或多个网络106与一个或多个用户设备104(例如用户设备104a和104b等)通信。应用提供系统102可以存储一个或多个待下载的应用安装包。例如,应用提供系统102可以包括应用安装包。用户设备104可以从应用提供系统102获取应用的安装包,以安装并运行应用。这里,应用提供系统102可以包括一个或多个服务器。用户设备104可以包括但不限于掌上型计算机、可穿戴计算设备、个人数字助理(PDA)、平板计算机、笔记本电脑、台式计算机、移动电话、智能手机、增强型通用分组无线业务(EGPRS)移动电话、媒体播放器、导航设备、游戏控制台、电视机、或任意两个或更多的这些数据处理设备或其他数据处理设备的组合。
一个或多个网络106的示例包括局域网(LAN)和广域网(WAN)诸如互联网。在一些实施例中,本申请的实施例可以使用任意公知的网络协议来实现一个或多个网络106,包括各种有线或无线协议,诸如,以太网、通用串行总线(USB)、FIREWIRE、全球移动通讯系统(GSM)、增强数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、WiFi、IP语音(VoIP),Wi-MAX,或任意其他适合的通信协议。
图2A示出了根据本申请一些实施例的路由框架的示意图。如图2A所示,用户设备104可以包括一个或多个应用,例如应用108。应用108在运行初始化时,可以根据应用108的配置信息,启动一个或多个进程,并在每个进程中运行一个或多个组件。这里,每个组件是指应用108中一个功能模块。配置信息例如可以包括应用所包含的进程、各进程所包含组件的身份标识和组件的身份标识与服务标识的关联关系。这里,一个组件可以关联一个服务标识。服务标识实际上代表一项服务。不同的组件可以实现同一项服务。应用中服务标识与组件的关联关系可以由配置信息确定。换言之,配置信息可以确定应用中一项服务由哪个组件实现。应用108的每个进程可以包括一个总路由单元的运行实例。这里,应用108可以通过各进程中的总路由单元实现组件之间的通信。换言之,总路由单元用于控制应用中组件之间的通信。
例如,在经过初始化之后,应用108可以包括进程1和进程2。其中,进程1可以包括总路由单元11、组件12、组件13和组件14。进程2可以包括总路由单元21、组件22、组件23、组件24和组件25。进程1可以通过总路由单元11实现进程1内组件之间的通信。另外,进程1可以通过总路由单元11和总路由单元21,实现与进程2中组件的进程间通信(Inter ProcessCommunication,缩写为IPC)。在一些实施例中,进程中每个组件可以包括一个子路由单元。应用108在需要调用一个组件时,可以通过调用该组件的子路由单元而实现对该组件的调用。换言之,一个组件的子路由单元,用于在接收到调用请求时,调用该组件内部的功能接口。下面结合图2B对应用108的路由过程进行示例性说明。
如图2B所示,组件12可以向总路由单元11发送包含服务标识的第一调用请求1。这里,服务标识例如可以是一个用于与组件关联的域名。应用108中每个组件可以关联一个服务标识。总路由单元11可以根据组件12所要调用的服务标识确定与服务标识对应的目标组件。在一些实施例中,应用108中各总路由单元(例如11和21)均包含一份配置表。这里,配置表的内容来自于上述的配置信息。配置表例如可以包括各进程所包含组件的身份标识和组件的身份标识与服务标识的关联关系。在一些实施例中,总路由单元11在确定目标组建为本地进程中组件14时,总路由单元11可以通过调用组件14的子路由单元的接口而实现对组件14的调用。在一些实施例中,总路由单元11在确定目标组件为进程2中组件23时,可以向进程2的总路由单元21发送包含服务标识的第二调用请求。总路由单元21在接收到第二调用请求时,确定服务标识对应的目标组件(即,确定服务标识与组件23对应)。总路由单元21可以调用组件23,从而实现组件12对组件23的调用。综上,本申请的路由单元方法通过在每个进程中运行一个总路由单元的实例(例如总路由单元11和21等等),并且利用服务标识代表要调用的服务,可以避免本地进程内组件之间的关联,以及避免组件与跨进程通信的关联,从而可以解耦应用中的组件。另外,由于本申请中组件解耦,应用中组件可以单独编译和测试,从而极大提高本申请中组件的复用性。
图2C示出了根据本申请一些实施例的组件管理工具的示意图。如图2C所示,组件管理工具110可以管理多个组件。组件管理工具110例如可以基于专家(maven)工具。组件能够以库的形式存储在组件管理工具110中。一个组件的不同版本均可以存储在组件管理工具110中。组件管理工具110可以根据配置信息,将一个项目包含的组件生成为一个应用。例如,组件管理工具110可以包括组件1的版本1和版本2,组件2的版本1和版本2,以及组件3的版本1。组件管理工具110可以利用组件1的版本1和组件2的版本2生成应用1的安装包。又例如,组件管理工具110可以利用组件1的版本2、组件2的版本2和组件3的版本1生成应用2的安装包。综上,本申请的组件管理工具可以方便地选定应用涉及组件的版本,并生成相应的应用。
图3示出了根据本申请一些实施例的应用的路由方法300的流程图。应用的路由方法300例如可以在应用108中执行。应用108例如可以在用户设备104中运行,但不限于此。
在步骤S301中,在第一进程中,接收第一进程中第一组件的第一调用请求。第一调用请求包括与第一组件要调用的服务对应的服务标识。在一些实施例中,步骤S301可以由第一进程中第一总路由单元执行。第一总路由单元为第一进程中一个用于控制组件通信的逻辑模块。第一总路由单元可以包括一个或多个线程。这里,应用108中任一个组件可以关联一个服务标识。服务标识实际上代表一项服务。一个组件实现的功能可以称为一项服务。应用中服务标识与组件的关联关系可以由上文中配置信息确定。
在步骤S302中,由第一进程确定与服务标识对应的第二组件,并确定第二组件所属的目标进程。在一些实施例中,第一总路由单元可以获取服务标识与组件的对应关系,以及进程和组件的包含关系。因此,第一总路由单元可以通过查询方式确定第二组件和目标进程。具体而言,第一总路由单元可以根据应用中各组件的身份标识与应用中各服务标识的对应关系确定与服务标识对应的第二组件,并根据应用中各进程与应用中各组件的包含关系并确定第二组件所属的目标进程。
在步骤S303中,由第一进程确定目标进程是否为第一进程相同。在一些实施例中,步骤S303可以由第一总路由执行。
在步骤S304中,在目标进程为不同于第一进程的第二进程时,由第一进程向第二进程中发送包含服务标识的第二调用请求。在一些实施例中,第一总路由可以执行步骤S304。
在步骤S305中,由第二进程根据第二调用请求调用与服务标识对应的第二组件。在一些实施例中,步骤S305可以由第二进程中第二总路由单元执行。第二总路由单元为第二进程中的用于控制组件之间通信的逻辑模块。
综上,方法300通过总路由单元查询服务标识对应的组件,可以避免组件之间相互引用内部定义,并且可以将组件与进程间通信进行隔离。在此基础上,方法300可以解耦应用中组件,并且可以支持各种进程模型,并且支持组件的单独编译和测试,从而极大提高了构建应用的灵活性。
图4示出了根据本申请一些实施例的应用的路由方法400的流程图。应用的路由方法400例如可以在应用108中执行。应用108例如可以在用户设备104中运行,但不限于此。
在步骤S401中,在第一进程的第一总路由单元中,接收第一进程中第一组件的第一调用请求。在一些实施例中,第一调用请求包括与第一组件要调用的服务对应的服务标识。这里,服务标识可以标识第一组件所要调用(请求)的一项服务。一个组件实现的功能可以对应于一个服务标识。服务标识例如可以是统一资源标识符(Uniform ResourceIdentifier,缩写为URI),但不限于此。这里,统一资源标识符也可以称为域名。第一组件在需要调用一项服务时,不需要知道该项服务具体由哪个组件实现,而只需要在调用请求中引用服务标识(即,在第一调用请求中添加服务标识)。这样,通过引用服务标识,步骤S401可以避免直接引用目标组件(即服务标识实际对应的组件)的内部定义,从而能够降低组件之间的耦合性。在一些实施例中,第一调用请求还可以包括参数信息。这里,参数信息例如可以包括功能选项标识。这里,功能选项标识可以描述第一组件需要调用服务标识代表的组件的何种功能。一个功能选项标识可以对应一个功能接口。功能选项标识更具体的说明请参见方法500的说明。在一些实施例中,第一调用请求为针对图片缓存的调用请求,代码示例如下:
final CContext param=new CContext();
param.sDomain="ImageLoader";//目标组件域名,即服务标识
param.sParams.putString(ImageLoaderManager.KEY_LOAD_TYPE,ImageLoaderManager.TYPE_LOAD_URL);//表示使用组件的哪种功能(即功能选项标识)。这里是缓存url的功能
param.sParams.putString(ImageLoaderManager.KEY_LOAD_OBJ,todayInfo.weatherUrl);//标识图片url
param.localObjParams.put(ImageLoader.KEY_IMAGE_VIEW,backgroundIv);//标识将图片运用到哪个视图上
CGlobalCourier.getInstance().syncInvoke(null,null,param);//参数填充
在一些实施例中,第一总路由单元在接收到第一组件的第一调用请求之后,方法400可以执行步骤S402,由第一进程对第一组件进行身份验证。具体地,第一进程中第一总路由单元可以基于第一组件的身份标识,从配置表中查询该身份标识是否属于第一进程(即查询第一组件是否属于第一进程)。其中,配置表用于描述应用中各组件的身份标识与应用中各服务标识的对应关系(即,组件与服务标识的对应关系)和应用中各进程与所述应用中各组件的包含关系。在确定身份标识属于第一进程时,第一总路由单元确定第一组件的身份验证成功。在确定身份标识不属于第一进程时,第一总路由单元确定第一组件的身份验证未成功。综上,通过对调用方(例如,第一组件)的身份验证,步骤S402可以避免非法调用,从而提高应用的运行安全性。
在身份验证成功后,第一进程可以执行步骤S403,确定与服务标识对应的第二组件,并确定第二组件所属的目标进程。在一些实施例中,第一进程可以通过第一总路由单元,利用上文中配置信息生成配置表,并从配置表中查询第二组件和目标进程。例如,步骤S403可以通过步骤S4031和S4032来实现。在步骤S4031中,从配置表中查询与服务标识对应的身份标识,并将查询到的身份标识对应的组件作为第二组件。在步骤S4032中,基于配置表,查询第二组件所属的进程,并将查询到的进程作为目标进程。
需要说明的是,应用108的各组件可以独立开发、编译和测试。在一些实施例中,应用108可以根据配置信息确定配置表。配置信息可以包括应用所包含的进程、各进程所包含组件的身份标识和组件的身份标识与服务标识的关联关系。其中,一个组件与一个服务标识关联。换言之,配置信息可以指定一个服务标识在应用中所要代表的组件。应用108在初始化阶段可以根据配置信息而将各组件布置到相应的进程中。配置信息的代码示例如下:
在上述代码中,名称为“com.tencent.aimda:daemon”的进程可以包括与服务标识为"Net"、"DB"、"LBS"和"Setting"关联的组件。例如,“comp”的值为组件的身份标识。
综上,通过查询配置表来确定要调用的组件和目标进程,步骤S403可以支持调用在发送调用请求时,不需要考虑被调用组件是否为本地组件。换言之,步骤S403可以隔离组件之间的跨进程通信过程,从而支持组件应用在各种进程模型中,进而提高构建应用的灵活性。
在步骤S404中,由第一进程确定目标进程是否为第一进程。换言之,第一进程可以在步骤S404中确定第一组件所要调用的第二组件是否处于本地进程中。这里,第一进程例如可以通过第一总路由单元执行步骤S404。
在一些实施例中,第一调用请求可以包括键值对形式的参数信息。这里,参数信息例如可以包括参数编号和参数值。这里,参数编号可以称为“键”(key),参数值可以称为“值”(value)。
在步骤S404确定目标进程为不同于第一进程的第二进程时,路由方法400可以执行步骤S405,由第一进程将参数信息封装成序列化参数对象。第一进程例如可以通过第一总路由单元执行步骤S405例如,步骤S405可以调用序列化接口(例如,serializable接口或者parcelable接口)将参数信息封装为序列化参数对象,以便跨进程传递参数信息。需要说明的是,在第一调用请求不包括参数信息时,方法400可以省略执行步骤S405。
在步骤S406中,由第一进程向第二进程发送包含服务标识的第二调用请求。在一些实施例中,第一进程可以通过第一总路由单元执行步骤S406。在第一调用请求包括参数信息时,第二调用请求还包括序列化参数对象。
在步骤S407中,由第二进程根据第二调用请求调用与服务标识对应的第二组件。在一些实施例中,第二进程可以通过第二总路由单元执行步骤S407。步骤S407可以实现为方法500。图5示出了调用第二组件的方法500的流程图。
如图5所示,在步骤S501中,第二总路由单元响应于接收到第二调用请求,确定服务标识对应的第二组件。在一些实施例中,第二总路由单元可以基于配置表查询第二调用请求中服务标识对应的第二组件。这里,第二总路由单元中配置表与第一总路由单元中配置表内容一致。在一些实施例中,在第二调用请求包括序列化参数对象时,第二总路由单元可以根据序列化参数对象,获取第一调用请求中的参数信息。
在步骤S502中,获取第二组件中子路由单元的接口。子路由单元的接口包括同步调用接口和异步调用接口。其中,同步调用接口表示用于同步调用第二组件的接口。异步调用接口表示用于异步调用第二组件的接口。子路由单元用于:在同步调用接口被调用时同步调用第二组件,并在异步调用接口被调用时异步调用第二组件。在一些实施例中,第二总路由单元可以通过反射调用方式获取子路由单元的接口。反射调用获取接口的代码示例如下:
在步骤S503中,第二总路由单元可以确定第二调用请求是否为同步调用;
在步骤S503确定第二调用请求为同步调用时,方法500可以执行步骤S504,由第二总路由单元调用子路由单元的同步调用接口,以使子路由单元同步调用第二组件,从而实现了第一组件对第二组件的同步调用。
在步骤S503确定第二调用请求为异步调用时,方法500可以执行步骤S505,由第二总路由单元调用子路由单元的异步调用接口,以使子路由单元异步调用第二组件从而实现了第一组件对第二组件的异步调用。这里,在步骤S504和S505中,第二组件被调用时,可以执行与被调用的功能接口对应的操作。
在一些实施例中,第二组件可以提供多个被同步调用的功能接口和被异步调用的功能接口。子路由单元可以包括一个接口映射表。在接口映射表中,第二组件中各功能接口分别对应一个功能选项标识。换言之,接口映射表包括第二组件中各功能接口与各功能选项标识的对应关系。在一些实施例中,第一调用请求的参数信息可以包括第一组件指定的功能选项标识。相应的,第二调用请求中的序列化参数对象可以包括功能选项标识的内容。第二总路由单元在调用子路由单元的接口时,可以将功能选项标识传递至子路由单元。这样,子路由单元可以根据功能标识,根据映射表调用与功能标识对应的接口。在步骤S504中,子路由单元响应于同步调用接口被调用,可以同步调用第二组件中与第一组件指定的功能选项标识对应的功能接口。在步骤505中,子路由单元响应于异步调用接口被调用,可以异步调用第二组件中与第一组件指定的功能选项标识对应的功能接口。
综上,第二总路由单元只需要调用子路由单元的接口,就可以实现对第二组件中多个功能接口的调用。这里,第二总路由单元可以避免多次反射调用获取第二组件的多个功能接口,而只需要一次反射调用而获取子路由单元的接口。这样,通过子路由单元的方式,步骤S407可以避免多次反射调用造成的性能影响,从而提高应用的运行效率。
在一些实施例中,第二调用请求还可以包括第二回调标识。第二回调标识用于描述第一进程中跨进程回调管理线程的标识。这里,跨进程回调管理线程可以属于第一总路由单元。换言之,跨进程回调管理线程可以由第一总路由单元生成。
在步骤S408中,在第二组件完成与第二调用请求对应的操作时,第二进程可以基于第二回调标识,向第一进程中跨进程回调管理线程发送与第二调用请求对应的回调请求。在一些实施例中,第二进程可以通过第二总路由单元执行步骤S408。第二总路由单元将回调请求发送第一总路由单元。第一总路由单元可以将回调请求发送到跨进程回调管理线程。
在步骤S409中,由第一进程中跨进程回调管理线程根据回调请求执行回调操作。
在一些实施例中,第一调用请求还可以包括第一组件的第一回调标识。这里,第一回调标识可以标识第一组件的回调接口。第一组件可以将其各个回调接口的标识注册到第一总路由单元中。第一总路由单元可以生成一个与第二调用请求关联的会话标识。会话标识还与第一回调标识关联。步骤S409可以实施为方法600。
如图6所示,在步骤S601中,根据回调请求,查询与第二调用请求对应的会话标识。需要说明的是,跨进程回调管理线程实际上可以对第一进程中多个组件的回调操作进行管理。因此,跨进程回调管理线程在接收到回调请求时,可以查询与回调请求针对的第二调用请求对应的会话标识。
在步骤S602中,查询与会话标识关联的第一回调标识;
在步骤S603中,调用第一回调标识所标识的回调接口,从而对第一组件进行回调。
综上,本申请的路由方法,可以通过将跨进程回调管理线程的标识(即第二回调标识)传递至第二总路由单元。跨进程回调管理线程在接收到回调请求时,可以根据会话标识找到第一组件注册到第一总路由单元的回调接口,并进行回调操作。这样,本申请的路由单元方法可以避免将第一进程中第一组件的回调接口传递至第二进程,从而可以阻断第一组件与跨进程通信(涉及第二调用请求和回调请求)的联系,进而降低了不同进程中组件的耦合性。
在一些实施例中,在步骤S403确定目标进程为第一进程(即目标进程为本地进程)时,路由方法400可以执行步骤S410,由第一进程根据第一调用请求而调用第二组件。
在一些实施例中,第一进程可以通过第一总路由单元执行步骤S410。步骤S410可以实施为方法700。如图7所示,在步骤S701中,由第一总路由单元获取第二组件中子路由单元的接口。子路由单元的接口包括同步调用接口和异步调用接口。其中,同步调用接口表示用于同步调用第二组件的接口,异步调用接口表示用于异步调用第二组件的接口。在一些实施例中,步骤S701可以由第一总路由单元通过反射调用方式获取子路由单元的接口。
在步骤S701确定第一调用请求为同步调用时,方法700可以执行步骤S702。另外,在步骤S701确定第一调用请求为异步调用时,方法700可以执行步骤S703。
在步骤S702中,由第一总路由单元调用子路由单元的同步调用接口,以使子路由单元同步调用第二组件。这里,子路由单元同步调用第二组件的具体方式与步骤S504一致,这里不再赘述。
在步骤S703中,由第一总路由单元调用子路由单元的异步调用接口,以使子路由单元异步调用第二组件。这里,子路由单元异步调用第二组件的具体方式与步骤S505一致,这里不再赘述。
在第一调用请求为异步调用时,方法400还可以执行步骤S411。在步骤S411中,在第二组件完成与第一调用请求对应的操作时,由第一总路由单元调用第一组件的回调接口。在一些实施例中,第一总路由单元可以包括异步调用管理线程。第一总路由单元可以指示异步调用管理线程调用第一组件的回调接口。这里,异步调用管理线程可以调用第一回调标识所标识的回调接口。
综上,方法400通过总路由单元查询服务标识对应的组件,可以避免组件之间相互引用内部定义,并且可以将组件与进程间通信进行隔离。在此基础上,方法400可以解耦应用中组件,并且可以支持各种进程模型,并且支持组件的单独编译和测试,从而极大提高了构建应用的灵活性。
图8示出了根据本申请一些实施例的应用的路由过程。图8是对图2B中路由过程的进一步说明。
如图8所示,组件12可以执行步骤S801,向总路由单元11发送第一调用请求。第一调用请求可以包括一个服务标识。总路由单元11可以执行步骤S802,接收第一调用请求。在步骤S803中,总路由单元11可以查询配置表,以确定服务标识对应的目标组件和目标组件所属的目标进程。在步骤S804中,总路由单元11可以确定是否为跨进程通信。具体而言,在目标组件为组件14时,目标进程与进程1相同。因此,总路由单元11可以确定不是跨进程通信。总路由单元可以执行S805。另外,在目标组件为进程2中组件23时,总路由单元11可以确定是跨进程通信。总路由单元11可以执行步骤S811。
在步骤S805中,总路由单元11可以通过反射调用方式获取组件14的子路由单元的接口。在步骤S806中,总路由单元11可以确定第一调用请求是否为同步调用。在确定是同步调用时,总路由单元11可以执行步骤S807,调用组件14的子路由单元的同步调用接口,以便子路由单元同步调用组件14的功能接口。在确定是异步调用时,总路由单元11可以执行步骤S808,调用组件14的子路由单元的异步调用接口,以便子路由单元异步调用组件14的功能接口。组件14可以执行步骤S809,针对步骤S807或者S808,返回调用结果。总路由单元11在接收到针对步骤S808的调用结果时,可以执行步骤S810,对组件14进程回调操作。例如,总路由单元11可以指示一个异步调用管理线程执行对组件14的回调操作。回调操作具体可以对第一调用请求中第一回调标识所代表的回调接口进行调用。
在步骤S811中,总路由单元11可以向总路由单元21发送包含服务标识的第二调用请求。总路由单元21可以执行步骤S812,接收第二调用请求。在步骤S813中,总路由单元21可以查询配置表,以确定服务标识对应的组件,例如为组件23。在步骤S814中,总路由单元21可以获取组件23的子路由单元的接口。在步骤S815中,总路由单元21可以确定第二调用请求是否为同步调用。在确定是同步调用时,总路由单元21可以执行步骤S816,调用组件23的子路由单元的同步调用接口,以使子路由单元同步调用组件23的功能接口。在确定时异步调用时,总路由单元21可以执行步骤S817,调用组件23的子路由单元的异步调用接口,以使子路由单元异步调用组件23的功能接口。针对步骤S816或者S817,组件23可以执行步骤S818,返回调用结果。总路由单元21在接收到针对步骤S817的调用结果时,可以执行步骤S819,向总路由单元11中跨进程回调管理线程B发送回调请求。跨进程回调管理线程可以执行步骤S820,确定与第二调用请求关联的会话标识,并确定与会话标识关联的回调接口,从而执行回调操作,即调用回调接口。图8中路由过程更具体的实施方式请参见方法400,这里不再赘述。
图9示出了根据本申请一些实施例的应用的路由装置900的示意图。应用108例如可以包括路由装置900。这里,路由装置也可以称为应用108的路由框架。路由装置900可以包括设置在应用108中各进程中的总路由单元。应用108例如可以包括第一进程和第二进程。如图9所示,路由装置可以包括第一进程中第一总路由单元910和第二进程中第二总路由单元920。
第一总路由单元910可以包括第一接收模块911、第一查询模块912、第一判断模块913和第一发送模块914。
第一接收模块911用于接收第一组件的第一调用请求。其中,第一调用请求包括与第一组件要调用的服务对应的服务标识。
第一查询模块912用于根据应用中各组件的身份标识与应用中各服务标识的对应关系确定与服务标识对应的第二组件,并根据应用中各进程与应用中各组件的包含关系并确定第二组件所属的目标进程。在一些实施例中,查询模块912可以从配置表中查询与服务标识对应的身份标识,并将查询到的身份标识对应的组件作为第二组件。其中,配置表用于描述应用108中各组件的身份标识与应用中各服务标识的对应关系,和应用108中各进程与应用中各组件的包含关系。基于配置表,查询模块912还可以查询第二组件所属的进程,并将查询到的进程作为目标进程。
第一判断模块913用于确定目标进程是否为第一进程。
第一发送模块914用于在判断模块913确定目标进程为不同于第一进程的第二进程时,向第二进程发送包含服务标识的第二调用请求。在一些实施例中,第一调用请求包括键值对形式的参数信息。参数信息包括参数编号和参数值。在目标进程为不同于第一进程的第二进程时,第一发送模块914可以将参数信息封装成序列化参数对象。这样,第一发送模块914可以向第二进程发送包含服务标识和序列化参数对象的第二调用请求。
第二总路由单元920,用于根据第二调用请求调用与服务标识对应的第二组件。
在一些实施例中,第一总路由单元910还包括第一调用模块915。第一调用模块915可以在目标进程为第一进程时,根据第一调用请求调用第二组件。
在一些实施例中,路由装置还可以包括应用108中各组件的子路由单元。例如第一组件的子路由单元和第二组件的子路由单元。第一调用模块915可以获取第二组件中子路由单元的接口。第二组件的子路由单元的接口包括同步调用接口和异步调用接口。第二组件的子路由单元用于在同步调用接口被调用时同步调用第二组件,并在异步调用接口被调用时异步调用第二组件。在一些实施例中,第一调用模块915可以通过反射调用方式获取第二组件的子路由单元的接口。
第一调用模块915可以确定第一调用请求是否为同步调用。在第一调用请求为同步调用时,第一调用模块915调用第二组件中子路由单元的同步调用接口,以使第二组件中子路由单元同步调用第二组件。在第一调用请求为异步调用时,第一调用模块915调用第二组件中子路由单元的异步调用接口,以使第二组件的子路由单元异步调用第二组件。
在一些实施例中,第一调用请求还包括功能选项标识。功能选项标识用于描述第一组件要调用的服务的一个功能选项。第二组件的子路由单元包括接口映射表。接口映射表包括第二组件中各功能接口与各功能选项标识的对应关系。
第二组件的子路由单元可以响应于同步调用接口被调用,同步调用第二组件中与第一调用请求中功能选项标识对应的功能接口。在第一调用请求为异步调用时,第二组件的子路由单元可以响应于异步调用接口被调用,异步调用第二组件中与第一调用请求中功能选项标识对应的功能接口。
在一些实施例中,第一总路由单元910还包括第一本地回调模块916。这里,第一本地回调模块916例如可以实现为第一总路由单元910的一个线程。在第二组件完成与第一调用请求对应的操作时,第一本地回调模块916可以对第一组件执行回调操作。在一些实施例中,第一调用请求还可以包括第一组件的第一回调标识。第一本地回调模块916可以调用第一回调标识所标识的回调接口。
在一些实施例中,第二总路由单元920可以包括第二接收模块921、第二查询模块922、第二发送模块924和第二调用模块925。
第二接收模块921可以接收第二调用请求。第二查询单元922可以确定服务标识对应的第二组件。
第二调用模块925可以获取第二组件中子路由单元的接口。第二组件子路由单元的接口包括同步调用接口和异步调用接口,其中子路由单元用于:在同步调用接口被调用时同步调用第二组件,并在异步调用接口被调用时异步调用第二组件。
第二调用模块925还可以确定第二调用请求是否为同步调用。在确定第二调用请求为同步调用时,第二调用模块925可以调用第二组件中子路由单元的同步调用接口,以使子路由单元同步调用第二组件。在确定第二调用请求为异步调用时,第二调用模块925可以调用子路由单元的异步调用接口,以使子路由单元异步调用第二组件。
在一些实施例中,第二调用请求进一步包括第二回调标识。第二回调标识用于描述第一进程中跨进程回调管理模块917的标识。这里,跨进程回调管理模块917例如可以实现为第一总路由单元910的一个线程。在第二组件完成与第二调用请求对应的操作时,第二总路由单元920还包括第二发送模块924和第二本地回调模块926。第二本地回调模块926可以通过第二发送模块924向与第二回调标识对应的跨进程回调管理模块917发送与第二调用请求对应的回调请求。这样,跨进程回调管理模块917根据所述回调请求执行回调操作。
在一些实施例中,第一调用请求还包括第一组件的第一回调标识。第一回调标识用于标识第一组件的回调接口。跨进程回调管理模块917可以生成一个与第二调用请求关联的会话标识。会话标识与第一回调标识关联。跨进程回调管理模块917可以根据回调请求查询与第二调用请求对应的会话标识。跨进程回调管理模块917可以查询与会话标识关联的第一回调标识。在此基础上,跨进程回调管理模块917可以调用第一回调标识所代表的回调接口。
在一些实施例中,第一总路由单元920还可以包括第一身份验证单元918。在第一接收模块911接收到第一组件的第一调用请求之后,第一身份验证单元918对第一组件进行身份验证。在身份验证成功后,第一查询单元912可以执行确定与服务标识对应的第二组件并确定第二组件所属的目标进程的操作。
综上,装置900通过总路由单元查询服务标识对应的组件,可以避免组件之间相互引用内部定义,并且可以将组件与进程间通信进行隔离。在此基础上,装置900可以解耦应用中组件,并且可以支持各种进程模型,并且支持组件的单独编译和测试,从而极大提高了构建应用的灵活性。
图10是一些实施例中示例性计算设备1000的框图。这里,计算设备1000可以实现为根据本申请的用户设备104。这里,计算设备1000可以由包括虚拟和物理资源的一个或多个计算设备提供计算设备1000。
计算设备1000典型地包括一个或多个处理单元(CPU)1002,一个或多个网络接口1004,存储器1006,和用于互联这些组件的一个或多个通信总线1008(有时也称为芯片集)。计算设备1000也可选地包括用户接口1010。用户接口1010包括一个或多个使能媒体内容的呈现的输出设备1012,该一个或多个输出设备包括一个或多个扬声器和/或一个或多个可视化显示器。用户界面1010也包括一个或多个输入设备1014,该一个或多个输入设备1014包括便利用户输入的用户接口组件,诸如键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机,或其他输入按钮或控件等。
存储器1006包括高速随机存取存储器,诸如DRAM,SRAM,DDR RAM,或其他随机存取固态存储设备;和,可选地,包括非易失性存储器,诸如一个或多个磁盘存储设备,光盘存储设备,闪存设备,或其他非易失性固态存储设备。存储器1006可选地包括一个或多个从CPU1102远程定位的存储设备。存储器1006,或可选地,存储器1006内的非易性存储设备,包括非易失性计算机可读存储介质。在一些实施方式中,存储器1006,或存储器1006的非易失性计算机可读存储介质,存储以下程序,模块,或数据结构,或其子集或超集:
在一些实施例中,存储器1006可以包括路由装置900。
操作系统1016,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
网络通信模块1018,用于通过一个或多个网络接口1004(有线或无线)(例如,WiFi、以太、LAN、WLAN等)在网络106上连接至其他计算设备;
呈现模块1120,用于通过与用户接口1010关联的一个或多个输出设备1012(例如,显示器、扬声器等),在计算设备1000处使能信息的呈现(例如,用于运行计算设备系统和显示内容和信息的用户接口);
输入处理模块1022,用于检测来自一个或多个输入设备1014中的一个输入设备的一个或多个用户输入或交互,并解析检测的输入和交互。
以上所述的单元可以存储在之前提及的一个或多个存储设备中,并且对应于用于执行以上描述的功能的指令集。不需要作为独立的软件程序,过程,模块,或数据结构而实现以上所述的模块或程序(例如,指令集),因此,可以以各种方式组合或重排这些模块的各种子集。在一些实施例中,存储器1006可选地存储以上所述的模块和数据结构的子集。进一步地,存储器1006可选地存储以上未描述的外加模块和数据结构。
以上所述仅为本申请的可选实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (16)
1.一种应用的路由方法,其特征在于,所述方法包括:
在第一进程中,第一总路由单元接收第一组件的第一调用请求,所述第一调用请求包括与所述第一组件要调用的服务对应的服务标识,所述第一总路由单元为所述第一进程中用于控制组件之间通信的逻辑模块;
由所述第一进程的第一总路由单元根据所述应用中各组件的身份标识与所述应用中各服务标识的对应关系确定与所述服务标识对应的第二组件,并根据所述应用中各进程与所述应用中各组件的包含关系并确定所述第二组件所属的目标进程;
由所述第一进程的第一总路由单元确定所述目标进程是否为所述第一进程;
在所述目标进程为不同于所述第一进程的第二进程时,由所述第一进程的第一总路由单元向所述第二进程发送包含所述服务标识的第二调用请求;以及
由所述第二进程的第二总路由单元根据所述第二调用请求调用与所述服务标识对应的第二组件,所述第二总路由单元为所述第二进程中用于控制组件之间通信的逻辑模块。
2.如权利要求1所述的方法,其中,所述由所述第一进程的第一总路由单元根据所述应用中各组件的身份标识与所述应用中各服务标识的对应关系确定与所述服务标识对应的第二组件,并根据所述应用中各进程与所述应用中各组件的包含关系并确定所述第二组件所属的目标进程,包括:
第一总路由单元从配置表中查询与所述服务标识对应的身份标识,并将查询到的所述身份标识对应的组件作为所述第二组件,其中,所述配置表用于描述所述应用中各组件的身份标识与所述应用中各服务标识的对应关系,和所述应用中各进程与所述应用中各组件的包含关系;
基于所述配置表,查询所述第二组件所属的进程,并将查询到的进程作为所述目标进程。
3.如权利要求1所述的方法,进一步包括:在所述目标进程为所述第一进程时,由所述第一进程根据所述第一调用请求调用所述第二组件。
4.如权利要求3所述的方法,其中,所述在所述目标进程为所述第一进程时,由所述第一进程根据所述第一调用请求调用所述第二组件,包括:
获取所述第二组件中子路由单元的接口,所述子路由单元的接口包括同步调用接口和异步调用接口,其中所述子路由单元用于:在所述同步调用接口被调用时同步调用所述第二组件,并在所述异步调用接口被调用时异步调用所述第二组件;
确定所述第一调用请求是否为同步调用;
在所述第一调用请求为同步调用时,调用所述子路由单元的所述同步调用接口,以使所述子路由单元同步调用所述第二组件;和
在所述第一调用请求为异步调用时,调用所述子路由单元的所述异步调用接口,以使所述子路由单元异步调用所述第二组件。
5.如权利要求4所述的方法,其中,所述第一调用请求进一步包括功能选项标识,所述功能选项标识用于描述所述第一组件要调用的服务的一个功能选项,所述子路由单元包括接口映射表,所述接口映射表包括所述第二组件中各功能接口与各功能选项标识的对应关系;
所述在所述第一调用请求为同步调用时,调用所述子路由单元的所述同步调用接口,以使所述子路由单元同步调用所述第二组件,包括:在所述子路由单元中,响应于所述同步调用接口被调用,同步调用所述第二组件中与所述第一调用请求中功能选项标识对应的功能接口;
所述在所述第一调用请求为异步调用时,调用所述子路由单元的所述异步调用接口,以使所述子路由单元异步调用所述第二组件,包括:在所述子路由单元中,响应于所述异步调用接口被调用,异步调用所述第二组件中与所述第一调用请求中功能选项标识对应的功能接口。
6.如权利要求4所述的方法,进一步包括:
在所述第二组件完成与所述第一调用请求对应的操作时,由所述第一进程对所述第一组件执行回调操作。
7.如权利要求6所述的方法,其中,所述第一调用请求进一步包括所述第一组件的第一回调标识;所述由所述第一进程对所述第一组件执行回调操作,包括:调用所述第一回调标识所标识的回调接口。
8.如权利要求4所述的方法,其中,所述由所述第一进程获取所述第二组件中子路由单元的接口,包括:
由所述第一进程通过反射调用方式获取所述子路由单元的接口。
9.如权利要求1所述的方法,其中,所述由第二进程的第二总路由单元根据所述第二调用请求调用与所述服务标识对应的第二组件,包括:
响应于接收到所述第二调用请求,确定所述服务标识对应的所述第二组件;
获取所述第二组件中子路由单元的接口,所述子路由单元的接口包括同步调用接口和异步调用接口,其中所述子路由单元用于:在所述同步调用接口被调用时同步调用所述第二组件,并在所述异步调用接口被调用时异步调用所述第二组件;
确定所述第二调用请求是否为同步调用;
在确定所述第二调用请求为同步调用时,调用所述子路由单元的所述同步调用接口,以使所述子路由单元同步调用所述第二组件;和
在确定所述第二调用请求为异步调用时,调用所述子路由单元的所述异步调用接口,以使所述子路由单元异步调用所述第二组件。
10.如权利要求9所述的方法,其中,所述第二调用请求进一步包括第二回调标识,所述第二回调标识用于描述所述第一进程中跨进程回调管理线程的标识;所述方法进一步包括:
在所述第二组件完成与所述第二调用请求对应的操作时,由所述第二进程向与所述第二回调标识对应的所述跨进程回调管理线程发送与所述第二调用请求对应的回调请求;
由所述跨进程回调管理线程根据所述回调请求执行回调操作。
11.如权利要求10所述的方法,其中,所述第一调用请求还包括所述第一组件的第一回调标识,所述第一回调标识用于标识所述第一组件的回调接口,所述方法进一步包括:
由所述第一进程生成一个与所述第二调用请求关联的会话标识,所述会话标识与所述第一回调标识关联;
所述由所述跨进程回调管理线程根据所述回调请求执行回调操作,包括:
根据所述回调请求查询与所述第二调用请求对应的会话标识;
查询与所述会话标识关联的第一回调标识;
调用所述第一回调标识所代表的回调接口。
12.如权利要求1所述的方法,进一步包括:所述第一进程在接收到所述第一组件的第一调用请求之后,对所述第一组件进行身份验证;
在所述身份验证成功后,所述第一进程执行所述确定与所述服务标识对应的第二组件并确定所述第二组件所属的目标进程的操作。
13.如权利要求1所述的方法,其中,所述第一调用请求包括键值对形式的参数信息,所述参数信息包括参数编号和参数值;所述方法进一步包括,在所述目标进程为不同于所述第一进程的第二进程时,由所述第一进程将所述参数信息封装成序列化参数对象;
所述由所述第一进程的第一总路由单元向所述第二进程发送包含所述服务标识的第二调用请求,包括:所述第一总路由单元向所述第二进程发送包含所述服务标识和所述序列化参数对象的第二调用请求。
14.一种应用的路由装置,其特征在于,所述路由装置包括:
第一进程中第一总路由单元,包括:
接收模块,用于接收第一组件的第一调用请求,其中,所述第一调用请求包括与所述第一组件要调用的服务对应的服务标识;
查询模块,用于根据所述应用中各组件的身份标识与所述应用中各服务标识的对应关系确定与所述服务标识对应的第二组件,并根据所述应用中各进程与所述应用中各组件的包含关系并确定所述第二组件所属的目标进程;
判断模块,用于确定所述目标进程是否为所述第一进程;
发送模块,用于在所述判断模块确定所述目标进程为不同于所述第一进程的第二进程时,向所述第二进程发送包含所述服务标识的第二调用请求,所述第一总路由单元为所述第一进程中用于控制组件之间通信的逻辑模块;以及
所述第二进程中第二总路由单元,用于根据所述第二调用请求调用与所述服务标识对应的第二组件,所述第二总路由单元为所述第二进程中用于控制组件之间通信的逻辑模块。
15.一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-13中任一项所述的方法。
16.一种计算设备,其特征在于,包括:处理器和存储器;所述存储器中存储有计算机可读指令,使所述处理器执行权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811213362.3A CN109445960B (zh) | 2018-10-18 | 2018-10-18 | 应用的路由方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811213362.3A CN109445960B (zh) | 2018-10-18 | 2018-10-18 | 应用的路由方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109445960A CN109445960A (zh) | 2019-03-08 |
CN109445960B true CN109445960B (zh) | 2021-03-02 |
Family
ID=65546585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811213362.3A Active CN109445960B (zh) | 2018-10-18 | 2018-10-18 | 应用的路由方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445960B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110913025B (zh) * | 2019-12-31 | 2022-06-24 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
WO2021195990A1 (en) * | 2020-03-31 | 2021-10-07 | Alibaba Group Holding Limited | Network congestion avoidance over ring-based collective communication |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360060A (zh) * | 2008-09-18 | 2009-02-04 | 中兴通讯股份有限公司 | 实现系统间数据交互的处理单元、数据发送/接收方法 |
CN104866383A (zh) * | 2015-05-29 | 2015-08-26 | 北京金山安全软件有限公司 | 一种接口调用方法、装置及终端 |
CN106933636A (zh) * | 2017-03-16 | 2017-07-07 | 北京奇虎科技有限公司 | 启动插件服务的方法、装置和终端设备 |
CN107273226A (zh) * | 2017-06-30 | 2017-10-20 | 百度在线网络技术(北京)有限公司 | 在安卓系统中集成组件及调用被集成组件的方法和装置 |
CN107577541A (zh) * | 2017-09-05 | 2018-01-12 | 浪潮通用软件有限公司 | 一种应用及一种组件的调用方法 |
CN108134828A (zh) * | 2017-12-20 | 2018-06-08 | 金蝶软件(中国)有限公司 | 服务请求的路由方法、装置、计算机设备和存储介质 |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
-
2018
- 2018-10-18 CN CN201811213362.3A patent/CN109445960B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360060A (zh) * | 2008-09-18 | 2009-02-04 | 中兴通讯股份有限公司 | 实现系统间数据交互的处理单元、数据发送/接收方法 |
CN104866383A (zh) * | 2015-05-29 | 2015-08-26 | 北京金山安全软件有限公司 | 一种接口调用方法、装置及终端 |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构系统 |
CN106933636A (zh) * | 2017-03-16 | 2017-07-07 | 北京奇虎科技有限公司 | 启动插件服务的方法、装置和终端设备 |
CN107273226A (zh) * | 2017-06-30 | 2017-10-20 | 百度在线网络技术(北京)有限公司 | 在安卓系统中集成组件及调用被集成组件的方法和装置 |
CN107577541A (zh) * | 2017-09-05 | 2018-01-12 | 浪潮通用软件有限公司 | 一种应用及一种组件的调用方法 |
CN108134828A (zh) * | 2017-12-20 | 2018-06-08 | 金蝶软件(中国)有限公司 | 服务请求的路由方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109445960A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829787B2 (en) | Multi-process model for cross-platform applications | |
CN107203419B (zh) | 应用程序中的模块间调用方法、装置及系统 | |
WO2022016848A1 (zh) | 一种根据服务角色的进行应用部署的方法及装置 | |
US11860796B2 (en) | Execution space agnostic device drivers | |
US11726799B2 (en) | Preventing framework conflicts for multi-OS applications | |
EP3748500B1 (en) | Inversion-of-control component service models for virtual environments | |
US11216343B1 (en) | System and method for accelerating processing in event-driven server-less computing | |
CN109445960B (zh) | 应用的路由方法、装置及存储介质 | |
US10198279B2 (en) | Thread synchronization for platform neutrality | |
CN112860457A (zh) | 软件开发工具包调用方法、装置、计算机设备和存储介质 | |
US11057242B2 (en) | Address system | |
CN107368339B (zh) | 容器入口程序运行方法、系统、设备及存储介质 | |
WO2018068655A1 (zh) | 一种许可管理方法和系统 | |
US9819725B1 (en) | System, method, and computer program for remotely controlling mobile web applications installed on a mobile device | |
CN115629809A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN104980511A (zh) | 一种游戏数据访问方法、系统以及游戏网页服务器 | |
US20220358055A1 (en) | Method and apparatus for acquiring device information, storage medium and electronic device | |
CN115437719A (zh) | 跨操作系统的调用方法、装置及电子设备 | |
Cho et al. | picoPlangent: An intelligent mobile agent system for ubiquitous computing | |
CN109901826B (zh) | 用于Java程序的数据处理方法、装置和电子设备 | |
CN116431141A (zh) | Sdk调用方法、设备及存储介质 | |
CN114398082B (zh) | 一种框架式区块链应用的兼容运行方法及装置 | |
CN116028072A (zh) | 应用程序热更新方法、装置、存储介质及电子设备 | |
WO2018077115A1 (zh) | 一种插件的实现方法、装置和计算机存储介质 | |
CN116795488A (zh) | 针对应用程序的处理装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |