CN111935135A - 一种基于cmsp的amqp协议代理方法 - Google Patents

一种基于cmsp的amqp协议代理方法 Download PDF

Info

Publication number
CN111935135A
CN111935135A CN202010786972.3A CN202010786972A CN111935135A CN 111935135 A CN111935135 A CN 111935135A CN 202010786972 A CN202010786972 A CN 202010786972A CN 111935135 A CN111935135 A CN 111935135A
Authority
CN
China
Prior art keywords
amqp
cmsp
data
server
client
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.)
Granted
Application number
CN202010786972.3A
Other languages
English (en)
Other versions
CN111935135B (zh
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202010786972.3A priority Critical patent/CN111935135B/zh
Publication of CN111935135A publication Critical patent/CN111935135A/zh
Application granted granted Critical
Publication of CN111935135B publication Critical patent/CN111935135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种基于CMSP的AMQP协议代理方法,涉及数据代理技术领域;利用CMSP‑AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;以及接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。

Description

一种基于CMSP的AMQP协议代理方法
技术领域
本发明公开一种代理方法,涉及数据代理技术领域,具体地说是一种基于CMSP的AMQP协议代理方法。
背景技术
用户在使用CMSP服务端与AMQP客户端进行交互时,如AMQP客户端向CMSP服务端发送数据供第三方系统使用,容易因数据中包含AMQP协议内容,不能直接被使用,同样AMQP客户端从CMSP服务端获取第三方系统的数据,因数据中没有包含AMQP协议内容以及AMQP客户端不能识别不符合AMQP协议规范的数据,AMQP客户端也不能直接使用获取的数据,因此CMSP服务端与AMQP客户端的数据交互给用户使用带来不便以及额外的工作量。
发明内容
本发明针对现有技术的问题,提供一种基于CMSP的AMQP协议代理方法,有效的提高了AMQP客户端与CMSP服务端之间交互的便利性,具有广阔的应用前景。
本发明提出的具体方案是:
一种基于CMSP的AMQP协议代理方法,利用CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;
以及利用CMSP-AMQP代理服务端接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
所述的一种基于CMSP的AMQP协议代理方法中利用CMSP-AMQP代理服务端通过引用AMQP协议的消息库及CMSP的客户端库定义相应的类,利用相应的类分别接收AMQP客户端发送数据的请求、连接CMSP服务端以及将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送给CMSP服务端。
所述的一种基于CMSP的AMQP协议代理方法中利用CMSP-AMQP代理服务端通过引用AMQP协议的消息库及CMSP的客户端库定义相应的类,利用相应的类分别接收AMQP客户端获取数据的请求、连接CMSP服务端以及将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
所述的一种基于CMSP的AMQP协议代理方法中利用CMSP-AMQP代理服务端将AMQP协议内容的数据解析成普通数据过程:
判断AMQP客户端发送过来的数据的数据类型,
根据数据类型转换为对应的数据对象,
根据数据对象获取原始数据,将原始数据转换为发送给CMSP服务端的普通数据。
所述的一种基于CMSP的AMQP协议代理方法中利用CMSP-AMQP代理服务端将数据包装成符合AMQP协议规范的数据包的过程:
从CMSP服务端获取原始数据,
根据AMQP客户端需要获取的数据类型把原始数据包装成带有AMQP协议内容的数据。
一种基于CMSP的AMQP协议代理系统,包括代理模块,
代理模块利用CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;
以及利用CMSP-AMQP代理服务端接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
一种基于CMSP的AMQP协议代理装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于CMSP的AMQP协议代理方法。
一种CMSP-AMQP代理服务端,所述CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端,
以及接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
本发明的有益之处是:
本发明提供一种基于CMSP的AMQP协议代理方法,实现CMSP-AMQP代理把AMQP客户端发送来的带有AMQP协议内容的数据解析成普通数据并发送到CMSP服务端,以及把从CMSP服务端拿到的普通数据按AMQP协议规范包装成带有AMQP协议内容的数据,供AMQP客户端消费使用;同时利用本发明方法时无需考虑对数据进行AMQP协议解析与包装就能与CMSP服务端进行交互,有效的提高了AMQP客户端与CMSP服务端之间交互的便利性,减少用户工作量。
附图说明
图1是本发明CMSP-AMQP代理服务端应用示意图;
图2是本发明方法将AMQP协议内容的数据解析成普通数据流程示意图;
图3是本发明方法将数据包装成符合AMQP协议规范的数据包的流程示意图。
具体实施方式
浪潮云消息服务平台(简称CMSP),是云和大数据时代的一种高性能消息中间件,以云服务和集群方式对外提供高性能和高可靠的消息队列服务,支撑大数据采集、传输、汇聚、交换和存储,大数据实时处理和微服务处理架构。
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种基于CMSP的AMQP协议代理方法,利用CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;
以及利用CMSP-AMQP代理服务端接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
利用本发明方法时无需考虑对数据进行AMQP协议解析与包装就能与CMSP服务端进行交互,有效的提高了AMQP客户端与CMSP服务端之间交互的便利性,减少用户工作量。
在本发明的一个实施例中,说明了利用CMSP-AMQP代理服务端通过引用AMQP协议的消息库及CMSP的客户端库定义相应的类,利用相应的类分别接收AMQP客户端发送数据的请求、连接CMSP服务端以及将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送给CMSP服务端,
例如利用AMQP 1.0协议的开源消息库Apache Qpid Proton-J以及CMSP客户端库,定义继承Apache Qpid Proton-J库的BaseHandler类的子类,用来加载配置信息、启动监听服务端口、实现数据按AMQP协议规范进行解析与包装以及对CMSP服务端访问。
在上述实施例中,可具体应用BaseHandler类的子类中定义main(String[]arg)方法,加载CMSP连接信息以及CMSP-AMQP代理服务的监听端口,并启动CMSP-AMQP代理服务用以监听客户端收发消息请求,并在定义的BaseHandler类的子类中重写父类的onLinkRemoteOpen(Event event)方法,用以处理CMSP-AMQP代理服务端收到AMQP客户端连接请求时与远程CMSP服务端建立连接,具体实现如下:根据main方法加载的CMSP连接信息调用CMSP客户端库中CmspClient类的CmspClient(String ip,int port,StringuserName,String passWord,String topic,int cloud)方法建立CmspClient对象,然后调用CmspClient对象的connect()方法完成CMSP-AMQP代理服务端与CMSP服务端之间的连接并缓存此CmspClient对象。本实施例说明了CMSP-AMQP代理服务端通过引用AMQP协议的消息库及CMSP的客户端库定义相应的类进行连接的过程。
同时,本发明中另一实施例利用定义的BaseHandler类的子类中重写父类的onDelivery(Event evt)方法,用以处理CMSP-AMQP代理服务端收到客户端存储数据请求,把带有AMQP协议内容的数据解析成普通数据并发送给CMSP服务端,具体实现:
先判断客户端发送过来的数据类型,如果是Apache Qpid Proton-J库中AmqpValue类型数据,把数据对象强转成AmqpValue对象,然后调用AmqpValue对象getValue方法获取原始数据;如果是Apache Qpid Proton-J库中Data类型的数据,把数据对象强转成Data对象,然后调用Data对象的getVaule方法获取原始数据。由于原始数据类型可能是二进制或字符串,以及我向CMSP发送的是字节数组,所以在发送原始数据前需根据不同的类型用不同的方式把原始数据统一转成字节数组。在数据解析完成后,接着我们调用缓存的CmspClient对象的putMq方法来向CMSP服务端发送数据。
在前述实施例基础上,同时利用AMQP 1.0协议的开源消息库Apache QpidProton-J以及CMSP客户端库,定义继承Apache Qpid Proton-J库的BaseHandler类的子类,用来加载配置信息、启动监听服务端口、实现数据按AMQP协议规范将CMSP服务端的数据进行包装以及对CMSP服务端访问。
在前述实施例基础上,本发明方法利用BaseHandler类的子类中重写父类的onLinkFlow(Event evt)方法,用以处理CMSP-AMQP代理服务端收到客户端获取数据请求时,从CMSP服务端获取原始数据,然后把原始数据包装成带有AMQP协议内容的数据并发送给客户端,具体实现如下:
首先调用缓存的CmspClient对象的getMq方法获取原始数据,然后根据客户端要获取的数据类型来用不同的方法把原始数据包装成带有AMQP协议内容的数据,如果客户端要获取的数据类型是字符串,调用Java的String(byte[]bytes)方法把原始数据字节数组转成字符串,然后调用Apache Qpid Proton-J库中AmqpValue类的AmqpValue(Objectvalue)方法把字符串转成AmqpValue对象;如果客户端要获取的数据类型是字节数组,调用Apache Qpid Proton-J库中Binary类的Binary(final byte[]data)方法把原始数据字节数组转成二进制流,然后调用AmqpValue(Object value)或Data(Binary value)方法把二进制流转成相应的对象。
通过本发明方法无需考虑对数据进行AMQP协议解析与包装就能与CMSP服务端进行交互,有效的提高了AMQP客户端与CMSP服务端之间交互的便利性。
本发明还提供一种基于CMSP的AMQP协议代理系统,包括代理模块,
代理模块利用CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;
以及利用CMSP-AMQP代理服务端接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
本发明系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
以及本发明还提供一种CMSP-AMQP代理服务端,所述CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端,
以及接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
本发明CMSP-AMQP代理服务端与AMQP客户端及CMSP服务端之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同时本发明还提供一种基于CMSP的AMQP协议代理装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于CMSP的AMQP协议代理方法。
本发明装置内的处理器内执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

Claims (8)

1.一种基于CMSP的AMQP协议代理方法,其特征是利用CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;
以及利用CMSP-AMQP代理服务端接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
2.根据权利要求1所述的一种基于CMSP的AMQP协议代理方法,其特征是利用CMSP-AMQP代理服务端通过引用AMQP协议的消息库及CMSP的客户端库定义相应的类,利用相应的类分别接收AMQP客户端发送数据的请求、连接CMSP服务端以及将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送给CMSP服务端。
3.根据权利要求1或2所述的一种基于CMSP的AMQP协议代理方法,其特征是利用CMSP-AMQP代理服务端通过引用AMQP协议的消息库及CMSP的客户端库定义相应的类,利用相应的类分别接收AMQP客户端获取数据的请求、连接CMSP服务端以及将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
4.根据权利要求3所述的一种基于CMSP的AMQP协议代理方法,其特征是利用CMSP-AMQP代理服务端将AMQP协议内容的数据解析成普通数据过程:
判断AMQP客户端发送过来的数据的数据类型,
根据数据类型转换为对应的数据对象,
根据数据对象获取原始数据,将原始数据转换为发送给CMSP服务端的普通数据。
5.根据权利要求4所述的一种基于CMSP的AMQP协议代理方法,其特征是利用CMSP-AMQP代理服务端将数据包装成符合AMQP协议规范的数据包的过程:
从CMSP服务端获取原始数据,
根据AMQP客户端需要获取的数据类型把原始数据包装成带有AMQP协议内容的数据。
6.一种基于CMSP的AMQP协议代理系统,其特征是包括代理模块,
代理模块利用CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端;
以及利用CMSP-AMQP代理服务端接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
7.一种基于CMSP的AMQP协议代理装置,其特征是包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至5中任一所述的一种基于CMSP的AMQP协议代理方法。
8.一种CMSP-AMQP代理服务端,其特征是所述CMSP-AMQP代理服务端接收AMQP客户端发送数据的请求并连接CMSP服务端,同时将AMQP客户端发送的AMQP协议内容的数据解析成普通数据并发送到CMSP服务端,
以及接收AMQP客户端获取数据的请求并连接CMSP服务端,将CMSP服务端的数据包装成符合AMQP协议规范的数据包提供给AMQP客户端使用。
CN202010786972.3A 2020-08-07 2020-08-07 一种基于cmsp的amqp协议代理方法 Active CN111935135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010786972.3A CN111935135B (zh) 2020-08-07 2020-08-07 一种基于cmsp的amqp协议代理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010786972.3A CN111935135B (zh) 2020-08-07 2020-08-07 一种基于cmsp的amqp协议代理方法

Publications (2)

Publication Number Publication Date
CN111935135A true CN111935135A (zh) 2020-11-13
CN111935135B CN111935135B (zh) 2022-04-08

Family

ID=73306923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010786972.3A Active CN111935135B (zh) 2020-08-07 2020-08-07 一种基于cmsp的amqp协议代理方法

Country Status (1)

Country Link
CN (1) CN111935135B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104380277A (zh) * 2012-06-29 2015-02-25 英特尔公司 用于管理云调度环境中的服务器硬件资源的方法、系统和设备
CN106506519A (zh) * 2016-11-21 2017-03-15 辽宁科技大学 WCF框架net.tcp协议跨平台通信的系统及方法
US10152246B1 (en) * 2016-03-28 2018-12-11 EMC IP Holding Company LLC Application aware AMQP durable messages backup and restore
US20190089799A1 (en) * 2017-09-18 2019-03-21 Rapyuta Robotics Co., Ltd Managing communication between cloud and heterogeneous devices across networks
CN109525661A (zh) * 2018-11-14 2019-03-26 北京奇艺世纪科技有限公司 数据传输方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104380277A (zh) * 2012-06-29 2015-02-25 英特尔公司 用于管理云调度环境中的服务器硬件资源的方法、系统和设备
US10152246B1 (en) * 2016-03-28 2018-12-11 EMC IP Holding Company LLC Application aware AMQP durable messages backup and restore
CN106506519A (zh) * 2016-11-21 2017-03-15 辽宁科技大学 WCF框架net.tcp协议跨平台通信的系统及方法
US20190089799A1 (en) * 2017-09-18 2019-03-21 Rapyuta Robotics Co., Ltd Managing communication between cloud and heterogeneous devices across networks
CN109525661A (zh) * 2018-11-14 2019-03-26 北京奇艺世纪科技有限公司 数据传输方法及装置

Also Published As

Publication number Publication date
CN111935135B (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
US10432704B2 (en) Translation of messages using sensor-specific and unified protocols
US8291486B2 (en) Gateway device having socket library for monitoring, communication method of gateway device having socket library for monitoring, and communication program of gateway device having socket library for monitoring
US9195520B2 (en) Event driven sendfile
US20040216127A1 (en) Method and apparatus for accelerating web services
CN101764843A (zh) 远程过程调用的处理方法、系统及客户端、服务器
CN110769009B (zh) 用户身份认证方法及系统
CN112532673B (zh) 消息发送方法及装置、计算机可读存储介质、电子设备
CN109257337B (zh) 物联网设备协议转换方法及基于该方法的灯杆运营平台
CN107040613B (zh) 一种报文传输方法及系统
US20020046304A1 (en) Dynamic class loading
CN114070833A (zh) 多协议服务兼容方法、系统、设备、介质和程序产品
CN113965628B (zh) 消息调度方法、服务器和存储介质
US20120066291A1 (en) Remote method invocation tunneling over hypertext transfer protocol
CN112689020A (zh) 一种消息传输方法、消息中间件、电子设备及存储介质
US20070121585A1 (en) Streaming file transfer apparatus, systems, and methods
US20060215571A1 (en) Querying for services using soap over UDP
US20030172110A1 (en) Methods and apparatus for invoking a document style server operation using an operation name in a SOAPAction header
CN111935135B (zh) 一种基于cmsp的amqp协议代理方法
CN110572394B (zh) 访问控制方法及装置
CN114915555B (zh) 网关驱动通信方法、装置、设备及存储介质
CN113973105B (zh) 一种简化服务总线上soap消息的系统及方法
US7908397B1 (en) Application server gateway technology
CN113992644A (zh) 一种基于无服务技术的物联网关系统及其数据处理方法
US8005923B2 (en) System and method of obfuscating queue management
CN107819831A (zh) 一种基于metaq及mns的通用消息系统

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