CN107911442B - 接收响应接口交互方法、装置、计算机设备及存储介质 - Google Patents
接收响应接口交互方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN107911442B CN107911442B CN201711119130.7A CN201711119130A CN107911442B CN 107911442 B CN107911442 B CN 107911442B CN 201711119130 A CN201711119130 A CN 201711119130A CN 107911442 B CN107911442 B CN 107911442B
- Authority
- CN
- China
- Prior art keywords
- message
- gpp
- monitoring
- response message
- response
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种接收响应接口交互方法、装置、计算机设备及存储介质,该方法包括:采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。本发明可以通过灵活的接口交互机制,利用各种参数的配置来实现不同接口的处理。
Description
技术领域
本发明涉及接口交互技术领域,特别涉及一种接收响应接口交互方法、装置、计算机设备及存储介质。
背景技术
目前,银行各个系统之间的交互方式各异,不同的系统之间使用不同的接口协议、消息格式、交互响应模式等,一般地,各个系统之间通常是通过MQ,socket等机制进行消息之间的通信,然后针对每一个不同的接口,在具体程序中实现具体的消息发送、接收、处理等机制。由于每个接口的实现方式都嵌入到具体代码中,针对不同的接口很难总结出共同的模式,当要新建接口或者接口变更时,需要大量修改接口代码,通常通过硬代码实现各个接口处理流程。具体地,接口的协议、消息格式、处理机制等确定以后,就要针对接口的特性重写一套完整的接口处理机制,例如采用什么通信协议,采用同步还是异步方式,发送消息后报文处于什么状态,发送和接收到的消息是否需要存储等。由于需要开发人员重写编写代码,不仅效率低下,而且错误率高。
为了在有新的系统交互需求时,能够减少接口处理的代码改动量,以便加快开发速度,同时保证开发质量,需要一种灵活的接口交互机制,通过各种参数的配置来实现不同接口的处理。
发明内容
本发明实施例提供了一种接收响应接口交互方法、装置、计算机设备及存储介质,以通过灵活的接口交互机制,利用各种参数的配置来实现不同接口的处理。
为了实现上述目的,本发明实施例提供了一种接收响应接口交互方法,包括:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
一实施例中,所述采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制,包括:
将GPP消息监听程序的实例注入到GPP的消息监听容器实例,以实现监听及收报的处理过程。
一实施例中,所述GPP消息监听容器具有属性:连接工厂名称,队列名称,最大监听数及消息监听器;所述接收响应接口交互方法还包括:设置所述GPP消息监听容器的属性的参数值。
一实施例中,所述读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,包括:
读取接口类型表中消息通信方向表示收到消息,并且响应消息协议为MQ或者SOAP_JMS的所有记录;
针对每一条读取的记录分别建立GPP消息监听容器的实例及至少一MDP的实例。
一实施例中,设置所述GPP消息监听容器的实例的属性,包括:
将队列名称设置为所述接口类型表中的响应消息连接点字段的值;
将最大监听数设置为所述接口类型表中的消息队列监听数的值;
将消息监听器设置为所述GPP消息监听程序的实例。
一实施例中,针对每一条读取的记录建立MDP的实例时,递增MDP的实例的个数,直至所述MDP的实例的个数得到所述消息队列监听数的值。
一实施例中,对接收到的响应消息进行处理,包括:
读取所述接口类型表的服务程序名称字段及服务程序中方法/函数名称字段;
分别找到各自关联的服务及服务中对应的方法;
将响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;
调用处理类的消息解析方法解析响应消息,并调用消息处理方法处理响应消息。
为了实现上述目的,本发明实施例提供了一种接收响应接口交互装置,包括:
机制建立单元,用于采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
容器创建单元,用于创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始时化单元,用于初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
消息处理单元,用于接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
一实施例中,所述机制建立单元具体用于:将GPP消息监听程序的实例注入到GPP的消息监听容器实例,以实现监听及收报的处理过程。
一实施例中,所述GPP消息监听容器具有属性:连接工厂名称,队列名称,最大监听数及消息监听器;所述接收响应接口交互装置还包括:参数设置单元,用于设置所述GPP消息监听容器的属性的参数值。
一实施例中,所述初始时化单元包括:
记录读取模块,用于读取接口类型表中消息通信方向表示收到消息,并且响应消息协议为MQ或者SOAP_JMS的所有记录;
实例创建模块,用于针对每一条读取的记录分别建立GPP消息监听容器的实例及至少一MDP的实例。
一实施例中,所述参数设置单元还用于:
将队列名称设置为所述接口类型表中的响应消息连接点字段的值;
将最大监听数设置为所述接口类型表中的消息队列监听数的值;
将消息监听器设置为所述GPP消息监听程序的实例。
一实施例中,还包括:递增单元,用于针对每一条读取的记录建立MDP的实例时,递增MDP的实例的个数,直至所述MDP的实例的个数得到所述消息队列监听数的值。
一实施例中,所述消息处理单元包括:
字段读取模块,用于读取所述接口类型表的服务程序名称字段及服务程序中方法/函数名称字段;
查找模块,用于分别查找各自关联的服务及服务中对应的方法;
发送模块,用于将响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;
调用模块,用于调用处理类的消息解析方法解析响应消息,并调用消息处理方法处理响应消息。
为了实现上述目的,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
为了实现上述目的,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
本申请实施例中,可以灵活应对系统之间进行交互时对接口的新增或者修改,通过配置数据库的方式来确定对新增接口的处理形式,不需要编码人员重写接口处理流程,仅需继承已有的处理类,重写具体的对消息的处理方法,由此可以降低编码成本和错误率,提高了效率与系统稳定性。
当然实施本申请的任一产品或者方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的接收响应接口交互方法流程图;
图2为本发明实施例GPP接收响应接口的交互方法流程图;
图3为本发明实施例的接收响应接口交互装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的接收响应接口交互方法流程图,如图1所示,该接收响应接口交互方法包括:
S101:采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
S102:创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
S103:初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
S104:接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
作为本发明的一实施例,所述采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制,包括:
将GPP消息监听程序的实例注入到GPP的消息监听容器实例,以实现监听及收报的处理过程。
作为本发明的一实施例,所述GPP消息监听容器具有属性:连接工厂名称,队列名称,最大监听数及消息监听器;所述接收响应接口交互方法还包括:设置所述GPP消息监听容器的属性的参数值。
作为本发明的一实施例,所述读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,包括:
读取接口类型表中消息通信方向表示收到消息,并且响应消息协议为MQ或者SOAP_JMS的所有记录;
针对每一条读取的记录分别建立GPP消息监听容器的实例及至少一MDP的实例。
作为本发明的一实施例,设置所述GPP消息监听容器的实例的属性,包括:
将队列名称设置为所述接口类型表中的响应消息连接点字段的值;
将最大监听数设置为所述接口类型表中的消息队列监听数的值;
将消息监听器设置为所述GPP消息监听程序的实例。
作为本发明的一实施例,针对每一条读取的记录建立MDP的实例时,递增MDP的实例的个数,直至所述MDP的实例的个数得到所述消息队列监听数的值。
作为本发明的一实施例,对接收到的响应消息进行处理,包括:
读取所述接口类型表的服务程序名称字段及服务程序中方法/函数名称字段;
分别找到各自关联的服务及服务中对应的方法;
将响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;
调用处理类的消息解析方法解析响应消息,并调用消息处理方法处理响应消息。
本申请实施例中,可以灵活应对系统之间进行交互时对接口的新增或者修改,通过配置数据库的方式来确定对新增接口的处理形式,不需要编码人员重写接口处理流程,仅需继承已有的处理类,重写具体的对消息的处理方法,由此可以降低编码成本和错误率,提高了效率与系统稳定性。
下面结合具体地例子详细说明本发明。
全球统一支付平台(Global Unique Payment Platform GUPP)在处理各类业务时,需要与多种行内系统或者清算系统进行交互。这些系统交互的方式各异,为了屏蔽GUPP与不同系统之间的接口的差异性,GUPP的核心业务处理层(Global Payment PlatformGPP)通过数据库表来存储与不同的外围系统交互的接口信息,包括接口间定义的格式,使用的接口类型,传输协议等,通过一套统一灵活的接口处理流程,读取接口信息表中的记录来实现不同类型的接口交互。对于不同接口的业务层面处理流程的差异,则采用SOA架构,把所有的原子业务实现逻辑封装为单独的WEBSERVICE,供不同的业务流程使用。在统一的接口流程中,通过动态参数选择的方式,实现不同的业务数据进入不同的业务处理流程。同时,为了保证统一的接口流程的灵活性,采用了从数据库中读取动态参数的方式来决定功能的执行方式,例如是执行还是跳过等。
本发明实施例中,需要基于SOA及Spring整合JMS机制,下面分别说明。
一、SOA
SOA即面向服务的体系结构(Service-Oriented Architecture),它将应用程序的不同功能单元设计为各个服务,服务之间通过简单、精确定义的接口进行通讯,接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯。GPP通过将不同的服务名称以及相应的服务方法存储到数据库的特定字段中,并针对不同的接口,在数据库中获取该接口的对应的服务名称,从而实现差异化的业务处理流程。
二、Spring整合JMS机制
1.首先有一个MDP(消息驱动实体Message Driven POJO(Plain Ordinary JavaObject或Pure Old Java Object)),MDP是一个普通的Java类,不需要实现任何接口或有任何注解;
<bean id="testMdp"class="***.****.TestMdp"/>(TestMdp中有一个processMethod方法,具体实现接收到报文的处理实现)
2.MessageListenerAdapter作为MDP消息处理类的代理,在消息到来之后,通过它来找到真正处理响应消息的类:
将MDP注入到Spring的MessageListenerAdapter,通过MessageListenerAdapter的onMessage方法代理到MDP的业务处理方法
3.Spring提供了一个管理MDP的容器DefaultMessageListenerContainer,指定好连接工厂、队列、监听类后,由该容器的实例管理对消息的监听。
DefaultMessageListenerContainer用于监听消息,并把接收到的信息分发给MessageListenerAdapter进行处理。
每个消费者对应每个目的地都需要有对应的MessageListenerContainer。对于消息监听容器而言,除了要知道监听哪个目的地之外,还需要知道到哪里去监听,也就是说它还需要知道去监听哪个JMS服务器,这是通过在配置MessageConnectionFactory的时候往里面注入一个ConnectionFactory来实现的。所以我们在配置一个MessageListenerContainer的时候有三个属性必须指定,一个是表示从哪里监听的ConnectionFactory;一个是表示监听什么的Destination;一个是接收到消息以后进行消息处理的MessageListener。
容器类实例化的时候自动创建到队列的监听,有报文就调用MDP的处理方法;另外,容器依赖一个任务管理器来管理监听数量。
目前,在银行各个系统之间,通常是通过MQ,socket等机制进行消息之间的通信,然后针对每一个不同的接口,在具体程序中实现具体的消息发送、接收、处理等机制。针对不同的接口,很难总结出共同的模式,因而通常通过硬代码实现各个接口处理流程。基于此,本发明基于一套灵活的可配置的接口交互机制,通过插入数据库记录的方式来添加新的接口,不需重写接口处理流程,仅需重写具体的消息处理机制即可,这样可以大大减少代码量,同时减少错误率。
本发明一般需要首先建立下面两种类型的数据库表:
一、INTERFACE_TYPES(接口类型表)数据库表的设计
数据库表INTERFACE_TYPES(接口类型表)中存储接口相关信息,其中关键字段有:
1)REQUEST_DIRECTION(消息通信方向):表示通信方向,可选值为:
I–表示GPP系统接收到外围系统的消息;
O–表示从GPP系统发出消息。
2)MESSAGE_WAIT_STATUS(消息等待状态):表示对于异步的接口,当报文发送请求后等待响应时的状态。
3)INTERFACE_STATUS(接口状态):表示目前该接口是否可用,可选值为:
ACTIVE(可用)–表示该接口当前可用;
NOT_ACTIVE(不可用)–表示该接口当前不可用。
4)MESSAGE_STOP_STATUS(报文停止流转状态):表示当接口不可用时,同时NOT_ACTIVE_BEHAVIOUR为STOP时,报文所处的状态。
5)STOP_AFTER_CONN_EXCEPTION(接口链接尝试次数):表示尝试发送请求的次数,如果达到该次数还是失败的话则认为接口当前不可用。
6)INTERFACE_MONITOR_INDEX(接口监控索引):表示该接口在监控字段中的索引值。
7)REQUEST_PROTOCOL(请求消息协议):表示GPP向外发送请求时所使用的协议,例如MQ、web service等。
8)REQUEST_CONNECTIONS_POINT(请求消息连接点):表示GPP向外发送请求的连接点,例如MQ队列名,web service名称等。
9)REQUEST_FORMAT_TYPE(请求消息格式):表示GPP向外发送请求的消息格式,消息格式可以是GPP内部自定义的消息格式FT message,或者FT message的子集,或者是特殊格式。
10)REQUEST_STORE_IND(请求消息存储指示):表示是否需要存储GPP发送的请求消息,可选值为:
1–表示使用新插入一条记录的方式,将请求消息存储在数据库表MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)中;
2–表示使用更新最近的记录的方式,将请求消息存储在数据库表MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)中;
其他–表示不存储请求消息。
11)RESPONSE_PROTOCOL(响应消息协议):表示GPP接收响应时所使用的协议,例如MQ、web service等。
12)RESPONSE_CONNECTIONS_POINT(响应消息连接点):表示GPP读取响应的连接点,例如MQ队列名,web service名称等。
13)RESPONSE_FORMAT_TYPE(响应消息格式):表示GPP接收的响应的消息格式,消息格式可以是GPP内部自定义的消息格式FT message,或者FT message的子集,或者是特殊格式。
14)RESPONSE_STORE_IND(响应消息存储指示):表示是否需要存储GPP收到的响应消息,可选值为:
1–表示使用新插入一条记录的方式,将响应消息存储在数据库表MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)中;
2–表示使用更新最近的记录的方式,将响应消息存储在数据库表MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)中;
其他–表示不存储请求消息。
15)NOT_ACTIVE_BEHAVIOUR(接口不可用的处理模式):表示在接口不可用时的不同的处理行为,可选值为:
STOP(停止)–表示接口不可用时不创建请求报文,停止处理流程,报文状态设置为MESSAGE_STOP_STATUS(报文停止流转状态)字段设置的值,当接口可用时再重新创建和发送请求;
STORE(存储)–表示接口不可用时创建请求报文,存储在数据库表MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)中,同时继续报文处理流程,当接口可用时再重新读取创建的请求消息并发送;
SKIP(跳过)–表示接口不可用时跳过与该接口的交互,继续处理报文。
16)ASSOCIATED_SERVICE_NAME(关联服务名称):表示调用该接口的service名称。
17)NO_OF_LISTENERS(消息队列监听数):表示用来监听消息队列的线程数量,通过配置该参数,可以根据队列中消息的数量多少来灵活地配置处理线程,保证消息及时处理。
18)HANDLER_CLASS(处理程序):表示处理该接口消息的程序入口。
19)BUSINESS_OBJECT_CLASS(服务程序名称):表示服务的程序入口。
20)BUSINESS_OPERATION(服务程序中方法或函数名称):表示处理程序中的方法名。
二、MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)数据库表的设计
数据库表MESSAGE_EXTERNAL_INTERACTION(交互消息存储表)存储与外围系统交互的请求和响应消息,其中关键字段有:
1)INTERFACE_NAME(接口名称):表示接口名称;
2)RESPONSE_REQUEST_IND(存储消息方向指示):表示消息类型,可选值为:
Request(请求)–表示存储的是请求消息;
Response(响应)–表示存储的是响应消息。
3)INTERFACE_CONTENT(消息内容):表示存储的消息内容。
图2为本发明实施例GPP接收响应接口的交互方法流程图,如图2所示,该交互方法包括:
S201:采用Spring整合JMS机制建立GPP对响应消息的监听机制。由于FndtMessageListenerAdapter(GPP消息监听程序)继承了MessageListenerAdapter,重写了onMessage方法,实现了GPP中的MDP,具体实施时,只需要将FndtMessageListenerAdapter(GPP消息监听程序)的实例注入到监听容器实例,就可以实现监听及收报的处理过程;
S202:创建LenientDefaultMessageListenerContainer(GPP消息监听容器),LenientDefaultMessageListenerContainer继承了DefaultMessageListenerContainer,实现了监听容器功能,LenientDefaultMessageListenerContainer具有如下几个重要的属性:
A、connectionFactory:连接工厂名称
B、destinationName:队列名称
C、maxConcurrentConsumers:最大监听数,对应INTERFACE_TYPES表中监听数量字段NO_OF_LISTENERS(消息队列监听数);
D、messageListener:FndtMessageListenerAdapter(GPP消息监听程序)的实例,每创建一个容器,都会创建至少一个MDP实例。
针对INTERFACE_TYPES(接口类型表)表中需要接收报文的记录,GPP都会创建至少一个容器实例和一个MDP实例,MDP实例处理具体的业务,容器实例设置了连接队列的相关属性,并管理和调用MDP的实施(FndtMessageListenerAdapter)的业务方法。
S203:初始化GPP对响应消息的监听。
具体包括:读取所有INTERFACE_TYPES表中REQUEST_DIRECTION(消息通信方向)为I(表示收到消息),并且RESPONSE_PROTOCOL(响应消息协议)为MQ或者SOAP_JMS的记录。针对读取的每一条记录建立LenientDefaultMessageListenerContainer的实例和MDP的实例。
设置GPP消息监听容器的实例的属性:destinationName设置为INTERFACE_TYPES(接口类型表)表中的RESPONSE_CONNECTIONS_POINT(响应消息连接点)字段的值;maxConcurrentConsumers设置为INTERFACE_TYPES(接口类型表)表中的NO_OF_LISTENERS(消息队列监听数)的值,当响应消息过多单个MDP来不及处理的话,将递增MDP的个数,直到达到NO_OF_LISTENERS(消息队列监听数)的值;messageListener设置为FndtMessageListenerAdapter实例;
S204:采用MDP实例(FndtMessageListenerAdapter)调用onMessage(消息处理方法)对接收的响应消息进行处理,具体包括:
读取INTERFACE_TYPES(接口类型表)表的BUSINESS_OBJECT_CLASS(服务程序名称)字段和BUSINESS_OPERATION(服务程序中方法或函数名称)字段,分别找到关联的Service(服务)和Service(服务)中对应的方法,将响应消息发送到相应的service(服务)进行处理,该service(服务)会读取INTERFACE_TYPES(接口类型表)表的HANDLER_CLASS(处理程序)字段找到处理类,调用处理类的parseMsg(消息解析方法)方法来解析响应消息,以及handleIn(消息处理方法)方法处理响应消息。
本申请实施例中,可以灵活应对系统之间进行交互时对接口的新增或者修改,通过配置数据库的方式来确定对新增接口的处理形式,不需要编码人员重写接口处理流程,仅需继承已有的处理类,重写具体的对消息的处理方法,由此可以降低编码成本和错误率,提高了效率与系统稳定性。
基于与上述接收响应接口交互方法相同的申请构思,本申请提供一种接收响应接口交互装置,如下面实施例所述。由于该接收响应接口交互装置解决问题的原理与接收响应接口交互方法相似,因此该接收响应接口交互装置的实施可以参见接收响应接口交互方法的实施,重复之处不再赘述。
图3为本发明实施例的接收响应接口交互装置的结构框图,如图3所示,该接收响应接口交互装置包括:机制建立单元301,容器创建单元302,初始时化单元303及消息处理单元304。
机制建立单元301用于采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
容器创建单元302用于创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始时化单元303用于初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
消息处理单元304用于接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
一实施例中,所述机制建立单元301具体用于:将GPP消息监听程序的实例注入到GPP的消息监听容器实例,以实现监听及收报的处理过程。
一实施例中,所述GPP消息监听容器具有属性:连接工厂名称,队列名称,最大监听数及消息监听器;所述接收响应接口交互装置还包括:参数设置单元,用于设置所述GPP消息监听容器的属性的参数值。
一实施例中,所述初始时化单元303包括:
记录读取模块,用于读取接口类型表中消息通信方向表示收到消息,并且响应消息协议为MQ或者SOAP_JMS的所有记录;
实例创建模块,用于针对每一条读取的记录分别建立GPP消息监听容器的实例及至少一MDP的实例。
一实施例中,所述初始时化单元还包括:
将队列名称设置为所述接口类型表中的响应消息连接点字段的值;
将最大监听数设置为所述接口类型表中的消息队列监听数的值;
将消息监听器设置为所述GPP消息监听程序的实例。
一实施例中,针对每一条读取的记录建立MDP的实例时,递增MDP的实例的个数,直至所述MDP的实例的个数得到所述消息队列监听数的值。
一实施例中,对接收到的响应消息进行处理,包括:
读取所述接口类型表的服务程序名称字段及服务程序中方法/函数名称字段;
分别找到各自关联的服务及服务中对应的方法;
将响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;
调用处理类的消息解析方法解析响应消息,并调用消息处理方法处理响应消息。
为了实现上述目的,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
为了实现上述目的,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种接收响应接口交互方法,其特征在于,包括:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取数据库的接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;其中,所述记录与所述属性相对应;所述记录至少包括响应消息连接点、消息队列监听数及消息监听器;所述属性至少包括队列名称的值、最大监听数的值及GPP消息监听程序的实例;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理;其中,所述接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理包括:从所述数据库中读取所述接口类型表的服务程序名称字段及服务程序中的方法或函数名称字段;将所述响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;调用所述处理类的消息解析方法解析所述响应消息,并调用所述消息处理方法处理响应消息。
2.根据权利要求1所述的接收响应接口交互方法,其特征在于,所述采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制,包括:
将GPP消息监听程序的实例注入到GPP的消息监听容器实例,以实现监听及收报的处理过程。
3.根据权利要求2所述的接收响应接口交互方法,其特征在于,所述GPP消息监听容器具有属性:连接工厂名称,队列名称,最大监听数及消息监听器;所述接收响应接口交互方法还包括:设置所述GPP消息监听容器的属性的参数值。
4.根据权利要求3所述的接收响应接口交互方法,其特征在于,所述读取接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,包括:
读取接口类型表中消息通信方向表示收到消息,并且响应消息协议为MQ或者SOAP_JMS的所有记录;
针对每一条读取的记录分别建立GPP消息监听容器的实例及至少一MDP的实例。
5.根据权利要求4所述的接收响应接口交互方法,其特征在于,设置所述GPP消息监听容器的实例的属性,包括:
将队列名称设置为所述接口类型表中的响应消息连接点字段的值;
将最大监听数设置为所述接口类型表中的消息队列监听数的值;
将消息监听器设置为所述GPP消息监听程序的实例。
6.根据权利要求5所述的接收响应接口交互方法,其特征在于,针对每一条读取的记录建立MDP的实例时,递增MDP的实例的个数,直至所述MDP的实例的个数得到所述消息队列监听数的值。
7.根据权利要求5所述的接收响应接口交互方法,其特征在于,对接收到的响应消息进行处理,包括:
读取所述接口类型表的服务程序名称字段及服务程序中方法/函数名称字段;
分别找到各自关联的服务及服务中对应的方法;
将响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;
调用处理类的消息解析方法解析响应消息,并调用消息处理方法处理响应消息。
8.一种接收响应接口交互装置,其特征在于,包括:
机制建立单元,用于采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
容器创建单元,用于创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始时化单元,用于初始化GPP对响应消息的监听:读取数据库的接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;其中,所述记录与所述属性相对应;所述记录至少包括响应消息连接点、消息队列监听数及消息监听器;所述属性至少包括队列名称的值、最大监听数的值及GPP消息监听程序的实例;
消息处理单元,用于接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理;其中,所述接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理包括:从所述数据库中读取所述接口类型表的服务程序名称字段及服务程序中的方法或函数名称字段;将所述响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;调用所述处理类的消息解析方法解析所述响应消息,并调用所述消息处理方法处理响应消息。
9.根据权利要求8所述的接收响应接口交互装置,其特征在于,所述机制建立单元具体用于:将GPP消息监听程序的实例注入到GPP的消息监听容器实例,以实现监听及收报的处理过程。
10.根据权利要求9所述的接收响应接口交互装置,其特征在于,所述GPP消息监听容器具有属性:连接工厂名称,队列名称,最大监听数及消息监听器;所述接收响应接口交互装置还包括:参数设置单元,用于设置所述GPP消息监听容器的属性的参数值。
11.根据权利要求10所述的接收响应接口交互装置,其特征在于,所述初始时化单元包括:
记录读取模块,用于读取接口类型表中消息通信方向表示收到消息,并且响应消息协议为MQ或者SOAP_JMS的所有记录;
实例创建模块,用于针对每一条读取的记录分别建立GPP消息监听容器的实例及至少一MDP的实例。
12.根据权利要求11所述的接收响应接口交互装置,其特征在于,所述参数设置单元还用于:将队列名称设置为所述接口类型表中的响应消息连接点字段的值;将最大监听数设置为所述接口类型表中的消息队列监听数的值;将消息监听器设置为所述GPP消息监听程序的实例。
13.根据权利要求12所述的接收响应接口交互装置,其特征在于,还包括:递增单元,用于针对每一条读取的记录建立MDP的实例时,递增MDP的实例的个数,直至所述MDP的实例的个数得到所述消息队列监听数的值。
14.根据权利要求12所述的接收响应接口交互装置,其特征在于,所述消息处理单元包括:
字段读取模块,用于读取所述接口类型表的服务程序名称字段及服务程序中方法/函数名称字段;
查找模块,用于分别查找各自关联的服务及服务中对应的方法;
发送模块,用于将响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;
调用模块,用于调用处理类的消息解析方法解析响应消息,并调用消息处理方法处理响应消息。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取数据库的接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;其中,所述记录与所述属性相对应;所述记录至少包括响应消息连接点、消息队列监听数及消息监听器;所述属性至少包括队列名称的值、最大监听数的值及GPP消息监听程序的实例;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理;其中,所述接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理包括:从所述数据库中读取所述接口类型表的服务程序名称字段及服务程序中的方法或函数名称字段;将所述响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;调用所述处理类的消息解析方法解析所述响应消息,并调用所述消息处理方法处理响应消息。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
采用Spring整合JMS机制建立全球支付平台GPP对响应消息的监听机制;
创建GPP消息监听容器,该GPP消息监听容器继承了Spring中的消息监听容器的功能;
初始化GPP对响应消息的监听:读取数据库的接口类型表中的记录,针对每一条记录建立所述GPP消息监听容器的实例及消息驱动实体MDP的实例,并设置所述GPP消息监听容器的实例的属性;其中,所述记录与所述属性相对应;所述记录至少包括响应消息连接点、消息队列监听数及消息监听器;所述属性至少包括队列名称的值、最大监听数的值及GPP消息监听程序的实例;
接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理;其中,所述接收响应消息,并利用MDP的实例调用消息处理方法对接收到的响应消息进行处理包括:从所述数据库中读取所述接口类型表的服务程序名称字段及服务程序中的方法或函数名称字段;将所述响应消息发送到相应的服务进行处理,使该服务读取所述接口类型表的处理程序字段找到处理类;调用所述处理类的消息解析方法解析所述响应消息,并调用所述消息处理方法处理响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711119130.7A CN107911442B (zh) | 2017-11-14 | 2017-11-14 | 接收响应接口交互方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711119130.7A CN107911442B (zh) | 2017-11-14 | 2017-11-14 | 接收响应接口交互方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107911442A CN107911442A (zh) | 2018-04-13 |
CN107911442B true CN107911442B (zh) | 2021-03-23 |
Family
ID=61845388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711119130.7A Active CN107911442B (zh) | 2017-11-14 | 2017-11-14 | 接收响应接口交互方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107911442B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287643B (zh) * | 2020-09-01 | 2023-01-24 | 上海泛微软件有限公司 | 消息监听方法、装置、设备及计算机可读存储介质 |
CN114119019B (zh) * | 2021-11-26 | 2024-03-12 | 跨境银行间支付清算有限责任公司 | 基于跨境支付系统的多渠道接入方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975680A (zh) * | 2006-11-27 | 2007-06-06 | 浙江大学 | 基于Java的进程间异步通信的实现方法 |
CN101246578A (zh) * | 2008-03-24 | 2008-08-20 | 齐鲁证券有限公司 | 三方存管处理系统和方法 |
WO2010035216A1 (en) * | 2008-09-25 | 2010-04-01 | Nokia Corporation | Method and apparatus for reducing port contention |
CN104166908A (zh) * | 2014-04-30 | 2014-11-26 | 深圳光启创新技术有限公司 | 支付方法及支付系统 |
CN106506519A (zh) * | 2016-11-21 | 2017-03-15 | 辽宁科技大学 | WCF框架net.tcp协议跨平台通信的系统及方法 |
-
2017
- 2017-11-14 CN CN201711119130.7A patent/CN107911442B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975680A (zh) * | 2006-11-27 | 2007-06-06 | 浙江大学 | 基于Java的进程间异步通信的实现方法 |
CN101246578A (zh) * | 2008-03-24 | 2008-08-20 | 齐鲁证券有限公司 | 三方存管处理系统和方法 |
WO2010035216A1 (en) * | 2008-09-25 | 2010-04-01 | Nokia Corporation | Method and apparatus for reducing port contention |
CN104166908A (zh) * | 2014-04-30 | 2014-11-26 | 深圳光启创新技术有限公司 | 支付方法及支付系统 |
CN106506519A (zh) * | 2016-11-21 | 2017-03-15 | 辽宁科技大学 | WCF框架net.tcp协议跨平台通信的系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于ActiveMQ消息总线的第三方支付系统设计;蔡慧奕;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20160330;正文第4页4段至第5页第1段、第11页第3段至第7段、第32页第3段至46页第1段 * |
Also Published As
Publication number | Publication date |
---|---|
CN107911442A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908488B (zh) | 消息请求接口交互方法、装置、计算机设备及存储介质 | |
US9069665B2 (en) | System and method for definition, creation, management, transmission, and monitoring of errors in SOA environment | |
CN108595316B (zh) | 分布式应用的生命周期管理方法、管理器、设备和介质 | |
US20090125366A1 (en) | Method and system for dynamic adaptation of workflows | |
US11150896B2 (en) | Automated generation of service definitions for message queue application clients | |
US20080222617A1 (en) | Server side application integration framework | |
CN111258565B (zh) | 小程序的生成方法、系统、服务器及存储介质 | |
US8032588B2 (en) | System and method for hosting one or more versions of a service using a service proxy | |
US7814198B2 (en) | Model-driven, repository-based application monitoring system | |
CN111371898B (zh) | 一种消息监听方法、装置、设备及存储介质 | |
US20210081181A1 (en) | System and methods with reduced complexity in the integration of exposed information models with applications | |
CN110062041B (zh) | 一种基于区块链的iot设备变更的方法及装置 | |
CA2843284C (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
KR20140051513A (ko) | 데이터 분산 서비스 모니터링 장치 및 그 방법 | |
CN115328664B (zh) | 一种消息消费方法、装置、设备及介质 | |
CN107911442B (zh) | 接收响应接口交互方法、装置、计算机设备及存储介质 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
US20100162205A1 (en) | Apparatus and method for automatically generating capability statements for management interfaces | |
KR20140037605A (ko) | Cim 스키마 및 시스템 토폴로지 정보를 이용한 ami의 동적 운영 방법 | |
EP3721604A1 (en) | Automatic subscription management of computing services | |
US8739166B2 (en) | Progress-driven progress information in a service-oriented architecture | |
CN110262912B (zh) | 一种过程调用gRPC的调用方法及装置 | |
CN112416980A (zh) | 数据业务处理方法、装置及设备 | |
CN113741912A (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 |