CN112905273A - 一种服务调用方法和装置 - Google Patents
一种服务调用方法和装置 Download PDFInfo
- Publication number
- CN112905273A CN112905273A CN202110334071.5A CN202110334071A CN112905273A CN 112905273 A CN112905273 A CN 112905273A CN 202110334071 A CN202110334071 A CN 202110334071A CN 112905273 A CN112905273 A CN 112905273A
- Authority
- CN
- China
- Prior art keywords
- interface
- service
- transaction
- new service
- old
- 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
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种服务调用方法和装置,涉及自动程序设计技术领域。该方法的一具体实施方式包括:根据调用请求携带的交易要素,在数据库中查询对应的索引信息;其中,交易要素包括在旧服务上定义的交易标识,索引信息包括新服务的服务标识;确定数据库中存在索引信息,根据交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口;其中,接口继承关系用于旧服务和新服务之间的接口转换;根据服务标识和新服务接口,调用对应的新服务。该方法通过在调用请求中携带旧服务的交易标识,并在确定需要调用新服务时,基于交易标识和接口继承关系确定新服务接口,进而实现新服务调用,无需重复开发,降低了开发工作量。
Description
技术领域
本发明涉及自动程序设计技术领域,尤其涉及一种服务调用方法和装置。
背景技术
在银行系统进行架构转型过程中,通常采用分批切换的方式进行升级。这种切换方式会存在融合架构状态下的交易,需要进行融合架构状态下的交易逻辑开发,特别体现在服务整合层调用下游原子服务时需要同时兼顾旧服务和新服务。其中,新、旧服务的功能相同,但采用的协议、规范等不同。应用开发人员在开发时,需要根据所调用的服务,通过不同的调用方式,开发不同的交易逻辑。
在实现本发明过程中,现有技术中至少存在如下问题:
现有技术为旧服务调用和新服务调用各自编写一套交易逻辑,增加了交易逻辑的复杂度,且存在大量重复开发的工作,增加了开发工作量;同时,由于现有技术在交易层面上做不同调用方式的差异处理,不可扩展。
发明内容
有鉴于此,本发明实施例提供一种服务调用方法和装置,该方法通过在调用请求中携带旧服务的交易标识,并在调用过程中确定需要调用新服务时,基于交易标识对应的旧服务接口和设定接口继承关系确定出新服务接口,进而实现新服务调用,使得开发人员无需关心底层的调用过程,简化了开发的交易逻辑,无需重复开发,降低了开发工作量。
为实现上述目的,根据本发明实施例的一个方面,提供了一种服务调用方法。
本发明实施例的一种服务调用方法,包括:根据调用请求携带的交易要素,在数据库中查询对应的索引信息;其中,所述交易要素包括在旧服务上定义的交易标识,所述索引信息包括新服务的服务标识,所述旧服务和所述新服务用于实现同一交易;确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口;其中,所述接口继承关系用于所述旧服务和所述新服务之间的接口转换;根据所述服务标识和所述新服务接口,调用对应的新服务。
可选地,所述方法还包括:确定所述数据库中不存在所述索引信息,根据所述旧服务接口,调用对应的旧服务。
可选地,所述方法还包括:配置呼出处理栈;其中,所述呼出处理栈包括用于实现所述新服务调用的内呼处理栈和用于实现所述旧服务调用的外呼处理栈。
可选地,配置所述内呼处理栈,包括:在所述内呼处理栈中添加报文序列化处理器;其中,所述报文序列化处理器用于将交易请求进行序列化处理。
可选地,配置所述外呼处理栈,包括:在所述外呼处理栈中添加报文转换处理器;其中,所述报文转换处理器用于将交易请求进行报文转换处理。
可选地,所述调用对应的新服务,包括:使用所述内呼处理栈的报文序列化处理器,将交易请求进行序列化处理,输出序列化结果。
可选地,所述调用对应的旧服务,包括:使用所述外呼处理栈的报文转换处理器,将交易请求进行报文转换处理,输出报文转换结果。
可选地,所述旧服务接口包括第一输入接口和第一输出接口,所述新服务接口包括第二输入接口和第二输出接口,所述接口继承关系包括第一继承关系和第二继承关系;所述方法还包括:建立所述第一输入接口和所述第二输入接口之间的第一继承关系;以及建立所述第一输出接口和所述第二输出接口之间的第二继承关系。
可选地,所述建立所述第一输入接口和所述第二输入接口之间的第一继承关系,包括:将所述第一输入接口作为所述第二输入接口的子类,建立所述第一继承关系;所述建立所述第一输出接口和所述第二输出接口之间的第二继承关系,包括:将所述第一输出接口作为所述第二输出接口的子类,建立所述第二继承关系。
可选地,所述根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口,包括:根据所述第一继承关系,将所述交易标识对应的第一输入接口转化为对应的父类,得到所述第二输入接口;根据所述第二继承关系,将所述交易标识对应的第一输出接口转化为对应的父类,得到所述第二输出接口。
可选地,所述新服务接口包括第二输入接口和第二输出接口;所述调用对应的新服务,包括:通过所述第二输入接口接收所述交易请求,通过所述第二输出接口输出所述序列化结果以及接收返回的第二响应信息。
可选地,所述旧服务接口包括第一输入接口和第一输出接口;所述调用对应的旧服务,包括通过所述第一输入接口接收所述交易请求,通过所述第一输出接口输出所述报文转换结果以及接收返回的第一响应信息。
可选地,所述方法还包括:根据所述交易标识,配置路由信息;其中,所述路由信息包括客户账号字段;所述根据调用请求携带的交易要素,所述在数据库中查询对应的索引信息,包括:根据调用请求携带的交易要素,获取对应的路由信息;根据所述路由信息的客户账号字段,在数据库中查询对应的索引信息;其中,所述索引信息以所述客户账号为键名,所述服务标识为键值。
为实现上述目的,根据本发明实施例的另一方面,提供了一种服务调用装置。
本发明实施例的一种服务调用装置,包括:信息查询模块,用于根据调用请求携带的交易要素,在数据库中查询对应的索引信息;其中,所述交易要素包括在旧服务上定义的交易标识,所述索引信息包括新服务的服务标识,所述旧服务和所述新服务用于实现同一交易;接口查找模块,用于确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口;其中,所述接口继承关系用于所述旧服务和所述新服务之间的接口转换;新服务调用模块,用于根据所述服务标识和所述新服务接口,调用对应的新服务。
可选地,所述装置还包括:旧服务调用模块,用于确定所述数据库中不存在所述索引信息,根据所述旧服务接口,调用对应的旧服务。
可选地,所述装置还包括:配置模块,用于配置呼出处理栈;其中,所述呼出处理栈包括用于实现所述新服务调用的内呼处理栈和用于实现所述旧服务调用的外呼处理栈。
可选地,所述配置模块,还用于在所述内呼处理栈中添加报文序列化处理器;其中,所述报文序列化处理器用于将交易请求进行序列化处理。
可选地,所述配置模块,还用于在所述外呼处理栈中添加报文转换处理器;其中,所述报文转换处理器用于将交易请求进行报文转换处理。
可选地,所述新服务调用模块,还用于使用所述内呼处理栈的报文序列化处理器,将交易请求进行序列化处理,输出序列化结果。
可选地,所述旧服务调用模块,还用于使用所述外呼处理栈的报文转换处理器,将交易请求进行报文转换处理,输出报文转换结果。
可选地,所述旧服务接口包括第一输入接口和第一输出接口,所述新服务接口包括第二输入接口和第二输出接口,所述接口继承关系包括第一继承关系和第二继承关系;所述装置还包括:建立模块,用于建立所述第一输入接口和所述第二输入接口之间的第一继承关系;以及建立所述第一输出接口和所述第二输出接口之间的第二继承关系。
可选地,所述建立模块,还用于将所述第一输入接口作为所述第二输入接口的子类,建立所述第一继承关系;将所述第一输出接口作为所述第二输出接口的子类,建立所述第二继承关系。
可选地,所述接口查找模块,还用于根据所述第一继承关系,将所述交易标识对应的第一输入接口转化为对应的父类,得到所述第二输入接口;根据所述第二继承关系,将所述交易标识对应的第一输出接口转化为对应的父类,得到所述第二输出接口。
可选地,所述新服务接口包括第二输入接口和第二输出接口;所述新服务调用模块,还用于通过所述第二输入接口接收所述交易请求,通过所述第二输出接口输出所述序列化结果以及接收返回的第二响应信息。
可选地,所述旧服务接口包括第一输入接口和第一输出接口;所述旧服务调用模块,还用于通过所述第一输入接口接收所述交易请求,通过所述第一输出接口输出所述报文转换结果以及接收返回的第一响应信息。
可选地,所述装置还包括:路由配置模块,用于根据所述交易标识,配置路由信息;其中,所述路由信息包括客户账号字段;所述信息查询模块,还用于根据调用请求携带的交易要素,获取对应的路由信息;根据所述路由信息的客户账号字段,在数据库中查询对应的索引信息;其中,所述索引信息以所述客户账号为键名,所述服务标识为键值。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种服务调用方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种服务调用方法。
上述发明中的一个实施例具有如下优点或有益效果:通过在调用请求中携带旧服务的交易标识,并在调用过程中确定需要调用新服务时,基于交易标识对应的旧服务接口和设定接口继承关系确定出新服务接口,进而实现新服务调用,使得服务调用过程屏蔽了新旧服务的差异,简化了开发的交易逻辑,无需重复开发,降低了开发工作量。
通过在调用请求中携带旧服务的交易标识,并在调用过程中确定需要调用旧服务时,直接根据交易标识对应的旧服务接口,调用旧服务,使得开发人员无需关心底层的调用过程,实现了不同服务的统一调用。
通过配置呼出处理栈,将新旧服务调用的差异对应封装在内呼处理栈和外呼处理栈,进一步简化了开发的交易逻辑,增加了服务调用的可扩展性,且对应用无侵入。通过在内呼处理栈和外呼处理栈分别添加各自需要处理器,实现了对交易请求的差异性处理。
通过将旧服务接口与新服务接口建立接口继承关系,保证后续可以基于旧服务接口查找新服务接口。在建立接口继承关系时,将旧服务接口作为子类,新服务接口作为父类,使得在判定需要调用新服务时,可以根据接口继承关系自动将子类向上转换为父类。通过为不同的交易标识,配置对应的路由信息,使得可以基于路由信息的路由字段查询索引信息,进而根据查询结果判定需要调用新服务还是旧服务。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一实施例的服务调用方法的主要步骤的示意图;
图2是根据本发明又一实施例的服务调用方法的主要流程示意图;
图3是根据本发明再一实施例的服务调用方法的主要流程示意图;
图4是根据本发明实施例的服务调用装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一实施例的服务调用方法的主要步骤的示意图。如图1所示,本发明实施例的服务调用方法,主要包括如下步骤:
步骤S101:根据调用请求携带的交易要素,在数据库中查询对应的索引信息。服务整合层需要调用下游服务时,会向下游服务发送调用请求,该调用请求中包括交易要素。实施例中,交易要素包括在旧服务上定义的交易标识,以使得本实施例可以统一采用旧服务的交易标识进行调用。
索引信息包括交易标识所对应的新服务的服务标识。实施例中,新服务和旧服务用于实现同一交易,旧服务可以是基于单体应用架构实现的主机服务,新服务可以是基于分布式微服务架构实现的微服务。其中,单体应用是指一个war包(一种打包格式)包含了项目的所有功能;微服务即将单体应用划分为小型的服务单元,微服务之间使用Htt p协议的应用程序接口(Application Program Interface,API)进行资源访问与操作。
实施例中,索引信息以交易标识为键名,新服务的服务标识为对应的键值。在数据库中查询索引信息时,可以基于交易标识,查询对应的键值,该键值即为索引信息。
步骤S102:确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口。预先建立旧服务接口和新服务接口之间的接口继承关系。如果数据库中存在索引信息,则说明需要调用新服务,此时可以根据交易标识对应的旧服务接口和接口继承关系,查找对应的新服务接口。
步骤S103:根据所述服务标识和所述新服务接口,调用对应的新服务。通常情况下,新服务存在多个,服务标识决定了具体调用的新服务。新服务接口决定了新服务与外界交互的接口。以新服务为微服务为例,调用新服务,即将交易请求进行序列化处理,输出序列化处理结果,并接收返回的响应信息。
该实施例提供了一种新的服务调用方式,该调用方式通过在调用请求中携带旧服务的交易标识,并在调用过程中确定需要调用新服务时,基于交易标识对应的旧服务接口和设定接口继承关系确定出新服务接口,进而实现新服务调用,使得服务调用过程屏蔽了新旧服务的差异。
图2是根据本发明又一实施例的服务调用方法的主要流程示意图。如图2所示,本发明实施例的服务调用方法,主要包括如下步骤:
步骤S201:根据调用请求携带的交易要素,在数据库中查询对应的索引信息。交易要素包括在旧服务上定义的交易标识。实施例中,为了保证可扩展性,预先配置路由信息,且不同交易标识,配置的路由信息的路由字段不同。
在数据库中查询索引信息时,需先根据交易标识,获取配置的路由信息,之后根据路由信息的路由字段,查询对应的索引信息。此时,索引信息的键名为指定路由字段,键值为新服务的服务标识。其中,路由字段可以是客户账号、客户编号等。
步骤S202:判断数据库中是否存在索引信息,如果数据库中存在索引信息,则执行步骤S203;如果数据库中不存在索引信息,则执行步骤S205。
步骤S203:根据交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口。该步骤的具体实现见步骤S102,此处不再赘述。
步骤S204:根据服务标识和新服务接口,调用对应的新服务,结束本流程。该步骤的具体实现见步骤S103,此处不再赘述。
步骤S205:根据旧服务接口,调用对应的旧服务。如果数据库中不存在索引信息,则说明需要调用旧服务。旧服务接口决定了旧服务与外界交互的接口。以旧服务为主机服务为例,调用旧服务,即将交易请求进行报文转换处理,输出报文转换结果,并接收返回的响应信息。
该实施例统一采用旧服务的交易标识进行调用,在判定需要调用新服务时,基于接口继承关系将旧服务接口转换为新服务接口,实现新服务调用;在判定需要调用旧服务时,直接根据旧服务接口,实现旧服务调用,使得开发人员无需关心底层的调用过程,实现了不同服务的统一调用。
图3是根据本发明再一实施例的服务调用方法的主要流程示意图。如图3所示,本发明实施例的服务调用方法,主要包括如下步骤:
步骤S301:建立旧服务接口和新服务接口之间的接口继承关系。为了实现不同服务的统一调用,需要建立旧服务接口和新服务接口之间的接口继承关系。其中,旧服务接口包括第一输入接口和第一输出接口,新服务接口包括第二输入接口和第二输出接口,接口继承关系包括第一继承关系和第二继承关系。
该步骤的具体实现为:建立第一输入接口和第二输入接口之间的第一继承关系;以及建立第一输出接口和第二输出接口之间的第二继承关系。在建立第一继承关系时,可以构建两个输入接口之间的对应关系,还可以构建两个输入接口之间的父子关系。同样的,建立第二继承关系时,可以构建两个输出接口之间的对应关系,还可以构建两个输出接口之间的父子关系。
实施例中,将第一输入接口作为第二输入接口的子类,建立第一继承关系(即两个输入接口之间的父子关系);将第一输出接口作为第二输出接口的子类,建立第二继承关系(即两个输出接口之间的父子关系)。
比如,对于借记卡转出交易,在旧服务定义的交易标识为A01925879,第一输入接口为A01925879InVo,第一输出接口为A01925879OutVo。相同功能的新服务的交易标识为M01925879,第二输入接口为A01925879InMo,第二输出接口为A01925879OutMo。为了实现接口转换,把A01925879InVo作为A01925879InMo的子类,建立第一继承关系;同时把A01925879OutVo作为A01925879OutMo的子类,建立第二继承关系。
步骤S302:配置路由信息和呼出处理栈。根据在旧服务定义的交易标识,配置对应的路由信息,且路由信息包括客户账号字段。
呼出处理栈为一个集合,该集合中包括调用服务之前需要做的各种动作。实施例中,呼出处理栈中包括内呼处理栈和外呼处理栈这两种类型的处理栈,分别用于实现内呼和外呼的功能。其中,内呼为系统内部之间的调用,外呼为系统与外部系统之间的调用。可以理解的是,呼出处理栈除包括内呼处理栈和外呼处理栈外,还可以根据调用模式,增加或者减少处理栈。
配置内呼处理栈,即在内呼处理栈中添加用于实现新服务调用的报文序列化处理器。配置外呼处理栈,即在外呼处理栈中添加用于实现旧服务调用的报文转换处理器。可以理解的是,处理栈中的处理器可以根据需要增加删除。比如内呼处理栈和外呼处理栈中还可以包括性能监控处理器、流量控制处理器等。
其中,报文序列化处理器,可以用于根据每个交易指定的序列化方式,通过对应的处理把内存中的对象转成二进制形式的报文。报文转换处理器,可以用于把内存中java格式的接口信息,通过对应的转化文件,转化成指定格式(比如XML格式)的报文串。
步骤S303:接收调用请求,根据调用请求携带的交易要素,在数据库中查询对应的索引信息。实施例中,交易要素包括在旧服务上定义的交易标识、索引类型和索引值。仍旧以借记卡转出交易为例,统一采用旧服务上定义的交易标识进行调用,此时调用请求携带的交易标识为A01925879。同时,输入和返回的报文接口使用第一输入接口A01925879InVo和第一输出接口A01925879OutVo。
步骤S304:判断数据库中是否存在索引信息,如果数据库中存在索引信息,则执行步骤S305;如果数据库中不存在索引信息,则执行步骤S307。
步骤S305:根据交易标识对应的旧服务接口和接口继承关系,查找对应的新服务接口。如果数据库中存在索引信息,说明需要调用新服务,此时需自动将作为子类的旧服务接口向上转化为父类。
具体地,根据第一继承关系,将交易标识对应的第一输入接口转化为对应的父类,得到第二输入接口;根据第二继承关系,将交易标识对应的第一输出接口转化为对应的父类,得到第二输出接口。
步骤S306:根据服务标识和新服务接口,调用对应的新服务,结束本流程。该步骤用于通过服务标识所对应的新服务的第二输入接口接收交易请求,之后使用内呼处理栈的报文序列化处理器,将交易请求进行序列化处理,之后通过第二输出接口输出序列化结果以及接收返回的第二响应信息。
步骤S307:根据旧服务接口,调用对应的旧服务。该步骤用于通过旧服务的第一输入接口接收交易请求,之后使用外呼处理栈的报文转换处理器,将交易请求进行报文转换处理,之后通过第一输出接口输出报文转换结果以及接收返回的第一响应信息。
本发明实施例的服务调用方法设计了一种统一的服务调用方式,使得应用开发人员可以不用关心底层的实际调用,实现了融合架构下不同服务的统一调用;同时通过把服务内部差异封装在不同的处理栈中,提供了可插拔式处理栈,并且每新增一种调用模式,可以通过增加处理栈的方式进行扩展,从而增加了服务调用的可扩展性。
图4是根据本发明实施例的服务调用装置的主要模块的示意图。如图4所示,本发明实施例的服务调用装置400,主要包括:
信息查询模块401,用于根据调用请求携带的交易要素,在数据库中查询对应的索引信息。服务整合层需要调用下游服务时,会向下游服务发送调用请求,该调用请求中包括交易要素。实施例中,交易要素包括在旧服务上定义的交易标识,以使得本实施例可以统一采用旧服务的交易标识进行调用。
索引信息包括交易标识所对应的新服务的服务标识。实施例中,新服务和旧服务用于实现同一交易,旧服务可以是基于单体应用架构实现的主机服务,新服务可以是基于分布式微服务架构实现的微服务。实施例中,索引信息以交易标识为键名,新服务的服务标识为对应的键值。在数据库中查询索引信息时,可以基于交易标识,查询对应的键值,该键值即为索引信息。
接口查找模块402,用于确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口。预先建立旧服务接口和新服务接口之间的接口继承关系。如果数据库中存在索引信息,则说明需要调用新服务,此时可以根据交易标识对应的旧服务接口和接口继承关系,查找对应的新服务接口。
新服务调用模块403,用于根据所述服务标识和所述新服务接口,调用对应的新服务。通常情况下,新服务存在多个,服务标识决定了具体调用的新服务。新服务接口决定了新服务与外界交互的接口。以新服务为微服务为例,调用新服务,即将交易请求进行序列化处理,输出序列化处理结果,并接收返回的响应信息。
另外,本发明实施例的服务调用装置400还可以包括:旧服务调用模块、配置模块、建立模块和路由配置模块(图4中未示出)。其中,旧服务调用模块,用于确定所述数据库中不存在所述索引信息,根据所述旧服务接口,调用对应的旧服务。配置模块,用于配置呼出处理栈;其中,所述呼出处理栈包括用于实现所述新服务调用的内呼处理栈和用于实现所述旧服务调用的外呼处理栈。
建立模块,用于建立所述第一输入接口和所述第二输入接口之间的第一继承关系;以及建立所述第一输出接口和所述第二输出接口之间的第二继承关系。路由配置模块,用于根据所述交易标识,配置路由信息;其中,所述路由信息包括客户账号字段。
从以上描述可以看出,通过在调用请求中携带旧服务的交易标识,并在调用过程中确定需要调用新服务时,基于交易标识对应的旧服务接口和设定接口继承关系确定出新服务接口,进而实现新服务调用,使得服务调用过程屏蔽了新旧服务的差异,简化了开发的交易逻辑,无需重复开发,降低了开发工作量。
图5示出了可以应用本发明实施例的服务调用方法或服务调用装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对管理员利用终端设备501、502、503发送的调用请求进行处理的后台管理服务器。后台管理服务器可以查询索引信息,查找新服务接口,调用新服务,并将处理结果反馈给终端设备。
需要说明的是,本申请实施例所提供的服务调用方法一般由服务器505执行,相应地,服务调用装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种服务调用方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种服务调用方法。
下面参考图6,其示出了适用于来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有计算机系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括信息查询模块、接口查找模块和新服务调用模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,信息查询模块还可以被描述为“根据调用请求携带的交易要素,在数据库中查询对应的索引信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据调用请求携带的交易要素,在数据库中查询对应的索引信息;其中,所述交易要素包括在旧服务上定义的交易标识,所述索引信息包括新服务的服务标识,所述旧服务和所述新服务用于实现同一交易;确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口;其中,所述接口继承关系用于所述旧服务和所述新服务之间的接口转换;根据所述服务标识和所述新服务接口,调用对应的新服务。
根据本发明实施例的技术方案,通过在调用请求中携带旧服务的交易标识,并在调用过程中确定需要调用新服务时,基于交易标识对应的旧服务接口和设定接口继承关系确定出新服务接口,进而实现新服务调用,使得服务调用过程屏蔽了新旧服务的差异,简化了开发的交易逻辑,无需重复开发,降低了开发工作量。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (17)
1.一种服务调用方法,其特征在于,包括:
根据调用请求携带的交易要素,在数据库中查询对应的索引信息;其中,所述交易要素包括在旧服务上定义的交易标识,所述索引信息包括新服务的服务标识,所述旧服务和所述新服务用于实现同一交易;
确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口;其中,所述接口继承关系用于所述旧服务和所述新服务之间的接口转换;
根据所述服务标识和所述新服务接口,调用对应的新服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述数据库中不存在所述索引信息,根据所述旧服务接口,调用对应的旧服务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
配置呼出处理栈;其中,所述呼出处理栈包括用于实现所述新服务调用的内呼处理栈和用于实现所述旧服务调用的外呼处理栈。
4.根据权利要求3所述的方法,其特征在于,配置所述内呼处理栈,包括:
在所述内呼处理栈中添加报文序列化处理器;其中,所述报文序列化处理器用于将交易请求进行序列化处理。
5.根据权利要求3所述的方法,其特征在于,配置所述外呼处理栈,包括:
在所述外呼处理栈中添加报文转换处理器;其中,所述报文转换处理器用于将交易请求进行报文转换处理。
6.根据权利要求4所述的方法,其特征在于,所述调用对应的新服务,包括:
使用所述内呼处理栈的报文序列化处理器,将交易请求进行序列化处理,输出序列化结果。
7.根据权利要求5所述的方法,其特征在于,所述调用对应的旧服务,包括:
使用所述外呼处理栈的报文转换处理器,将交易请求进行报文转换处理,输出报文转换结果。
8.根据权利要求1所述的方法,其特征在于,所述旧服务接口包括第一输入接口和第一输出接口,所述新服务接口包括第二输入接口和第二输出接口,所述接口继承关系包括第一继承关系和第二继承关系;所述方法还包括:
建立所述第一输入接口和所述第二输入接口之间的第一继承关系;以及
建立所述第一输出接口和所述第二输出接口之间的第二继承关系。
9.根据权利要求8所述的方法,其特征在于,所述建立所述第一输入接口和所述第二输入接口之间的第一继承关系,包括:
将所述第一输入接口作为所述第二输入接口的子类,建立所述第一继承关系;
所述建立所述第一输出接口和所述第二输出接口之间的第二继承关系,包括:
将所述第一输出接口作为所述第二输出接口的子类,建立所述第二继承关系。
10.根据权利要求9所述的方法,其特征在于,所述根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口,包括:
根据所述第一继承关系,将所述交易标识对应的第一输入接口转化为对应的父类,得到所述第二输入接口;
根据所述第二继承关系,将所述交易标识对应的第一输出接口转化为对应的父类,得到所述第二输出接口。
11.根据权利要求6所述的方法,其特征在于,所述新服务接口包括第二输入接口和第二输出接口;
所述调用对应的新服务,包括:
通过所述第二输入接口接收所述交易请求,通过所述第二输出接口输出所述序列化结果以及接收返回的第二响应信息。
12.根据权利要求7所述的方法,其特征在于,所述旧服务接口包括第一输入接口和第一输出接口;
所述调用对应的旧服务,包括:
通过所述第一输入接口接收所述交易请求,通过所述第一输出接口输出所述报文转换结果以及接收返回的第一响应信息。
13.根据权利要求1-12的任一项所述的方法,其特征在于,所述方法还包括:
根据所述交易标识,配置路由信息;其中,所述路由信息包括客户账号字段;
所述根据调用请求携带的交易要素,所述在数据库中查询对应的索引信息,包括:
根据调用请求携带的交易要素,获取对应的路由信息;
根据所述路由信息的客户账号字段,在数据库中查询对应的索引信息;其中,所述索引信息以所述客户账号为键名,所述服务标识为键值。
14.一种服务调用装置,其特征在于,包括:
信息查询模块,用于根据调用请求携带的交易要素,在数据库中查询对应的索引信息;其中,所述交易要素包括在旧服务上定义的交易标识,所述索引信息包括新服务的服务标识,所述旧服务和所述新服务用于实现同一交易;
接口查找模块,用于确定所述数据库中存在所述索引信息,根据所述交易标识对应的旧服务接口和设定的接口继承关系,查找对应的新服务接口;其中,所述接口继承关系用于所述旧服务和所述新服务之间的接口转换;
新服务调用模块,用于根据所述服务标识和所述新服务接口,调用对应的新服务。
15.根据权利要求14所述的方法,其特征在于,所述装置还包括:旧服务调用模块,用于
确定所述数据库中不存在所述索引信息,根据所述旧服务接口,调用对应的旧服务。
16.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的方法。
17.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-13中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334071.5A CN112905273A (zh) | 2021-03-29 | 2021-03-29 | 一种服务调用方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334071.5A CN112905273A (zh) | 2021-03-29 | 2021-03-29 | 一种服务调用方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905273A true CN112905273A (zh) | 2021-06-04 |
Family
ID=76109325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110334071.5A Pending CN112905273A (zh) | 2021-03-29 | 2021-03-29 | 一种服务调用方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905273A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661447A (zh) * | 2022-04-25 | 2022-06-24 | 中国工商银行股份有限公司 | 应用服务调用的链路管理方法、装置、设备及介质 |
CN114885030A (zh) * | 2022-06-02 | 2022-08-09 | 中国工商银行股份有限公司 | 服务调用方法、装置、设备、存储介质和程序产品 |
-
2021
- 2021-03-29 CN CN202110334071.5A patent/CN112905273A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661447A (zh) * | 2022-04-25 | 2022-06-24 | 中国工商银行股份有限公司 | 应用服务调用的链路管理方法、装置、设备及介质 |
CN114885030A (zh) * | 2022-06-02 | 2022-08-09 | 中国工商银行股份有限公司 | 服务调用方法、装置、设备、存储介质和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045833B (zh) | 接口调用的方法和装置 | |
CN110858202A (zh) | 数据库查询语句中where子句的生成方法和生成装置 | |
CN111427701A (zh) | 一种工作流引擎系统和业务处理方法 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN113821352A (zh) | 一种远程服务的调用方法和装置 | |
CN114285793A (zh) | 一种分发方法、装置、设备和存储介质 | |
CN110704200A (zh) | 转换调用接口的方法和装置 | |
CN113076153B (zh) | 一种接口调用方法和装置 | |
CN112905273A (zh) | 一种服务调用方法和装置 | |
CN112596931B (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
CN114500481A (zh) | 业务请求处理方法、系统和装置 | |
CN110109983B (zh) | 一种操作Redis数据库的方法和装置 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN113760482B (zh) | 一种任务处理方法、装置和系统 | |
CN111324395B (zh) | 调用方法、装置和计算机可读存储介质 | |
CN113760487B (zh) | 一种业务处理方法和装置 | |
CN113709171A (zh) | 一种用于跨组件状态通信的方法和装置 | |
CN114880020A (zh) | 软件开发工具包管理方法、相关装置及计算机程序产品 | |
CN114546683A (zh) | 业务处理方法、装置、电子设备和存储介质 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN113760262A (zh) | 任务处理方法、装置、计算机系统和计算机可读存储介质 | |
CN113448652A (zh) | 一种请求处理方法和装置 | |
CN115604333B (zh) | 基于dubbo的分布式大数据分析服务调度方法及系统 | |
CN116860353B (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN115037729B (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 |