一种基于跨平台的业务通信方法及装置与流程

    专利查询2023-02-18  69

    1.本技术涉及软件领域,尤其是涉及一种基于跨平台的业务通信方法及装置。
    背景技术
    ::2.现有的公司内有架构比较复杂且各部门业务不同,因而各部门在维护本部门工作时,通常使用本部门自己对应的app,因此导致在公司内部通常会有多个办公app在运行,其中有些业务需求,需要多个app都实现相同的功能,通常做法是,这些需求每个相关app都开发一遍功能,每个app针对同一个需求都单独维护一套代码,开发维护成本较高,且存在重复开发工作。期望能把这些相同的业务功能打包成一个可跨app使用的模块,各app使用同一份代码,还能提升开发效率。3.模块跨app使用时需要解决与宿主app内其他业务模块间的通信问题及模块依赖的组件与宿主app组件的兼容性问题。4.现有app内各业务模块间主要是通过urlroute或全局广播的方式通信的。urlroute或全局广播的方式存在一些问题:route调用时无法方便准确的知道对应api需要的参数信息、urlroute需要经过一系列路由表查询,效率较低、广播的方式是单向的,无法满足模块间的双向通信。5.申请内容6.针对目前这些技术问题,本技术提出了一种基于跨平台的业务通信方法及装置,能够解决上述中每个app针对同一个业务模块需要单独维护一套代码,导致开发维护成本高,开发效率低的问题,以及实现不同的业务模块之间能够以较高的效率实现双向通信的问题。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.所述业务模块根据所述结果更新对应的ui界面信息;33.所述业务模块根据接收的处理指令对所述结果进行处理;34.所述业务模块对所述结果进行输出。35.在一种可实现的实施方式中,所述接收业务模块的查询指令的步骤之前,还包括:36.启动软件系统;37.将所述业务模块和所述待调用业务模块注册到服务注册中心。38.本技术还提供了一种基于跨平台的业务通信装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于当执行所述存储器存储的计算机程序时,实现如上所述的基于跨平台的业务通信装置方法。39.本技术的有益效果:40.通过采用本技术提供的基于跨平台的业务通信方法及装置,能够实现业务模块通过虚拟api直接与宿主app的业务模块进行通信。业务模块调用宿主app中的系统服务或其他业务模块时,既可以准确的知道api所需的参数信息又不用依赖对应的服务或模块,提供如nativeapi一样的体验,在服务注册管理这块,各业务服务通过hashtable保存引用,api调用时可以直接查到对应的业务服务没有性能和时间损耗,同时全面支持callback机制,满足服务的双向调用。附图说明41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。42.图1为本技术提供的基于跨平台的业务模块通信方法的流程示意图;43.图2为本技术实施例提供的基于查询指令获取对应的引用信息的方法流程示意图;44.图3为本技术实施例提供的根据引用信息调用所述待调用业务模块执行相应的操作的方法流程示意图;45.图4为本技术实施例提供的根据引用信息调用所述待调用业务模块执行相应的操作的方法流程示意图。具体实施方式46.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。47.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本技术不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。48.应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。本技术使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。例如,“包括以下至少一个:a、b、c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a和b和c”,再如,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a和b和c”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。49.应该理解的是,虽然本技术实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。50.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。51.需要说明的是,在本文中,采用了诸如s1、s2等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行s4后执行s3等,但这些均应在本技术的保护范围之内。52.应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。53.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。54.针对目前这些技术问题,本技术提出了一种基于跨平台的业务通信方法及装置,能够解决上述中每个app针对同一个业务模块需要单独维护一套代码,导致开发维护成本高,开发效率低的问题,以及实现不同的业务模块之间能够以较高的效率实现双向通信的问题。55.如图1所示,为本技术提供的基于跨平台的业务模块通信方法的流程示意图。该基于跨平台的业务模块通信方法,包括:56.接收业务模块的查询指令;57.获取所述查询指令对应的引用信息;58.所述业务模块根据所述引用信息调用所述待调用业务模块执行相应的操作。59.在本技术的一个实施例中,在实际的办公软件环境中,当a软件接收到业务模块为满足业务需求所发出的查询指令时,首先对该查询指令进行解析判断,一种实施例的情况下,当判断到该查询指令来自于a软件内置业务模块a1时,则a软件通过软件内部的模块架构,确定该查询指令对应的待调用业务模块,并将该待调用业务模块的信息反馈给a软件内置的业务模块1;另一种实施例的情况下,当判断到该查询指令来自于非软件内置的业务模块时,例如,b软件的业务模块b1发出来的查询指令,则通过获取所述查询指令对应的引用信息,如图2所示,本技术实施例提供的基于查询指令获取对应的引用信息的方法流程示意图,首先基于所述查询指令获取a软件对应的待调用业务模块;在通过服务注册中心查询该待调用业务模块,若服务注册中心存在对应于该待调用业务模块的注册信息,则将保存在该服务注册中心的对应于该待调用业务模块的引用信息输出给b软件的业务模块b1,当业务模块接收到待调用业务模块的引用信息后,执行相应的处理操作,例如读取待调用业务模块的相关信息;通过待调用业务模块获取其他业务模块的相关信息等。60.在本技术的一种可实现的实施方式中,所述待调用业务模块除了软件内置业务模块外,例如,软件中内置的会议模块,视频模块等,还可以是办公软件的系统模块,例如通讯模块,设置模块等。61.如图3所示,为本技术实施例提供的根据所述引用信息调用所述待调用业务模块执行相应的操作的方法流程示意图,包括:62.基于所述引用信息确定待调用业务模块的虚拟接口;63.所述业务模块通过所述虚拟接口向所述待调用业务模块发送处理指令;64.所述待调用业务模块根据所述处理指令反馈对应的结果至所述业务模块。65.在本技术的一个实施例中,当b软件的业务模块b1获取到a软件的待调用业务模块的引用信息后,基于保存在服务注册中心的hashtable表获取待调用业务模块的虚拟接口,通过该虚拟接口向a软件的待调用业务模块发送处理指令,例如获取该待调用业务模块的相关信息等,该待调用业务模块根据接收到的处理指令,获取对应于该处理指令的信息,并将该信息反馈给b软件的业务模块b1,例如a软件的视频会议业务模块,在接收到处理指令时,提取当前a软件的视频会议的会议状态,比如,处于会议中,会议预约信息等,将该信息反馈至b软件的业务模块b1,b软件的业务模块b1在接收到该反馈之后,对b软件的业务模块b1的ui界面进行更新,例如输出提示信息,以提示a软件处于会议状态,或者a软件的会议预约列表信息。66.如图4所示,为本技术实施例提供的根据所述引用信息调用所述待调用业务模块执行相应的操作的方法流程示意图,包括:67.基于所述引用信息确定待调用业务模块的虚拟接口;68.所述业务模块通过所述虚拟接口向所述待调用业务模块发送处理指令;69.所述待调用业务模块对接收的处理指令进行分析处理;70.若所述处理指令为调用软件系统模块,则将所述处理指令转发至所述软件系统模块;和/或,71.若所述处理指令为调用软件内置业务模块,则将所述处理指令转发至对应的软件内置业务模块;72.所述待调用业务模块接收所述软件系统模块和/或所述软件内置业务模块的反馈信息;73.所述待调用业务模块对所述反馈信息进行处理生成满足所述业务模块的信息并输出值所述业务模块。74.所述待调用业务模块根据所述处理指令反馈对应的结果至所述业务模块。75.在本技术的一个实施例中,当b软件的业务模块b1获取到a软件的待调用业务模块的引用信息后,基于保存在服务注册中心的hashtable表获取待调用业务模块的虚拟接口,通过该虚拟接口向a软件的待调用业务模块发送处理指令,例如获取该待调用业务模块的相关信息等,该待调用业务模块对接收到的处理指令进行分析处理,当判断该处理指令为调用a软件的系统模块,查询系统的设置信息、通讯录信息等,则a软件将该处理指令转发至系统模块,系统模块根据接收到的处理指令,获取对应的信息,例如a软件的设置信息,a软件的通讯录,a软件用户的用户状态等,反馈给a软件的待调用业务模块;当判断该处理指令为调用a软件内置的其他业务模块a2时,则待调用业务模块通过业务模块a2的虚拟接口将该处理指令发送给业务模块a2,业务模块a2根据处理指令获取相应的信息,在通过虚拟接口反馈给待调用业务模块;一种实施例的情况下,当待调用业务模块在接收到针对处理指令的反馈结果时,按照预设的规则对该反馈结果进行处理,以使该反馈结果满足b软件的业务模块b1的需求,例如,对a软件的状态信息进行处理,至需要近一个月的登录状态信息;在例如对该反馈结果进行处理,只需要待完成的任务信息等,将处理之后的反馈结果发送给业务模块b1。在本技术的一个实施例中,当业务模块b1接收到反馈信息之后,根据接收到的处理指令,对该结果进行在处理,例如,只显示近一个月登录状态中,迟到的登录状态信息;对临近期限的待处理任务进行重色标记等;在另一个较优的实施例中,当业务模块b1对待调用业务模块反馈结果进行处理,发现a软件存在违规数据传输的情况,则将警示信息直接通过短信、邮件等方式发送到相关人员的办公软件上,以提醒a软件存在违规操作。76.在本技术的一种可实现的实施方式中,所述接收业务模块的查询指令的步骤之前,还包括:当检测到启动办公软件系统时;将与该办公软相关的所述业务模块,例如a软件内置的业务模块、b软件内置的业务模块等注册到服务注册中心,将业务模块的user类与协议接口类组成一对映射关系,并保存在服务注册中心的hashtable表中,当接收到来自业务模块的查询指令时,通过服务注册中心的hashtable表查询待调用业务模块的引用进行相应的查询处理。77.本技术还提供了一种基于跨平台的业务通信装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于当执行所述存储器存储的计算机程序时,实现如上所述的基于跨平台的业务通信装置方法。78.本技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于跨平台的业务通信装置方法的步骤。79.本技术实施例还提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如上各种可能的实施方式中的方法。80.本技术实施例还提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。81.以上,仅为本技术的具体实施方式,上述场景仅是作为示例,并不构成对于本技术实施例提供的技术方案的应用场景的限定,本技术的技术方案还可应用于其他场景。任何熟悉本
    技术领域
    :的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术实施例提供的技术方案对于类似的技术问题,同样适用。82.在本技术中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本技术技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。当前第1页12当前第1页12
    技术特征:
    1.一种基于跨平台的业务模块通信方法,其特征在于,所述业务模块通信方法包括:接收业务模块的查询指令;获取所述查询指令对应的引用信息;所述业务模块根据所述引用信息调用待调用业务模块执行相应的操作。2.根据权利要求1所述的业务模块通信方法,其特征在于,所述业务模块,包括以下至少一种:软件内置业务模块;非软件内置业务模块。3.根据权利要求1所述的业务模块通信方法,其特征在于,所述待调用业务模块包括:软件内置业务模块;或,软件系统模块。4.根据权利要求1至3中任一项所述的业务模块通信方法,其特征在于,所述获取所述查询指令对应的引用信息的步骤,包括:基于所述查询指令获取对应的待调用业务模块;服务注册中心查询所述待调用业务模块;若所述服务注册中心存在所述待调用业务模块,则输出对应的引用信息。5.根据权利要求1至3中任一项所述的业务模块通信方法,其特征在于,所述业务模块根据所述引用信息调用所述待调用业务模块执行相应的操作的步骤,包括:基于所述引用信息确定待调用业务模块的虚拟接口;所述业务模块通过所述虚拟接口向所述待调用业务模块发送处理指令;所述待调用业务模块根据所述处理指令反馈对应的结果至所述业务模块。6.根据权利要求5所述的业务模块通信方法,其特征在于,所述待调用业务模块根据所述处理指令反馈对应的结果至所述业务模块的步骤之前,还包括:所述待调用业务模块对接收的处理指令进行分析处理;若所述处理指令为调用软件系统模块,则将所述处理指令转发至所述软件系统模块;和/或,若所述处理指令为调用软件内置业务模块,则将所述处理指令转发至对应的软件内置业务模块;所述待调用业务模块接收所述软件系统模块和/或所述软件内置业务模块的反馈信息;所述待调用业务模块对所述反馈信息进行处理生成满足所述业务模块的信息并输出值所述业务模块。7.根据权利要求5所述的业务模块通信方法,其特征在于,所述待调用业务模块根据所述处理指令反馈对应的结果至所述业务模块的步骤之后,还包括:所述业务模块按照预设规则对所述结果进行处理。8.根据权利要求7所述的业务模块通信方法,其特征在于,所述预设规则包括以下至少一种:所述业务模块根据所述结果更新对应的ui界面信息;所述业务模块根据接收的处理指令对所述结果进行处理;
    所述业务模块对所述结果进行输出。9.根据权利要求1至3中任一项所述的业务模块通信方法,其特征在于,所述接收业务模块的查询指令的步骤之前,还包括:启动软件系统;将所述业务模块和所述待调用业务模块注册到服务注册中心。10.一种基于跨平台的业务通信装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于当执行所述存储器存储的计算机程序时,实现如权利要求1至9中任一项所述的基于跨平台的业务通信装置方法。

    技术总结
    本申请公开了一种基于跨平台的业务模块通信方法,所述业务模块通信方法包括:接收业务模块的查询指令;获取所述查询指令对应的引用信息;所述业务模块根据所述引用信息调用所述待调用业务模块执行相应的操作。本申请还提供了一种基于跨平台的业务模块通信装置,通过采用本申请公开的方案,能够实现业务模块通过虚拟API直接与宿主APP的业务模块进行通信。业务模块调用宿主APP中的系统服务或其他业务模块时,既可以准确的知道API所需的参数信息又不用依赖对应的服务或模块,提供如Native API一样的体验,在服务注册管理这块,各业务服务通过HashTable保存引用,API调用时可以直接查到对应的业务服务没有性能和时间损耗,同时全面支持callback机制,满足服务的双向调用。满足服务的双向调用。满足服务的双向调用。


    技术研发人员:张国政 强琦
    受保护的技术使用者:杭州优行科技有限公司
    技术研发日:2022.02.14
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-15284.html

    最新回复(0)