CN115080274A - 业务处理方法、装置和***、以及接口映射*** - Google Patents

业务处理方法、装置和***、以及接口映射*** Download PDF

Info

Publication number
CN115080274A
CN115080274A CN202210800862.7A CN202210800862A CN115080274A CN 115080274 A CN115080274 A CN 115080274A CN 202210800862 A CN202210800862 A CN 202210800862A CN 115080274 A CN115080274 A CN 115080274A
Authority
CN
China
Prior art keywords
interface
service
target
request
name
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.)
Pending
Application number
CN202210800862.7A
Other languages
English (en)
Inventor
杨旭东
银涛
吴红光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Tuoxian Technology Co Ltd
Original Assignee
Beijing Jingdong Tuoxian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Tuoxian Technology Co Ltd filed Critical Beijing Jingdong Tuoxian Technology Co Ltd
Priority to CN202210800862.7A priority Critical patent/CN115080274A/zh
Publication of CN115080274A publication Critical patent/CN115080274A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了业务处理方法、装置和***、以及接口映射***,涉及计算机技术领域。该方法的一具体实施方式包括:根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。该实施方式能更灵活地支持接口的扩展,把可定制的内容交给具体的调用者,更大程度地避免接口的重复开发,便于代码维护,提高生产效率。

Description

业务处理方法、装置和***、以及接口映射***
技术领域
本发明涉及应用程序开发技术领域,尤其涉及一种业务处理方法、装置和***、以及接口映射***。
背景技术
对于一个大型***来说,同一个后端服务可以支持多个调用方调用,比如某后端服务同时支持企业业务APP、企业业务H5、企业健康APP、互联网医院,其中有一些业务很相似但又有区别。如果用硬编码实现这些业务逻辑,会使得代码冗长难以维护。
发明内容
有鉴于此,本发明实施例提供一种业务处理方法、装置和***、以及接口映射***,通过在目标虚拟机中加载了与接口全限定名对应的开放点逻辑实现类的情况下,根据请求参数执行目标虚拟机中的开放点逻辑实现类,能更灵活地支持接口的扩展,把可定制的内容交给具体的调用者,更大程度地避免接口的重复开发,便于代码维护,提高生产效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种业务处理方法,包括:
根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;
判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;
在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
可选地,在判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类之前,所述方法还包括:响应于接收到所述目标调用方基于所述开放点接口协议实现的开放点逻辑实现类,将所述开放点逻辑实现类加载到所述目标虚拟机中;其中,所述开放点接口协议为预先为所述接口设置的。
可选地,所述开放点接口协议包括调用方标识方法,以及以下至少之一:排序规则方法、回调接口方法、业务逻辑方法、扩展方法。
可选地,所述业务请求是通过如下步骤生成的:从所述目标调用方发出的调用请求中解析出所述目标调用方标识、方法名和版本号,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息,根据所述目标调用方标识和所述业务***接口信息生成的业务***发起业务请求。
根据本发明实施例的第二方面,提供一种业务处理装置,包括:
业务请求接收模块,根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;
业务逻辑判断模块,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;
业务逻辑执行模块,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
可选地,所述装置还包括逻辑定义模块,用于:响应于接收到所述目标调用方基于所述开放点接口协议实现的开放点逻辑实现类,将所述开放点逻辑实现类加载到所述目标虚拟机中;其中,所述开放点接口协议为预先为所述接口设置的。
可选地,所述开放点接口协议包括调用方标识方法,以及以下至少之一:排序规则方法、回调接口方法、业务逻辑方法、扩展方法。
根据本发明实施例的第三方面,提供一种接口映射***,包括:
调用请求接收模块,接收目标调用方发出的调用请求,从所述调用请求中解析出目标调用方标识、方法名和版本号;
接口信息确定模块,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息;
业务请求生成模块,根据所述目标调用方标识和所述业务***接口信息生成业务请求,向本发明实施例第二方面提供的业务处理装置发起所述业务请求。
可选地,本发明实施例的接口映射***还包括调用请求统计模块,用于以下至少之一:
在所述目标调用方标识存在于预设的第一调用方名单、或者不存在预设的第二调用方名单的情况下,拦截所述调用请求;
在所述目标调用方发出的调用请求的次数超过预设次数阈值的情况下,拦截所述调用请求,或者触发预设的报警策略;
对所述目标调用方进行鉴权,在鉴权不通过的情况下拦截所述调用请求。
根据本发明实施例的第四方面,提供一种业务处理***,包括业务处理装置和接口映射***;其中,
所述接口映射***接收目标调用方发出的调用请求,从所述调用请求中解析出目标调用方标识、方法名和版本号,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息,根据所述目标调用方标识和所述业务***接口信息生成业务请求,向所述业务处理装置发起所述业务请求;
所述业务处理装置根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果;
所述业务处理装置将所述响应结果返回至所述接口映射***,所述接口映射***将所述响应结果返回至所述目标调用方。
根据本发明实施例的第五方面,提供一种业务处理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
根据本发明实施例的第六方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过在目标虚拟机中加载了与接口全限定名对应的开放点逻辑实现类的情况下,根据请求参数执行目标虚拟机中的开放点逻辑实现类,能更灵活地支持接口的扩展,把可定制的内容交给具体的调用者,更大程度地避免接口的重复开发,便于代码维护,提高生产效率。本发明实施例通过采用接口映射***实现调用方与服务器之间的通信,能够实现版本映射逻辑与业务***解耦,减轻业务***的复杂度;一次部署多调用方受用,将版本映射***抽离出来可供多业务***、多调用方接入,提高了生产效率;不对原有业务产生影响,业务***可以无缝接入,保证了***的兼容性;支持动态水平扩展,保证了***了性能;接口版本可以灵活配置实时生效,增加了***的弹性;支持多协议调用,而且调用方无感知,提升了调用方的对接效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例的业务处理方法的主要流程的示意图;
图2是本发明可选实施例中实现开放点逻辑实现类的流程示意图;
图3是本发明可选实施例中开放点接口协议的示意图;
图4是本发明可选实施例中业务处理方法的架构示意图;
图5是本发明可选实施例中接口版本号映射表的示意图;
图6是本发明可选实施例中接口映射的主要流程的示意图;
图7是本发明可选实施例中业务处理方法的主要流程的示意图;
图8是本发明实施例的业务处理装置的主要模块的示意图;
图9是本发明实施例的接口映射***的主要模块的示意图;
图10是本发明实施例的业务处理***的主要组成的示意图;
图11是本发明实施例可以应用于其中的示例性***架构图;
图12是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
对于一个大型***来说,同一个后端服务可以支持多个调用方调用,其中有一些业务很相似但又有区别。比如某后端服务同时支持企业业务APP、企业业务H5、企业健康APP、互联网医院,其中有一些业务很相似但又有区别,如果用硬编码实现会使得代码冗长难以维护。本发明实施例通过开放点来支持业务相同而流程又有区别的场景。
示例性地,业务***提供家庭医生服务,查询一个用户已经签约的家庭医生(也称家医,一种个性化医疗保健服务)服务的流程如下:①通过用户ID获取当前用户的家医服务包(包括激活状态、服务包类型);②查询当前服务包的签约状态;③查询当前服务包的签约医生团队信息;④查询当前服务包的签约医生管家信息;⑤查询当前服务包最近的IM消息信息。其中:
企业业务APP业务流程是:步骤①②③④⑤,而且在第①步查询完成后需要进行过滤只保留已激活的服务包,未激活的服务包不展示,所以流程变成了①(过滤)②③④⑤;
企业健康APP的业务流程是:①②③(根据医生获取上次问诊的时间)④⑤,和企业业务的区别是企业健康APP不需要过滤激活状态,获取完医生信息需要新增问诊时间信息;
互联网医院的业务流程是:①(过滤互医类型的服务包)②③(根据医生信息获取对应的科室)④⑤,这个过程在原有服务多了一次过滤和一次附加信息的获取。
上述不同调用方对应的家医服务底层逻辑没有变化,如果能把服务包的过滤和医生数据附加信息作为两个开放点让对应的调用方自己去实现,家医只提供①②③④⑤的基础能力,这样不同的调用方可以找到自己的开放点逻辑实现类执行后返回定制的结果信息。
有鉴于此,根据本发明实施例的一个方面,提供了一种业务处理方法。
图1是本发明实施例的业务处理方法的主要流程的示意图,如图1所示,业务处理方法包括步骤S101、步骤S102和步骤S103。
步骤S101,根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数。
调用方是指拟调用业务***的***,调用方标识用于唯一表示一个调用方。调用方标识可以是***标识,例如应用程序(APP)标识,调用方标识也可以是***使用方的标识。实际应用过程中,也可以采用调用方标识和***标识作为调用方标识,例如***使用方D对应四个应用程序(对应的应用程序标识分别为APP1、APP2、APP3、APP4),则对应的调用方标识可以分别为D-APP1、D-APP2、D-APP3、D-APP4。
接口全限定名包括接口的类名和方法名。请求参数是指业务***的业务接口要求传入的数据,即业务接口的入参,业务接口返回的数据成为出参。示例性地,通过姓名查询员工的个人信息,入参是姓名,出参是个人信息。
步骤S102,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类。
开放点是支持调用方自己实现的功能点,调用方自己实现并发布后,配置该开放点的类名。本发明实施例中,利用SPI(Service Provider Interface,一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件)技术实现开放点。实际应用过程中,可以根据实际情况将一些接口定义为开放点。实现类是针对接口而言的,指实现接口中约定的内容。开放点逻辑实现类,是指能够实现调用方自定义逻辑的业务执行规则,或者相关程序代码。在判断与目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类之前,若该接口已经被定义为开放点、且目标调用方自己实现的开放点逻辑实现类已经上传至业务***,则本发明实施例可以直接加载对应的开放点逻辑实现类。在判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类之前,若该接口已经被定义为开放点,但目标调用方自己实现的开放点逻辑实现类未上传至业务***、或者目标调用方拟更新其开放点逻辑实现类,则可以响应于接收到目标调用方实现的开放点逻辑实现类,将所述开放点逻辑实现类加载到与所述目标虚拟机中。
图2是本发明可选实施例中实现开放点逻辑实现类的流程示意图。如图2所示,业务***是接口提供者,调用方是接口调用者。业务***将开放点定义好之后,调用方如果需要自定义开放点,则在定义好的开放点上实现开放点逻辑实现类,然后将实现好的开放点逻辑实现类的服务包推送至业务***的服务器中,服务调用的时候业务***通过接口全限定名和类加载器实现JVM(Java Virtual Machine,Java虚拟机)层面的class文件(全称为Java class文件,是可以运行在JVM的硬件平台和操作***上的二进制文件)的加载,进行自定义开发点逻辑执行。
示例性地,业务方providerA提供了一个接口interfaceA并定义好开放点,调用方consumerA拉取接口定义,在本地实现好开放点逻辑实现类(其中开放点逻辑实现类中有consumerA会调用方标识,以便和其他调用方consumer区分),然后打包成jar包,通过classloader加载到providerA的JVM中(实时生效)。consumerA发起interfaceA接口调用,providerA执行业务逻辑和开放点逻辑实现类,其中调用方标识使业务***在执行开放点逻辑实现类时能准确的执行consumerA自己实现的逻辑代码,至此整个调用链就完成了,中间不依赖任何中间件来保存数据和状态,使用起来十分方便,调用方只需要关注自己的业务逻辑实现,不用在任何平台增加额外的配置。
调用方实现开放点逻辑实现类时,需要配置调用方标识方法,以便根据调用方标识查找对应的开放点逻辑实现类。实际应用过程中,可以在接口上预先配置一层标准协议,调用方按这套协议实现自己的逻辑。图3是本发明可选实施例中开放点接口协议的示意图,图3中,调用方标识方法用于根据调用方标识查找对应的开放点逻辑实现类,业务逻辑方法用于定义各个业务的实现方法,调用方在实现开放点逻辑实现类的时候需要实现上述两种方法。开放点接口协议还可以包括以下至少之一:排序规则方法、回调接口方法、业务逻辑方法、扩展方法。排序规则方法用于定义各个业务的实现方法的实现顺序,回调接口方法用于定义方法执行完成后的回调方式,扩展方法用于定义其他方法(具体方法可以自定义,例如在多个业务实现方法之间增加数据筛选或过滤的方法)。排序规则方法、回调接口方法和扩展方法可以根据实际情况进行选择性设置。本实施例中设置一层标准协议,调用方根据该标准协议约束实现业务逻辑后实现了开放点的通用适配。按照这套协议规范实现开放点逻辑实现类后,可以做到开放点逻辑实现类的统一约束和统一管理,同时可以灵活的支持各种业务场景。
步骤S103,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
本发明实施例通过在目标虚拟机中加载了与接口全限定名对应的开放点逻辑实现类的情况下,根据请求参数执行目标虚拟机中的开放点逻辑实现类,能更灵活地支持接口的扩展,把可定制的内容交给具体的调用者,更大程度地避免接口的重复开发,便于代码维护,提高生产效率。
需要说明的是,本发明实施例中的业务请求,可以是调用方直接发送至业务***的,也可以是调用方通过其他***发送至业务***的。
APP迭代更新频率日益增多,APP每次发布新版本都需要经过审核,而且各大应用市场审核周期不一样,从发布到客户端更新下载需要几天的时间,而且随着国家安全法的普及无法做到强制用户升级,这样就会导致不同版本的应用程序共存,对于后端来说不同版本的APP调用的接口可能不一样,另外还有接口相同但逻辑不同的情况。若在代码里通过判断不同的版本走不同的业务逻辑,例如客户端对后端应用发起调用并携带版本号信息version=xxx、后端接口接收到客户端请求后在具体的接口上通过版本号判断走不同的业务逻辑,会导致代码后期难以维护,而且无法保证新增逻辑是对老逻辑的影响。
若项目里做一个***或切面,通过统一版本处理路由到不同的业务逻辑上,例如,客户端对后端应用发起调用,并携带版本号信息version=xxx,后端接口接收到客户端请求后,在具体的接口上调用统一逻辑处理器,逻辑处理器统一处理方法和对应的版本逻辑。这里是将每个接口中自己判断版本号抽离为统一的方法,减少了冗余代码,但是项目里做统一版本路由控制对项目侵入性较大,也无法做到灵活动态配置。
若通过RPC框架进行服务调用可以增加动态别名,不同的版本通过别名区分走到不同的应用容器上。例如,客户端对后端应用发起调用,不同的APP版本对应不同的网关接口,比如V1.0版本的APP对应网关接口为f1_prodA,V2.0版本的APP对应的网关接口为f1_prodB;不同的网关接口对应不同的应用,每次发布新版本需要配置一套新的网关接口,新版本调用对应的网关接口,老接口仍然保留。这种方式依赖客户端APP发起调用时要携带上别名,网关通过别名路由到不同的应用容器上。该方案较为简单粗暴,因为大部分公司都有网关,但该方案需要每次发布版本申请新的网关接口、部署新的应用实例,,每个别名对应一套应用容器,随着迭代版本的增加比较浪费容器资源,资源利用率较低,维护成本较高,而且每次上线新版本需要在网关上手动配置新的别名,可靠性不高。
基于此,在本发明一些实施例中,调用方与业务***之间通过接口映射***进行通信。具体地,接口映射***从所述目标调用方发出的调用请求中解析出所述目标调用方标识、方法名和版本号,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息,根据所述目标调用方标识和所述业务***接口信息生成的业务***发起业务请求。调用方只与接口映射***发生交互,接口映射***和业务***通信,将结果返回给调用方。调用方感知不到具体的业务***行为。
图4是本发明可选实施例中业务处理方法的架构示意图。在图4示出的实施例中,调用方为客户端,例如iOS客户端、Android客户端、Windows客户端等。接口映射***中设置接口明细(本实施例中指接口版本映射表interface-version-mapping)、本地缓存localCache、分布式缓存jimdb、数据库(例如sql数据库)、以及调用策略(例如jsf调用策略(jsfClient)、http调用策略(httpClient)等)。本发明实施例中的接口明细可以以接口版本号映射表的形式存储。图5是本发明可选实施例中接口版本号映射表的示意图。在图5示出的实施例中,type指定了具体的调用方式(比如jsf、http);request_path是具体的方法名或者路径;version是支持的版本号(支持区间、大于、小于、等于);fun_label是开放点标识用来识别当前接口支持的开放点,通过开放点标识***判断在哪个环节执行开放点逻辑实现类;class_path、alias、token是jsf泛化调用所需的必要信息。class_path是jsf泛化调用用到的接口全限定类名,用于指定接口所在的类(类名+方法名才能发起jsf泛化调用;alias是服务别名,用来指定具体的调用容器或环境,不同的alias对应不同的容器或环境;token是秘钥,一个alias(别名)对应一个秘钥,用于安全认证。本实施例中,调用请求中只需要携带具体的方法名和版本号,不需要携带class_path、alias、token等,接口映射***通过方法名和版本号可以查询到这些信息,然后对真实服务发起调用。
接口明细录入数据库后,接口映射器可以从数据库中查询接口明细。当然,接口明细录入数据库后,也可以同步至分布式缓存和本地缓存,接口映射器从分布式缓存或本地缓存中查询接口明细,以便提高后续的查询性能。
图6是本发明可选实施例中接口映射的主要流程的示意图,图7是本发明可选实施例中业务处理方法的主要流程的示意图。如图6和7所示,用户访问客户端(APP)后,APP获取到当前客户端的版本号,携带方法名(请求名称)、版本号以及当前调用方标识(调用方标识用来匹配执行哪个调用方实现的开放点逻辑实现类)。接口映射***根据当前方法和版本号,查询本地缓存是否存在对应的接口明细,若存在则直接获取,否则从分布式缓存中获取;若分布式缓存中不存在,则从数据库中获取。若本地缓存、分布式缓存、数据库都找不到对应的接口明细,则向客户端返回提示信息。接口明细指接口映射***发起业务请求所需的信息,及上述的数据库配置信息,包括接口类型type、请求路径request_path、类名class_path、别名alias、秘钥token等。版本映射器根据当前接口协议获取真实接口以及类型,根据请求类型找到对应的请求策略(请求客户端)。如果是http请求,接口映射***调用httpClient对业务***发起请求,如果是jsf请求则通过jsf泛化调用发起请求,同时这里支持扩展,比如需要webservice方式调用的话,只需要在策略工厂新增webservice调用工具类即可。接口映射***通过内置客户端发起具体业务请求。具体业务请求主要包含请求方式、请求参数、响应结果;比如当前的业务调用是获取通过用户pin(pin是指用户的唯一ID)获取用户信息,那么请求方式就是jsf,参数就是用户pin,响应结果就是用户头像、昵称、性别、账号。业务***执行方法开放点逻辑实现类,生成对应的响应结果后返回给接口映射***。接口映射***获取到业务请求的响应结果后返回给APP。
本发明实施例中,接口映射***不依赖于具体的业务***,所以支持动态水平扩展,可以适用各种不同量级的业务场景。由于对调用方提供统一的调用方式,而业务***具体的调用协议由接口映射***来处理,所以调用方不用关心具体业务的调用方式和协议,只需要关注具体的方法和出入参;接口映射***只发起业务请求,不做任何逻辑处理,所以对新老***都适用,对业务***也可以做到无感知。
本实施例统一了调用方的调用入口,也方便扩展一些数据统计功能,比如统计不同版本app的调用量,统计某个接口的调用量,甚至可以做一些定制化功能等。可选地,本发明实施例的接口映射***还可以用于以下至少之一:
在所述目标调用方标识存在于预设的第一调用方名单的情况下,拦截所述调用请求。示例性地,比如当检测到某个用户有过刷单行为,风险值较高(风险值是标识一个用户的风险程度体系),可以在版本映射***中的第一调用方名单中加入该用户ID,***访问该接口的时候会先校验第一调用方名单,如果该用户在第一调用方名单中,则直接返回兜底状态码,不进行具体接口调用,减轻了业务***的压力;
在所述目标调用方标识不存在预设的第二调用方名单的情况下,拦截所述调用请求。示例性地,实际应用过程中,如果业务请求对应的业务服务是一个特殊功能,只给固定的人员使用,比如全员的健康值排名只有企业某些人员可以查看,则把这些人员的用户ID配置到第二调用方名单中,访问该接口的时候会先校验第二调用方名单,如果该用户不在第二调用方名单中,则直接返回无权限提示,不进行具体接口调用,如果命中第二调用方名单则进行具体接口调用;
接口限流:在所述目标调用方发出的调用请求的次数超过预设次数阈值的情况下,拦截所述调用请求。示例性地,只允许该接口每秒访问1W次,超过后不发起具体业务调用或者触发预设的报警策略警,从而有效防止机器刷单行为;
接口报警:当接口发生异常或者超过调用次数后,可以触发预设的报警策略(发送邮件、***内部通知、即时通讯信息通知等);
接口鉴权:对所述目标调用方进行鉴权,在鉴权不通过的情况下拦截所述调用请求。示例性地,只有授权的调用方才可以对业务接口发起调用时,可以做一个统一鉴权机制,每次发起接口调用前,先看当前调用方是否通过鉴权,没有通过的话返回无权限。
本发明实施例通过采用接口映射***实现调用方与服务器之间的通信,能够实现版本映射逻辑与业务***解耦,减轻业务***的复杂度;一次部署多调用方受用,将版本映射***抽离出来可供多业务***、多调用方接入,提高了生产效率;不对原有业务产生影响,业务***可以无缝接入,保证了***的兼容性;支持动态水平扩展,保证了***了性能;接口版本可以灵活配置实时生效,增加了***的弹性;支持多协议调用,而且调用方无感知,提升了调用方的对接效率。
根据本发明实施例的第二方面,提供实现上述业务处理方法的装置。图8是本发明实施例的业务处理装置的主要模块的示意图,如图8所示,业务处理装置800包括:
业务请求接收模块801,根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;
业务逻辑判断模块802,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;
业务逻辑执行模块803,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
可选地,所述装置还包括逻辑定义模块,用于:响应于接收到所述目标调用方基于所述开放点接口协议实现的开放点逻辑实现类,将所述开放点逻辑实现类加载到所述目标虚拟机中;其中,所述开放点接口协议为预先为所述接口设置的。
可选地,所述开放点接口协议包括调用方标识方法,以及以下至少之一:排序规则方法、回调接口方法、业务逻辑方法、扩展方法。
根据本发明实施例的第三方面,提供一种接口映射***。图9是本发明实施例的接口映射***的主要模块的示意图,如图9所示,接口映射***900包括:
调用请求接收模块901,接收目标调用方发出的调用请求,从所述调用请求中解析出目标调用方标识、方法名和版本号;
接口信息确定模块902,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息;
业务请求生成模块903,根据所述目标调用方标识和所述业务***接口信息生成业务请求,向本发明实施例第二方面提供的业务处理装置发起所述业务请求。
可选地,本发明实施例的接口映射***还包括调用请求统计模块,用于以下至少之一:
在所述目标调用方标识存在于预设的第一调用方名单、或者不存在预设的第二调用方名单的情况下,拦截所述调用请求;
在所述目标调用方发出的调用请求的次数超过预设次数阈值的情况下,拦截所述调用请求,或者触发预设的报警策略;
对所述目标调用方进行鉴权,在鉴权不通过的情况下拦截所述调用请求。
根据本发明实施例的第四方面,提供一种业务处理***。图10是本发明实施例的业务处理***的主要组成的示意图,如图10所示,业务处理***1000包括业务处理装置800和接口映射***900;其中,
所述接口映射***900接收目标调用方发出的调用请求,从所述调用请求中解析出目标调用方标识、方法名和版本号,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息,根据所述目标调用方标识和所述业务***接口信息生成业务请求,向所述业务处理装置发起所述业务请求;
所述业务处理装置800根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果;
所述业务处理装置800将所述响应结果返回至所述接口映射***900,所述接口映射***900将所述响应结果返回至所述目标调用方。
根据本发明实施例的第五方面,提供一种业务处理的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
根据本发明实施例的第六方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
图11示出了可以应用本发明实施例的业务处理方法或业务处理装置的示例性***架构1100。
如图11所示,***架构1100可以包括终端设备1101、1102、1103,网络1104和服务器1105。网络1104用以在终端设备1101、1102、1103和服务器1105之间提供通信链路的介质。网络1104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1101、1102、1103通过网络1104与服务器1105交互,以接收或发送消息等。终端设备1101、1102、1103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1101、1102、1103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1105可以是提供各种服务的服务器,例如对用户利用终端设备1101、1102、1103所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的业务处理方法一般由服务器1105执行,相应地,业务处理装置一般设置于服务器1105中。此外,本实施例中终端设备1101、1102、1103还可以不直接与服务器1105通信,而是通过接口映射***与服务器1105通信。
应该理解,图11中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图12,其示出了适于用来实现本发明实施例的终端设备的计算机***1200的结构示意图。图12示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算机***1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有***1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括:业务请求接收模块、业务逻辑判断模块和业务逻辑执行模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,业务逻辑判断模块还可以被描述为“根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
根据本发明实施例的技术方案,通过在目标虚拟机中加载了与接口全限定名对应的开放点逻辑实现类的情况下,根据请求参数执行目标虚拟机中的开放点逻辑实现类,能更灵活地支持接口的扩展,把可定制的内容交给具体的调用者,更大程度地避免接口的重复开发,便于代码维护,提高生产效率。本发明实施例通过采用接口映射***实现调用方与服务器之间的通信,能够实现版本映射逻辑与业务***解耦,减轻业务***的复杂度;一次部署多调用方受用,将版本映射***抽离出来可供多业务***、多调用方接入,提高了生产效率;不对原有业务产生影响,业务***可以无缝接入,保证了***的兼容性;支持动态水平扩展,保证了***了性能;接口版本可以灵活配置实时生效,增加了***的弹性;支持多协议调用,而且调用方无感知,提升了调用方的对接效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种业务处理方法,其特征在于,包括:
根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;
判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;
在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
2.如权利要求1所述的方法,其特征在于,在判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类之前,所述方法还包括:
响应于接收到所述目标调用方基于开放点接口协议实现的开放点逻辑实现类,将所述开放点逻辑实现类加载到所述目标虚拟机中;其中,所述开放点接口协议为预先为所述接口设置的。
3.如权利要求2所述的方法,其特征在于,所述开放点接口协议包括调用方标识方法,以及以下至少之一:排序规则方法、回调接口方法、业务逻辑方法、扩展方法。
4.如权利要求1所述的方法,其特征在于,所述业务请求是通过如下步骤生成的:从所述目标调用方发出的调用请求中解析出所述目标调用方标识、方法名和版本号,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息,根据所述目标调用方标识和所述业务***接口信息生成的业务***发起业务请求。
5.一种业务处理装置,其特征在于,包括:
业务请求接收模块,根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数;
业务逻辑判断模块,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类;
业务逻辑执行模块,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果。
6.一种接口映射***,其特征在于,包括:
调用请求接收模块,接收目标调用方发出的调用请求,从所述调用请求中解析出目标调用方标识、方法名和版本号;
接口信息确定模块,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息;
业务请求生成模块,根据所述目标调用方标识和所述业务***接口信息生成业务请求,向权利要求1-5任一所述的业务处理装置发起所述业务请求。
7.如权利要求6所述的接口映射***,其特征在于,还包括调用请求统计模块,用于以下至少之一:
在所述目标调用方标识存在于预设的第一调用方名单、或者不存在预设的第二调用方名单的情况下,拦截所述调用请求;
在所述目标调用方发出的调用请求的次数超过预设次数阈值的情况下,拦截所述调用请求,或者触发预设的报警策略;
对所述目标调用方进行鉴权,在鉴权不通过的情况下拦截所述调用请求。
8.一种业务处理***,其特征在于,包括:业务处理装置和接口映射***;其中,
所述接口映射***接收目标调用方发出的调用请求,从所述调用请求中解析出目标调用方标识、方法名和版本号,根据预先录入的接口明细确定与所述方法名和所述版本号对应的业务***接口信息,根据所述目标调用方标识和所述业务***接口信息生成业务请求,向所述业务处理装置发起所述业务请求;
所述业务处理装置根据接收到的业务请求确定目标调用方标识、接口全限定名和请求参数,判断与所述目标调用方标识对应的目标虚拟机中是否加载了与所述接口全限定名对应的开放点逻辑实现类,在所述目标虚拟机中加载了与所述接口全限定名对应的开放点逻辑实现类的情况下,根据所述请求参数执行所述目标虚拟机中的所述开放点逻辑实现类,生成与所述业务请求对应的响应结果;
所述业务处理装置将所述响应结果返回至所述接口映射***,所述接口映射***将所述响应结果返回至所述目标调用方。
9.一种业务处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN202210800862.7A 2022-07-08 2022-07-08 业务处理方法、装置和***、以及接口映射*** Pending CN115080274A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210800862.7A CN115080274A (zh) 2022-07-08 2022-07-08 业务处理方法、装置和***、以及接口映射***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210800862.7A CN115080274A (zh) 2022-07-08 2022-07-08 业务处理方法、装置和***、以及接口映射***

Publications (1)

Publication Number Publication Date
CN115080274A true CN115080274A (zh) 2022-09-20

Family

ID=83258641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210800862.7A Pending CN115080274A (zh) 2022-07-08 2022-07-08 业务处理方法、装置和***、以及接口映射***

Country Status (1)

Country Link
CN (1) CN115080274A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115686888A (zh) * 2022-12-30 2023-02-03 浙江城云数字科技有限公司 一种基于规则的处置行为流程编排方法、装置及应用

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115686888A (zh) * 2022-12-30 2023-02-03 浙江城云数字科技有限公司 一种基于规则的处置行为流程编排方法、装置及应用

Similar Documents

Publication Publication Date Title
CN110535831B (zh) 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质
JP6619949B2 (ja) オンプレミスとクラウドプラットフォーム間のハイブリッドアプリケーション動作
CN111045833B (zh) 接口调用的方法和装置
US10033790B2 (en) Method for a connector providing transactional interoperability to multiple messaging providers to multiple application servers using the same implementation
CN110795315A (zh) 监控业务的方法和装置
CN111427701A (zh) 一种工作流引擎***和业务处理方法
CN111460129A (zh) 标识生成的方法、装置、电子设备和存储介质
CN110795741B (zh) 对数据进行安全性处理的方法和装置
WO2023011274A1 (zh) 一种通讯协议转换方法、设备、***及网关设备
CN112202744B (zh) 一种多***数据通信方法和装置
CN108667660B (zh) 路由管理和业务路由的方法和装置及路由***
CN111767157A (zh) 基于服务网格的请求处理方法和装置
EP1872256B1 (en) System and method of waste management
CN115080274A (zh) 业务处理方法、装置和***、以及接口映射***
US20190075018A1 (en) Managing a generation and delivery of digital identity documents
CN111190664A (zh) 一种生成页面的方法和***
CN112953719B (zh) 一种令牌认证方法和装置
CN111814084A (zh) 数据访问管理的方法、装置和***
CN113778499A (zh) 发布服务的方法、装置、设备和计算机可读介质
CN116244682A (zh) 数据库的访问方法、装置、设备以及存储介质
CN112905273A (zh) 一种服务调用方法和装置
CN104980329B (zh) 通讯录管理方法及装置、移动代理服务器
CN111984616A (zh) 一种更新共享文件的方法、装置和***
CN113765983A (zh) 一种站点服务的部署方法和装置
CN113761566A (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