CN115348330A - 编解码装置及编解码方法 - Google Patents
编解码装置及编解码方法 Download PDFInfo
- Publication number
- CN115348330A CN115348330A CN202210708236.5A CN202210708236A CN115348330A CN 115348330 A CN115348330 A CN 115348330A CN 202210708236 A CN202210708236 A CN 202210708236A CN 115348330 A CN115348330 A CN 115348330A
- Authority
- CN
- China
- Prior art keywords
- converter
- coding
- decoding
- service message
- cluster
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 5
- 238000005111 flow chemistry technique Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0226—Mapping or translating multiple network management protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本公开提供了一种编解码装置及编解码方法。编解码装置包括:通用编解码模块,用于获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文;基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议;确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文;调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
Description
技术领域
本公开涉及编码技术领域,特别涉及一种编解码装置及编解码方法。
背景技术
在舰船上的通信控制管理***中,网络管理设备与被管理节点(例如船用设备)通过业务私有协议进行通信。根据被管理节点的不同,业务私有协议的定制通常会存在差异。一方面,不同的业务私有协议可以采用不同的底层通信协议,比如用户数据报协议(UserDatagram Protocol,UDP)、DDS、网页服务(WebService)等。另一方面,不同的业务私有协议可以采用不同的信息编码方式,比如可扩展标记语言(eXtensible Markup Language,XML)、二进制流、JavaScript对象简谱(JavaScript Object Notation,JSON)等。
由于上述情况的存在,为了保证网络管理设备与不同被管理节点之间通信,网络管理设备需要针对不同的被管理节点分别设置编解码装置,造成网络管理设备***复杂。
发明内容
本公开实施例提供了一种编解码装置及编解码方法,能够实现针对不同被管理节点的报文编解码工作。所述技术方案如下:
本公开至少一实施例提供了一种编解码装置,所述编解码装置包括:
通用编解码模块,用于获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文;基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议;确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文;调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
可选地,所述通用编解码模块,用于分别从编码前转换器簇、编码器簇、编码后转换器簇和外部输出器簇中确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;
其中,所述编码前转换器簇包括以下至少一种编码前转换器:XML2Binary,用于将XML格式转换成二进制格式;XML2XML,用于将XML格式转换成XML格式;
所述编码器簇包括以下至少一种编码器:BinaryCodec,调用二进制编码器进行编码;XMLCodec,调用XML编码器进行编码;
所述编码后转换器簇包括以下至少一种编码后转换器:Binary2File,用于将二进制格式转换成文件格式;Binary2Udp,用于将二进制格式转换成UDP报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;XML2File,用于将XML格式转换成文件格式;XML2Udp,用于将XML格式转换成UDP报文格式;
所述外部输出器簇包括以下至少一种外部输出器:DdsOutput,用于采用DDS协议进行传输;UdpOutput,用于采用UDP协议进行传输;StringFileOutput,用于采用StringFile协议进行传输;BinaryFileOutput,用于采用BinaryFile协议进行传输;FtpOutput,用于采用FTP协议进行传输;DdsTimerOutput,用于采用定时DDS协议进行传输;UdpTimerOutput,用于采用定时UDP协议进行传输。
可选地,所述通用编解码模块还用于在对所述第一业务报文进行流处理之前,从所述第一业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
可选地,所述通用编解码模块,还用于接收所述被管理节点发送的第三业务报文;基于所述第三业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括解码方式;确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;调用确定出的所述解码前转换器、解码器和解码后转换器对所述第三业务报文进行流处理,得到第四业务报文;调用确定出的所述内部输出器将所述第四业务报文通过对应的接口输出。
可选地,所述通用编解码模块,用于分别从解码前转换器簇、解码器簇、解码后转换器簇和内部输出器簇中确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;
其中,所述解码前转换器簇包括以下至少一种解码前转换器:Bytes2Binary,用于将字节流转换成二进制格式;Bytes2XML,用于将字节流转换成XML格式;Passthrough,用于让数据直接通过;XML2XML,用于将XML格式转换成XML格式;
所述解码器簇包括以下至少一种解码器:BinaryCodec,调用二进制解码器进行解码;XMLCodec,调用XML解码器进行解码;
所述解码后转换器簇包括以下至少一种解码后转换器:Binary2Dds,用于将二进制格式转换成DDS报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;
所述内部输出器簇包括以下至少一种内部输出器:DdsOutput,用于采用DDS协议进行传输。
可选地,所述通用编解码模块还用于在对所述第三业务报文进行流处理之前,从所述第三业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
本公开至少一实施例提供了一种编解码方法,所述编解码方法包括:
获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文;
基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议;
确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;
调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文;
调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
可选地,所述方法还包括:
接收所述被管理节点发送的第三业务报文;
基于所述第三业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括解码方式;
确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;
调用确定出的所述解码前转换器、解码器和解码后转换器对所述第三业务报文进行流处理,得到第四业务报文;
调用确定出的所述内部输出器将所述第四业务报文通过对应的接口输出。
本公开至少一实施例提供了一种编解码装置,所述编解码装置包括处理器和存储器,所述存储器存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如前所述的编解码方法。
本公开至少一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如前任一项所述的编解码方法。
本公开实施例提供的技术方案带来的有益效果是:
在本公开实施例中,在编解码装置中设置通用编解码模块,通过针对被管理节点产生第一业务报文确定与所述被管理节点对应的配置信息,基于与所述被管理节点对应的配置信息选择编码所需的编码前转换器簇、编码器簇、编码后转换器簇,然后使用这些簇进行第一业务报文的流处理,实现编码,最后通过与所述被管理节点对应的配置信息选择的外部输出器簇选择接口进行输出,发送给被管理节点。在上述实现中,通过设置通用编解码模块,只要为不同编码需求的编码方案设置对应的簇即可,能够满足不同通信协议和编码方式的编码需求,无需针对不同的被管理节点分别设置编码模块,降低了***复杂度。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种通信控制管理***的结构示意图;
图2是相关技术中网络管理装置的结构示意图;
图3是本公开实施例提供的一种编解码装置的结构示意图;
图4是本公开实施例提供的编码过程示意图;
图5是本公开实施例提供的解码过程示意图;
图6是本公开至少一实施例提供的一种编解码方法的流程图;
图7是本公开实施例提供的一种编解码装置的结构框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
除非另作定义,此处使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开专利申请说明书以及权利要求书中使用的“第一”、“第二”、“第三”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同,并不排除其他元件或者物件。
图1是本公开实施例提供的一种通信控制管理***的结构示意图。参见图1,所述通信控制管理***包括:网络管理设备100和多个被管理节点200(例如船载设备)。
网络管理设备100分别和多个被管理节点200连接。
在相关技术中,网络管理设备100主要包括网络管理装置,网络管理装置的结构如图2所示,在该网络管理设备中,网络管理装置可以针对不同业务产生不同的业务报文,并且针对不同的被管理节点200,在编码时考虑对应的通信协议和编码方式进行编码,然后通过对应接口发送出去,从而可以形成如图2所示的关系图,也即每种业务针对不同的被管理节点200的接口发送。
相关技术中,网络管理设备需要针对不同的被管理节点分别设置编解码模块,也即每个接口对应一个编解码模块(图2中省略),造成***复杂。
在本公开实施例中,网络管理设备中设置一个编解码装置,负责对各个被管理节点的报文进行编解码。
图3是本公开实施例提供的一种编解码装置的结构示意图。参见图3,所述编解码装置包括:通用编解码模块101。
通用编解码模块101,用于获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文;基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议;确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文;调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
这里,网络管理设备100的网络管理装置可以针对不同的被管理节点产生不同的业务报文,而编解码装置针对不同的业务报文,都能够进行报文的编解码。
在本公开实施例中,在编解码装置中设置通用编解码模块,通过针对被管理节点产生第一业务报文确定与所述被管理节点对应的配置信息,基于与所述被管理节点对应的配置信息选择编码所需的编码前转换器簇、编码器簇、编码后转换器簇,然后使用这些簇进行第一业务报文的流处理,实现编码,最后通过与所述被管理节点对应的配置信息选择的外部输出器簇选择接口进行输出,发送给被管理节点。在上述实现中,通过设置通用编解码模块,只要为不同编码需求的编码方案设置对应的簇即可,能够满足不同通信协议和编码方式的编码需求,无需针对不同的被管理节点分别设置编码模块,降低了***复杂度。
在本公开实施例中,上述第一业务报文是编解码装置针对被管理节点产生的管理报文(不同业务对应不同类型管理),例如复位标识(ID)为123的设备。
通用编解码模块101在进行编码前,可以根据第一业务报文的主题确定一个标识,例如从报文中获取标识,或者根据报文中的相关字段计算出标识,或者根据报文的主题查找对应的标识等。如使用前述123作为标识,使用该标识确定与该被管理节点对应的配置信息。
在本公开实施例中,编解码装置中可以预先存储和各个被管理节点对应的配置信息。
在本公开实施例中,配置信息中的编码方式是指二进制、XML、JSON等信息编码方式。配置信息中的传输协议是指UDP、DDS等传输协议。当然,上述编码方式和传输协议仅是举例,本公开实施例提供的编解码装置可以使用的编码方式和传输协议不限于此。
在本公开实施例中,所述通用编解码模块,用于分别从编码前转换器簇、编码器簇、编码后转换器簇和外部输出器簇中确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器。
其中,编码前转换器和编码后转换器的作用都是进行编码格式转换。编码器的作用是进行各种格式的编码。外部输出器的作用是采用协议接口进行报文传输。
示例性地,所述编码前转换器簇包括以下至少一种编码前转换器:XML2Binary,用于将XML格式转换成二进制格式;XML2XML,用于将XML格式转换成XML格式;
所述编码器簇包括以下至少一种编码器:BinaryCodec,调用二进制编码器进行编码;XMLCodec,调用XML编码器进行编码;
所述编码后转换器簇包括以下至少一种编码后转换器:Binary2File,用于将二进制格式转换成文件格式;Binary2Udp,用于将二进制格式转换成UDP报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;XML2File,用于将XML格式转换成文件格式;XML2Udp,用于将XML格式转换成UDP报文格式;
所述外部输出器簇包括以下至少一种外部输出器:DdsOutput,用于采用DDS协议进行传输;UdpOutput,用于采用UDP协议进行传输;StringFileOutput,用于采用StringFile协议进行传输;BinaryFileOutput,用于采用BinaryFile协议进行传输;FtpOutput,用于采用FTP协议进行传输;DdsTimerOutput,用于采用定时DDS协议进行传输;UdpTimerOutput,用于采用定时UDP协议进行传输。
当然,上述各个簇仅为举例,本公开不限制于此。
本公开实施例提供的编码前转换器、编码器、编码后转换器和外部输出器,实现从标准输入类型到编码器的参数转换,以及从编码器输出到外部输出器的参数转换。
下面对从编码器输出到外部输出器的参数转换进行举例说明:
比如,编码器Codec有两种,一种是XmlCodec,一种是BinaryCodec,前者可以完成XML的编码,后者可以实现二进制的编码。对于XML编码器,其输出是一个结构体,其中包含了一个字符串,内容为XML/一个关键字,标识该编码规则的ID;对于Binary编码器,其输出是一个结构体,其中包含一个byte数组/一个关键字,标识该编码规则的ID。这两种编码器都能够通过UDP这种外部输出器进行输出。UDP外部输出器接收的参数输入是一个结构体,其内容包含一个数据包内容的byte数组,一个发送目标的IP。
当UDP外部输出器输出Binary编码器编码结果,也就是byte数组时,它可以直接将byte数组发送到特定的IP,其中目标IP是通过编码规则ID查询得到的。那么适配从Binary编码器到UDP外部输出器的转换工作,就是完成了这种参数转换。
而当UDP外部输出器输出XML编码器编码结果时,它需要将XML字符串先按照协议要求序列化成byte数组,再按照协议要求添加好包头,最后根据关键字查询输出的IP,将转换后的参数交由UDP外部输出器进行输出。
可选地,所述通用编解码模块101还用于在对所述第一业务报文进行流处理之前,从所述第一业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
图4是本公开实施例提供的编码过程示意图。如图4所示,通用编解码模块101采用编码预处理簇Formatter对第一业务报文进行预处理,得到标准数据结构,并存储在流处理组件flow的容器content中;流处理组件flow根据标准数据结构中的配置信息,从编码前转换器簇BEGear(BeforeEncodeGear)、编码器簇Codec、编码后转换器簇AEGear(AfterEncodeGear)和外部输出器簇Output中确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器。调用确定出的编码前转换器、编码器、编码后转换器和外部输出器进行信息内容的编码和输出。
除此之外,编解码装置中还配置有编码接口工具簇Util,编码接口工具簇Util包括编码所需的各种接口工具以及配置工具类,接口工具包括和通信协议相关的接口工具,例如DDS工具类DdsUtil、UDP工具类UdpUtil等。以DdsUtil为例,DdsUtil能够实现DDS消息的初始化、收消息、发消息等。配置工具类ConfigTool则能识别和读取配置信息,并提供给其他模块使用。比如设备配置工具类,可以读取被管理节点对应的配置信息。各工具簇对应存在有多种实现,以适配不同协议需求。编解码装置工作时,根据标识找到配置信息,从各工具簇中取出适合的实例,搭配编解码通用流处理组件Flow,实现统一流程的编解码。
在本公开实施例中,流处理组件flow在工作时,可以调用并实例化各个转换器和编码器,然后按照编码流程(例如依次进行编码前转换、编码、编码后转换)进行依次调用,实现编码。
在本公开实施例中,实例化可以采用Spring三方框架实现,通过读取XML配置文件,来实例化相应的类(转换器和编码器等)。
例如,网络管理装置发出“复位ID为123的设备”的第一业务报文。假设该设备在不同船上,那么使用的编码方式和通信协议不同。比如在A船上,报文编码方式是XML,使用DDS发送;在B船上,报文编码方式为二进制,通过UDP发送;在C船上,报文编码方式为XML,通过UDP发送。网络管理装置和通用编解码模块之间通过DDS进行通信。通用编解码模块中的通用接口中,配置文件(FormatterContext.xml)记录了第一业务报文的主题和标识(code的映射关系。Flow使用code在配置文件(ProtocolConfig.xml)中,查找编码方式和通信协议,确定对应的编码器和转换器。以A船为例,A船的ProtocolConfig.xml文件中,配置了该Code对应XML方式编码,然后使用DDS发送。flow调用XmlCodec来进行XML文件的编码,并将编码结果用DdsOutput发送出去。
可选地,所述通用编解码模块101,还用于接收所述被管理节点发送的第三业务报文;基于所述第三业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括解码方式;确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;调用确定出的所述解码前转换器、解码器和解码后转换器对所述第三业务报文进行流处理,得到第四业务报文;调用确定出的所述内部输出器将所述第四业务报文通过对应的接口输出,例如输出给网络管理装置。
在图3所示的网络管理装置中,网络管理装置和通用编解码模块101中的统一内部接口可以为DDS接口,实现两个装置间的报文传输。
在本公开实施例中,所述通用编解码模块,用于分别从解码前转换器簇、解码器簇、解码后转换器簇和内部输出器簇中确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器。
其中,解码前转换器和解码后转换器的作用都是进行解码格式转换。解码器的作用是进行各种格式的解码。内部输出器的作用是采用协议接口进行报文传输。
示例性地,所述解码前转换器簇包括以下至少一种解码前转换器:Bytes2Binary,用于将字节流转换成二进制格式;Bytes2XML,用于将字节流转换成XML格式;Passthrough,用于让数据直接通过;XML2XML,用于将XML格式转换成XML格式;
所述解码器簇包括以下至少一种解码器:BinaryCodec,调用二进制解码器进行解码;XMLCodec,调用XML解码器进行解码;
所述解码后转换器簇包括以下至少一种解码后转换器:Binary2Dds,用于将二进制格式转换成DDS报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;
所述内部输出器簇包括以下至少一种内部输出器:DdsOutput,用于采用DDS协议进行传输。
当然,上述各个簇仅为举例,本公开不限制于此。
可选地,所述通用编解码模块101还用于在对所述第三业务报文进行流处理之前,从所述第三业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
图5是本公开实施例提供的解码过程示意图。如图5所示,通用编解码模块101采用解码预处理簇Formatter对第三业务报文进行预处理,得到标准数据结构,并存储在流处理组件flow的容器content中;流处理组件flow根据标准数据结构中的配置信息,从解码前转换器簇BDGear(BeforeDecodeGear)、解码器簇Codec、解码后转换器簇ADGear(AfterDecodeGear)和内部输出器簇InnerOutput中确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器。调用确定出的解码前转换器、解码器、解码后转换器和内部输出器进行信息内容的编码和输出。
在解码过程中,解码预处理簇Formatter可以包括UdpFormatter和DdsFormatter。通用编解码模块的通信协议服务端接收到来自被管理节点上报的各种类型协议的报文,根据底层通信协议的不同,将其交给各种对应的解码预处理簇Formatter,例如来自Udp服务端的数据交给UdpFormatter,来自DDS服务端的数据交给DdsFormatter。
在解码过程中,可通过线程池的方式实现多线程,保证通用编解码模块能够利用CPU多核/多线程的能力实现并行工作。
例如,假设某解码类报文经由UDP方式传入,UDP工具类实例在收到消息后,直接将其交由UdpFormatter实例进行预处理。UdpFormatter实例通过对收到的报文的特定字段进行解析,识别出该报文的唯一标识为DEF,并从配置工具类实例中了解到DEF协议的协议内容类型为字节流,解码器类型为XML,解码结果以DDS的方式输出给网络管理装置。UdpFormatter实例将上述信息打包为标准结构,调用flow实例进行处理。flow实例接收到标准结构后,通过结构中记录的报文唯一标识找到解码的线程池,将标准结构交由该线程池进行处理。线程池通过读取报文的协议内容类型和解码器类型,取出字节流转XML解码前置转换器实例,完成解码前参数的转换。线程池通过读取解码器类型,取出XML编解码器实例,完成协议的解码。线程池通过读取对内输出类型,取出DDS对内输出器实例,最终完成将处理后的信息传输到网络管理装置。
在另一种可能的实现方式中,线程池不依据协议的唯一标识划分,而是依据报文接收来源,例如UDP协议中的对端IP、DDS协议中的消息主题。这样,同一来源的信息使用相同线程池,可以保证先到者先处理。类似的,也可使用其他策略来划分线程池。
本公开实施例提供的编解码装置通过使用通用编解码模块,增强了网络管理装置的复用性,使得不同船型的网络管理装置能够在模块或是代码的层次进行复用。在不使用通用编解码模块的情况下,网络管理装置中的业务组件需要处理各种接口上报的不同编码格式和通信协议的信息,容易造成业务逻辑混乱,通用编解码模块的引入较好的解决了该问题。
本公开实施例提供的编解码装置通过将通用编解码模块中底层通信协议和私有协议编码方式解耦,使得底层传输协议和编解码器都能够横向扩展,彼此的修改不会影响到对方。此外,在进行编解码时,还可以使用类似解码分线程、消息队列等通用功能,可以兼容不同的底层传输协议和编解码器。
图6是本公开至少一实施例提供的一种编解码方法的流程图。该方法由前述编解码装置执行,该编解码方法包括:
301:获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文。
302:基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议。
303:确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器。
304:调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文。
305:调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
在本公开实施例中,在编解码装置中设置通用编解码模块,通过针对被管理节点产生第一业务报文确定与所述被管理节点对应的配置信息,基于与所述被管理节点对应的配置信息选择编码所需的编码前转换器簇、编码器簇、编码后转换器簇,然后使用这些簇进行第一业务报文的流处理,实现编码,最后通过与所述被管理节点对应的配置信息选择的外部输出器簇选择接口进行输出,发送给被管理节点。在上述实现中,通过设置通用编解码模块,只要为不同编码需求的编码方案设置对应的簇即可,能够满足不同通信协议和编码方式的编码需求,无需针对不同的被管理节点分别设置编码模块,降低了***复杂度。
可选地,所述确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器,包括:分别从编码前转换器簇、编码器簇、编码后转换器簇和外部输出器簇中确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;
其中,所述编码前转换器簇包括以下至少一种编码前转换器:XML2Binary,用于将XML格式转换成二进制格式;XML2XML,用于将XML格式转换成XML格式;
所述编码器簇包括以下至少一种编码器:BinaryCodec,调用二进制编码器进行编码;XMLCodec,调用XML编码器进行编码;
所述编码后转换器簇包括以下至少一种编码后转换器:Binary2File,用于将二进制格式转换成文件格式;Binary2Udp,用于将二进制格式转换成UDP报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;XML2File,用于将XML格式转换成文件格式;XML2Udp,用于将XML格式转换成UDP报文格式;
所述外部输出器簇包括以下至少一种外部输出器:DdsOutput,用于采用DDS协议进行传输;UdpOutput,用于采用UDP协议进行传输;StringFileOutput,用于采用StringFile协议进行传输;BinaryFileOutput,用于采用BinaryFile协议进行传输;FtpOutput,用于采用FTP协议进行传输;DdsTimerOutput,用于采用定时DDS协议进行传输;UdpTimerOutput,用于采用定时UDP协议进行传输。
可选地,该方法还包括:在对所述第一业务报文进行流处理之前,从所述第一业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
可选地,所述方法还包括:
接收所述被管理节点发送的第三业务报文;
基于所述第三业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括解码方式;
确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;
调用确定出的所述解码前转换器、解码器和解码后转换器对所述第三业务报文进行流处理,得到第四业务报文;
调用确定出的所述内部输出器将所述第四业务报文通过对应的接口输出。
可选地,所述确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器,包括:分别从解码前转换器簇、解码器簇、解码后转换器簇和内部输出器簇中确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;
其中,所述解码前转换器簇包括以下至少一种解码前转换器:Bytes2Binary,用于将字节流转换成二进制格式;Bytes2XML,用于将字节流转换成XML格式;Passthrough,用于让数据直接通过;XML2XML,用于将XML格式转换成XML格式;
所述解码器簇包括以下至少一种解码器:BinaryCodec,调用二进制解码器进行解码;XMLCodec,调用XML解码器进行解码;
所述解码后转换器簇包括以下至少一种解码后转换器:Binary2Dds,用于将二进制格式转换成DDS报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;
所述内部输出器簇包括以下至少一种内部输出器:DdsOutput,用于采用DDS协议进行传输。
可选地,该方法还包括:在对所述第三业务报文进行流处理之前,从所述第三业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
图7是本公开实施例提供的一种编解码装置的结构框图。通常,编解码装置包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的由编解码装置执行的编解码方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种编解码装置,其特征在于,所述编解码装置包括:
通用编解码模块,用于获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文;基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议;确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文;调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
2.根据权利要求1所述的编解码装置,其特征在于,所述通用编解码模块,用于分别从编码前转换器簇、编码器簇、编码后转换器簇和外部输出器簇中确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;
其中,所述编码前转换器簇包括以下至少一种编码前转换器:XML2Binary,用于将XML格式转换成二进制格式;XML2XML,用于将XML格式转换成XML格式;
所述编码器簇包括以下至少一种编码器:BinaryCodec,调用二进制编码器进行编码;XMLCodec,调用XML编码器进行编码;
所述编码后转换器簇包括以下至少一种编码后转换器:Binary2File,用于将二进制格式转换成文件格式;Binary2Udp,用于将二进制格式转换成UDP报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;XML2File,用于将XML格式转换成文件格式;XML2Udp,用于将XML格式转换成UDP报文格式;
所述外部输出器簇包括以下至少一种外部输出器:DdsOutput,用于采用DDS协议进行传输;UdpOutput,用于采用UDP协议进行传输;StringFileOutput,用于采用StringFile协议进行传输;BinaryFileOutput,用于采用BinaryFile协议进行传输;FtpOutput,用于采用FTP协议进行传输;DdsTimerOutput,用于采用定时DDS协议进行传输;UdpTimerOutput,用于采用定时UDP协议进行传输。
3.根据权利要求1所述的编解码装置,其特征在于,所述通用编解码模块还用于在对所述第一业务报文进行流处理之前,从所述第一业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
4.根据权利要求1至3任一项所述的编解码装置,其特征在于,所述通用编解码模块,还用于接收所述被管理节点发送的第三业务报文;基于所述第三业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括解码方式;确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;调用确定出的所述解码前转换器、解码器和解码后转换器对所述第三业务报文进行流处理,得到第四业务报文;调用确定出的所述内部输出器将所述第四业务报文通过对应的接口输出。
5.根据权利要求4所述的编解码装置,其特征在于,所述通用编解码模块,用于分别从解码前转换器簇、解码器簇、解码后转换器簇和内部输出器簇中确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;
其中,所述解码前转换器簇包括以下至少一种解码前转换器:Bytes2Binary,用于将字节流转换成二进制格式;Bytes2XML,用于将字节流转换成XML格式;Passthrough,用于让数据直接通过;XML2XML,用于将XML格式转换成XML格式;
所述解码器簇包括以下至少一种解码器:BinaryCodec,调用二进制解码器进行解码;XMLCodec,调用XML解码器进行解码;
所述解码后转换器簇包括以下至少一种解码后转换器:Binary2Dds,用于将二进制格式转换成DDS报文格式;XML2Dds,用于将XML格式转换成DDS报文格式;
所述内部输出器簇包括以下至少一种内部输出器:DdsOutput,用于采用DDS协议进行传输。
6.根据权利要求4所述的编解码装置,其特征在于,所述通用编解码模块还用于在对所述第三业务报文进行流处理之前,从所述第三业务报文中获取信息内容和标识;将所述信息内容和所述标识封装为标准数据结构。
7.一种编解码方法,其特征在于,所述编解码方法包括:
获取第一业务报文,所述第一业务报文是针对被管理节点产生的业务报文;
基于所述第一业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括编码方式和传输协议;
确定与所述配置信息对应的编码前转换器、编码器、编码后转换器和外部输出器;
调用确定出的所述编码前转换器、编码器和编码后转换器对所述第一业务报文进行流处理,得到第二业务报文;
调用确定出的所述外部输出器将所述第二业务报文通过对应的接口输出给所述被管理节点。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述被管理节点发送的第三业务报文;
基于所述第三业务报文获取与所述被管理节点对应的配置信息,所述配置信息包括解码方式;
确定与所述配置信息对应的解码前转换器、解码器、解码后转换器和内部输出器;
调用确定出的所述解码前转换器、解码器和解码后转换器对所述第三业务报文进行流处理,得到第四业务报文;
调用确定出的所述内部输出器将所述第四业务报文通过对应的接口输出。
9.一种编解码装置,其特征在于,所述编解码装置包括处理器和存储器,所述存储器存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如权利要求7或8所述的编解码方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求7或8所述的编解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708236.5A CN115348330A (zh) | 2022-06-21 | 2022-06-21 | 编解码装置及编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210708236.5A CN115348330A (zh) | 2022-06-21 | 2022-06-21 | 编解码装置及编解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115348330A true CN115348330A (zh) | 2022-11-15 |
Family
ID=83947933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210708236.5A Pending CN115348330A (zh) | 2022-06-21 | 2022-06-21 | 编解码装置及编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115348330A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131403A (zh) * | 2019-12-06 | 2020-05-08 | 深圳猛犸电动科技有限公司 | 一种物联网设备的消息编解码方法及装置 |
CN112600562A (zh) * | 2020-12-01 | 2021-04-02 | 四川虹美智能科技有限公司 | 编解码方法、装置及计算机可读介质以及物联网设备 |
CN113691484A (zh) * | 2020-05-19 | 2021-11-23 | 华为技术有限公司 | 用于协议适配的装置和方法 |
CN114363121A (zh) * | 2021-12-29 | 2022-04-15 | 厦门点触科技股份有限公司 | 一种支持自定义协议的网关框架及实现方法 |
-
2022
- 2022-06-21 CN CN202210708236.5A patent/CN115348330A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131403A (zh) * | 2019-12-06 | 2020-05-08 | 深圳猛犸电动科技有限公司 | 一种物联网设备的消息编解码方法及装置 |
CN113691484A (zh) * | 2020-05-19 | 2021-11-23 | 华为技术有限公司 | 用于协议适配的装置和方法 |
CN112600562A (zh) * | 2020-12-01 | 2021-04-02 | 四川虹美智能科技有限公司 | 编解码方法、装置及计算机可读介质以及物联网设备 |
CN114363121A (zh) * | 2021-12-29 | 2022-04-15 | 厦门点触科技股份有限公司 | 一种支持自定义协议的网关框架及实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100483352C (zh) | Idl调用装置及调用方法 | |
US8763008B2 (en) | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture | |
CN107454092B (zh) | 一种opcua与dds协议信号转换装置、通信***及通信方法 | |
CN109815025B (zh) | 一种业务模型调用方法、装置及存储介质 | |
US7706685B2 (en) | Data communication network using optical power averaged multiplexing | |
US20090234971A1 (en) | Encoding/decoding while allowing varying message formats per message | |
CN109309599B (zh) | 一种基于路灯硬件平台实现物联网设备高并发通信的方法 | |
US8135785B2 (en) | System and method for processing messages using pluggable protocol processors in a service-oriented pipeline architecture | |
US8683320B2 (en) | Processing module, a device, and a method for processing of XML data | |
CN101202689A (zh) | 网络机器人***以及其中的通信方法 | |
CN112527471B (zh) | 任务处理方法及其装置、存储介质 | |
CN115348330A (zh) | 编解码装置及编解码方法 | |
CN105024923B (zh) | 基于xmpp扩展消息的消息分类实现的方法及装置 | |
US20230066881A1 (en) | Information flow-based decision-making and scheduling customization method and apparatus | |
CN112291254B (zh) | 一种用于可靠交易的消息处理方法及装置 | |
KR101855318B1 (ko) | 적어도 하나의 네트워크-연계된 객체를, 적어도 부분적으로, 할당 및/또는 구성하는 것을, 적어도 부분적으로, 허용하는 적어도 하나의 메커니즘 | |
US20220276641A1 (en) | Method and industrial controller for the synchronized calling of a function block in a control program having opc ua | |
US20050193141A1 (en) | Coding of data in a data package | |
CN103856396B (zh) | 插件间的报文传递方法及装置、代理插件 | |
CN113835904A (zh) | 一种远程过程调用控制方法、装置、设备及存储介质 | |
CN116244361B (zh) | 一种数据库连接动态持久化处理的方法及*** | |
CN118101798A (zh) | 基于物联网平台的协议包开发***、方法、装置及介质 | |
CN116506523B (zh) | 一种适用于多协议的统一通信方法 | |
CN117560380B (zh) | 一种基于智能合约的数据语用提取*** | |
US20020062201A1 (en) | Method of communication between remote terminals and a central station |
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 |