CN112214968A - 报文转换方法、装置及电子设备 - Google Patents
报文转换方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112214968A CN112214968A CN202011083977.6A CN202011083977A CN112214968A CN 112214968 A CN112214968 A CN 112214968A CN 202011083977 A CN202011083977 A CN 202011083977A CN 112214968 A CN112214968 A CN 112214968A
- Authority
- CN
- China
- Prior art keywords
- message
- conversion
- template
- fragments
- analysis
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 164
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004458 analytical method Methods 0.000 claims abstract description 139
- 239000012634 fragment Substances 0.000 claims abstract description 100
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000004931 aggregating effect Effects 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 claims description 4
- 238000006062 fragmentation reaction Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000010006 flight Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G06Q50/40—
Abstract
本发明公开了一种报文转换方法、装置及电子设备,获取用户请求的报文;对报文进行解析,得到报文的版本信息;基于版本信息,确定目标转换模板;利用目标转换模块对报文进行分片,得到若干个报文片段;通过与报文片段相匹配的报文解析策略对报文片段进行解析,得到报文片段的解析结果;将报文片段的解析结果进行聚合,得到目标版本的报文。在本发明中通过多种解析策略使得报文匹配到最优策略提升了报文解析效率,并且基于不同的转换模块使得报文转换适应范围更广,从而实现了面向NDC标准的不同版本报文的转换的适用场景广以及处理效率高的目的。
Description
技术领域
本发明涉及信息处理技术领域,特别是涉及一种报文转换方法、装置及电子设备。
背景技术
NDC(New Distribution Capability,新分销能力)是国际航空运输协会(International Air Transport Association,IATA)近年来力推的新的分销行业标准。它主要制定了同一的数据传输标准(XML),航空公司与其合作伙伴之间可以通过这个统一标准来进行数据的交互。航司可以根据卖家的请求以及卖家和旅客的信息,动态实时构建航班运价机票产品以及辅营产品,再通过统一的标准提供给卖家,改变了传统机票领域主要由全球分销系统(Global Distribution System,简称GDS)构建产品,促进航司的直销。
然而,NDC有多个版本,版本与版本之间有较大的差距,而且每个航司对接的NDC版本可能不同,因此,聚合器(Aggregator)就需要对航司的各个NDC版本进行处理,输出同一标准的NDC报文。现有的报文解析方法应用平台受限并且对于数据量较大的报文解析效率较低,已经无法适用于复杂场景下的报文转换的需求。
发明内容
针对于上述问题,本发明提供一种报文转换方法、装置及电子设备,实现了面向NDC标准的不同版本报文的转换的适用场景广以及处理效率高的目的。
为了实现上述目的,本发明提供了如下技术方案:
一种报文转换方法,包括:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
一种报文转换装置,包括:
获取单元,用于获取用户请求的报文;
第一解析单元,用于对所述报文进行解析,得到所述报文的版本信息;
确定单元,用于基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
分片单元,用于利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
第二解析单元,用于通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
聚合单元,用于将所述报文片段的解析结果进行聚合,得到目标版本的报文。
一种存储介质,所述存储介质上存储有可执行指令,所述指令被处理器执行时实现如上中任一项所述的报文转换方法。
一种电子设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
相较于现有技术,本发明提供了一种报文转换方法、装置及电子设备,获取用户请求的报文;对报文进行解析,得到报文的版本信息;基于版本信息,确定目标转换模板;利用目标转换模块对报文进行分片,得到若干个报文片段;通过与报文片段相匹配的报文解析策略对报文片段进行解析,得到报文片段的解析结果;将报文片段的解析结果进行聚合,得到目标版本的报文。在本发明中通过多种解析策略使得报文匹配到最优策略提升了报文解析效率,并且基于不同的转换模块使得报文转换适应范围更广,从而实现了面向NDC标准的不同版本报文的转换的适用场景广以及处理效率高的目的。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记标识相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本发明实施例提供的一种报文转换方法的流程示意图;
图2为本发明实施例提供的一种报文转换流程的示意图;
图3为本发明实施例提供的一种初始化航司组件的示意图;
图4为本发明实施例提供的一种初始化分片解析策略组件的示意图;
图5为本发明实施例提供的一种加载模板池的示意图;
图6为本发明实施例提供的一种初始化报文分片器的示意图;
图7为本发明实施例提供的一种报文翻译器组装示意图;
图8为本发明实施例提供的一种报文转换装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施例提供的一种报文转换方法是面向NDC标准的不同版本报文的转换方法,采用了模板转换方式,结合对应的解析策略,针对不同的场景采用不同的解析昂发达到最优的处理方式。例如,针对大报文采用大任务分片解析策略的方式比传统的解决方式快3-4倍,可以根据不同的航司不同的版本甚至不同的接口采用不同的解析方式,提高了报文转换系统的灵活性。
为了便于对本发明提供的报文转换方法进行说明,将本发明应用到的相关术语进行解释。
NDC(New Distribution Capability,新分销能力),是国际航空运输协会IATA近年来力推的新的分销行业标准。新分销能力主要制定了统一的基于XML格式报文的数据传输标准,航空公司与其合作伙伴之间可以通过这一统一标准来进行数据的交互。航司可以根据卖家的请求以及卖家和旅客的信息,动态实时构建航班运价机票产品以及辅营产品(构建好并由航司返回给合作伙伴的产品报价,就是NDC里常说的Offer),再通过统一的XML格式标准报文提供给卖家。这一设计改变了传统机票领域主要由GDS构建Offer进行分销的模式,让航空公司重回交易的主导地位,促进航司的直销。
AirlineAdaptor:航司组件。
AirShopping:根据输入的出发地到达地及旅行日期等查询条件,返回符合条件的航空公司、航班、舱位、运价等信息,供用户选择。。
SeatAvail:用来获取航班座位图以及座位状态,用户可以基于此来进行选座。
ServiceList:可用来查看航班可购买的附加服务产品,用户可以在预订之前购买附加服务,也可以在出票后追加附加服务。
OrderReshop:用户使用该接口,将要更改的航班及EMD的信息发送给航空公司,航空公司计算好价格后会返回更改所需的详细费用。
DataList、OffersGroup、AugmentationPoint、Utils:这几个都是航班查询返回报文中的节点。
Offer:航司返回的航班舱位、品牌运价、附加服务、使用规则等信息,称之为offer。每个Offer可以有多个OfferItem,每个旅客类型对应一个OfferItem,每个附加服务会对应一个OfferItem。
ITI模式:ITI模式就是指,当行程是往返程时,航司的AirShopping接口会返回去/回程航班运价打包组合结果,每一个Offer就是整个行程(即一个去/回程航班组合)的报价结果。
OWD模式:OWD模式是指AirShopping接口分别返回去/回程各自航班运价结果,即每一程有一个报价Offer,用户使用时需要把去/回程的Offer自行组合成整个行程的Offer。
NDC报文:NDC主要制定了统一的基于XML格式报文的数据传输标准,航空公司与其合作伙伴之间可以通过这一统一标准来进行数据的交互。这些统一标准的报文即为NDC报文。NDC报文均以XML格式的文档呈现,对这些XML格式文档的定义文件为对应的XSD文件。不论XSD文件还是XML文件,均遵守其本身的技术规范,例如:其中存在一些“节点”、“属性”等内容,这些均属于标准的技术定义。
NDC接口:OOMS为航司实现NDC的载体,由于在航司销售的流程中业务环节及流程场景的多样性,使得OOMS必须提供各种不同的接口来满足整个业务流程中交互的需要,例如常见的NDC接口有:AirShopping(Offer查询,提供用户对所需的产品进行查询的功能)、OrderCreate(Order生成,提供用户向航司OOMS进行订单下单的功能)、OrderRetrieve(Order获取,提供用户向航司请求查看已预订的订单情况功能)等。不同的接口使用各自的NDC报文。
NDC版本:NDC是一个较新的、持续发展的项目,国际航协也在持续的对NDC进行优化、完善。体现在具体的交付物上,即NDC报文在每年会(针对所有NDC接口)发布两个更新迭代的版本,其版本号采用“年份”.“版本号”写法构成,例如:2017年发布的第二个版本的版本号位17.2;2018年发布的第一个版本为18.1等。
参见图1,其示出了本发明实施例提供的一种报文转换方法的流程示意图,可以包括以下步骤:
S101、获取用户请求的报文。
S102、对报文进行解析,得到报文的版本信息。
获取用户请求的报文通常是指获取用户请求的xml报文,根据<MessageDoc><Name>AA</Name></MessageDoc>节点、http请求头里面的参数可以得到报文的版本信息。
需要说明的是,在获取用户的请求时还需要对请求对应的航司组件进行验证,即对所述用户请求的报文进行解析,得到与所述报文对应的航司组件;若所述航司组件满足验证条件,获取与所述报文对应的版本信息;若所述航司组件不满足验证条件,生成提示信息,所述提示信息用于提示所述航司组件异常。
例如,基于上述参数判断属于AA航司182版本的AirShopping接口,然后从系统内存中获取对应的航司组件,首先判断该航司组件是否‘存活’,若‘存活’则根据航司接口配置判断该报文使用Xalan模板还是Saxon模板转换,如果该航司组件‘死亡’则直接返回用户该航司接口异常。其中,“存活”可以理解为目前仍被使用,“死亡”可以理解为该航司组件不被使用。
S103、基于所述版本信息,确定目标转换模板。
可以将版本信息与转换模板进行一一匹配,当得到版本信息后可以对应得到与之对应的目标转换模板。也可以基于所述版本信息,获得报文翻译器,使得所述报文翻译器基于所述版本信息的接口信息加载目标转换模板。
在本发明实施例中目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板。第一转换模板是xlstxalan,第二转换模板可以是xslt saxon。
具体的,以基于AA航司的AirShopping接口的转换解析过程为例进行说明。根据获取的航司组件和NDC版本号可以获取到该报文的翻译器,该翻译器中会自动从系统的模板池中加载AA航司182版本AirShopping接口的Saxon模板,如果配置的是Xalan模板的话此处就会加载Xalan模板。
S104、利用所述目标转换模块对所述报文进行分片,得到若干个报文片段。
仍以上述为例,报文翻译器根据在加载的xslt模板和AA航司组件会自动加载一个报文分片器,该分片器会将xml报文分成多个小的片段。这里AA航司的AirShopping报文会被拆分成DataList、OffersGroup、AugmentationPoint、Utils这4个片段,然后系统会启动4个线程去并行解析这4个小的片段。
S105、通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果。
在本发明的一种实施方式中,可以依据所述报文对应的目标转换模板、版本信息和所述报文的大小,计算得到所述报文的权重值;依据所述权重值,确定报文解析策略。
其中,报文解析策略包括:当前线程解析策略、大任务分片解析策略和并行流式解析策略;其中,所述当前线程解析策略用于对节点数量小于预设数量阈值的报文进行解析;所述并行流式解析策略解析策略用于对报文大小大于预设第一阈值且小于预设第二阈值的报文通过多个线程解析;所述大任务分片解析策略用于对报文大小大于预设第三阈值的报文进行解析,所述第三阈值大于第二阈值。
举例说明,根据AA航司组件可以拿到AA航司的分片解析策略,该分片解析策略组件会自动计算出AirShopping接口报文解析的一个权重值,首先AA航司的182版本AirShopping接口配置的接口权重为5;DataList、OffersGroup片段报文大小大于5M会得到50的权重,AugmentationPoint片段报文小于2M会得到5的权重,Utils片段报文大于2M小于5M会得到20的权重;然后DataList、OffersGroup片段报文的节点数在5000以上又会得到45的权重,AugmentationPoint片段报文的节点数在10以下又会得到2的权重,Utils片段报文的节点数在100以上1000以下又会得到20的权重;然后判断该xml是OWD模式又得到5的权重。最后通过计算得到DataList、OffersGroup片段的权重在105,根据分片解析策略判断该片段报文应采用大任务分片解析策略;AugmentationPoint片段的权重在17,根据分片解析策略判断该片段报文应采用当前线程解析策略;Utils片段的权重在50,根据分片解析策略判断该片段报文应采用并行流式解析策略。
DataList、OffersGroup片段采用大任务分片解析策略时,系统会计算需要执行的函数数量,将函数拆分成20个一组,每组函数启动4个线程去并发执行解析,每组函数执行完成之后就会把结果放入系统缓存中,然后继续执行下一组函数。
AugmentationPoint片段采用当前线程策略,系统会启动一个线程去解析这个片段,解析结果同样放入系统缓存中。
Utils片段采用并行流式解析策略,首先系统会把需要执行的函数全部放入一个队列中,然后启动5个线程,每个线程从队列中获取一个函数并发执行解析,解析结果同样放入系统缓存中。
S106、将所述报文片段的解析结果进行聚合,得到目标版本的报文。
例如,从缓存中获取报文的解析结果,聚合成一个符合NDC182版本的报文。该版本的报文是符合NDC标准的报文。
本发明提供了一种报文转换方法,获取用户请求的报文;对报文进行解析,得到报文的版本信息;基于版本信息,确定目标转换模板;利用目标转换模块对报文进行分片,得到若干个报文片段;通过与报文片段相匹配的报文解析策略对报文片段进行解析,得到报文片段的解析结果;将报文片段的解析结果进行聚合,得到目标版本的报文。在本发明中通过多种解析策略使得报文匹配到最优策略提升了报文解析效率,并且基于不同的转换模块使得报文转换适应范围更广,从而实现了面向NDC标准的不同版本报文的转换的适用场景广以及处理效率高的目的。
下面以本发明的报文处理系统为例,对该报文转换方法进行说明。该系统涉及组件包括:模板转换方式:xlst xalan模板转换、xslt saxon模板转换;分片解析策略组件:当前线程解析策略、大任务分片解析策略、并行流式解析策略;报文分片器组件。如图2所示,其示出了一种报文转换流程的示意图。
Xalan模板转换:Xalan是将可扩展标记语言(XML)转换为超文本链接标识语言(HTML)或其它类型XML文档的规范。Xalan-Java 1.2是基于互联网联盟(W3C)对可扩展样式表语言转换(XSLT)和XML路径语言(XPL)建立的。通常Xalan使用Xerces XML词法分析器,它也可以使用其它分析器转换为文档对象模型(DOM)2或者用于XML的简单API(SAX)1。经过大量测试,使用xalan模板转换小报文时,速度较快、系统开销较小。
Saxon模板转换:Saxon是一个XSLT处理器,它是使用XML文档和样式表作为输入,然后生成结果文档作为输出的程序。它可以与其它实现Java SAX接口的语法分析器一起使用。Saxon还包括了一个串行化器,用于将结果树转换成XML、HTML或纯文本。良好的性能当然是我们选择Saxon的一个原因,经过大量测试Saxon在解析大报文是存在明显的速度优势。在解析AirShopping报文时,使用的是Saxon模板。
报文分片器组件:报文分片器组件主要是针对不同航司的不同接口采取不同的分片策略。它会将大报文拆分成多个小的片段,每个小的片段会在不同的线程中解析,一般情况下节点相似的报文会拆分在一起。
分片解析策略组件:通过系统初始化的AirlineAdaptor确定报文的航司、接口、转换使用的xslt模板、NDC版本号、报文大小计算出一个权重值,然后根据权重值判断该报文使用以下三种解析策略解析,保证报文始终采用最优的策略解析。经常系统大量的测试结果发现,权重值在100以上时采用大任务分片解析策略,权重值在20-100之间时采用并行流式解析策略,权重值低于20时采用当前线程解析策略,此种解析策略不论是解析速度,还是系统的开销都能达到最优的方案。
(1)当前线程解析策略:节点较少的小报文,通常采用单线程的方式解析,防止线程上下文频繁切换以节省系统的开销。
(2)大任务分片解析策略:针对较大的、而且拆分的报文片段较多时,我们通常会将大任务拆解成N个小任务,每N个小任务一组并发执行,进一步提升大报文的解析速度。主要针对AirShopping、SeatAvail、ServiceList报文的解析。
(3)并行流式解析策略:使用流式处理时,在数据量较大的情况下,通过并行流可以开启多个线程来执行处理,每个线程执行一个片段的报文解析,在针对AirShopping报文解析时速度不如大任务分片解析策略的方式,但是在针对OrderReshop报文时在速度相差无几的基础上大大减小了系统的开销,在这个场景下实现了最优的解析。
参见图3,其示出了本发明实施例提供的一种初始化航司组件的示意图,把每个航司的配置都定义成一个航司组件,系统会在启动的时候加载各个航司的组件,把不同航司、不同版本的组件装载到对应版本的NDC组件中。例如:AGG目前支持NDC182的版本,就把AA航司172版本的组件装载到NDC182组件中,从而获取172版本到182版本或者182版本到172版本转换所需要的配置信息。同时系统会根据提供的http客户端组件航司发送一个http请求来检查该航司是否存活,若航司成功返回就置为’存活’,若返回异常就置为’死亡’。当用户请求’死亡’的航司接口时,系统会自动提示客户该航司接口异常。
参见图4,其示出了本发明实施例提供的一种初始化分片解析策略组件的示意图,系统启动时,会根据初始化好的航司组件生成对应的分片解析策略组件,每个航司的分片解析策略组件都不尽相同。分片解析策略组件的生成主要依赖报文的航司、接口、大小、节点数、NDC版本、xml的OWD和ITI模式,系统首先会根据这些条件生成默认的权重值。例如,AirShopping接口默认的权重值为5,OfficePrice接口权重值为3等;报文大于5M时默认的权重值为50,报文大于等于2M小于5M默认的权重值为20,小于2M默认的权重值为5等。当接收到一个报文时,系统会根据报文的航司、接口、大小、节点数、NDC版本、xml的OWC和ITI模式配置的默认权重值来累加计算出一个总的权重值。当值小于等于20时执行当前线程解析策略,值大于20小于等于100时执行并行流式解析策略,值大于100时执行大任务分片解析策略。不同的航司,这个值都不一样。
参见图5,其示出了本发明实施例提供的一种加载模板池的示意图。系统启动时,通过初始化航司组件的配置加载每个航司的各个接口对应的xslt模板。系统通过模板工厂,把Xalan模板装载到Xalan池,把Saxon模板装载到Saxon池中。
参见图6,其示出了本发明实施例提供的一种初始化报文分片器的示意图。系统启动时根据航司组件对那些较大的报文实施分片,把一个大的报文拆分成包含多个节点的小报文并发解析。例如:AirShopping的返回报文,系统会把它拆分成包含DataList、OffersGroup、AugmentationPoint等多个小报文并发解析,以提升解析的速度。
参见图7,其示出了本发明实施例提供的一种报文翻译器组装示意图。当初始化完以上组件,系统就会自动收集这些组件为每个航司的接口组装翻译器。用户在调用AGG接口时,会根据报文的航司、接口、版本来判断使用哪个翻译器来解析报文。
本发明实施例提供的报文转换方法,在解析速度上比一般传统的xml解析要快不少,并且实现了多套解析策略,根据解析策略规则总能找到报文解析的最优解,在保障解析的速度的同时能有效的减少系统开销。系统中所描述的各种规则组件大多都是通用的,当接入一个新的航司,只需要编写对应的xslt模板,把新的航司组件加载到系统中即可。因为系统的架构是基于组件化的开发,所以根据不同航司不同版本不同接口,可以定制化开发最优的解析策略组件,而不用去破坏系统架构。从而满足NDC聚合器高效的性能需求。
参见图8,在本发明实施例中还提供了一种报文转换装置,该装置包括:
获取单元10,用于获取用户请求的报文;
第一解析单元20,用于对所述报文进行解析,得到所述报文的版本信息;
确定单元30,用于基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
分片单元40,用于利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
第二解析单元50,用于通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
聚合单元60,用于将所述报文片段的解析结果进行聚合,得到目标版本的报文。
在上述实施例的基础上,所述确定单元具体用于:
基于所述版本信息,获得报文翻译器,使得所述报文翻译器基于所述版本信息的接口信息加载目标转换模板。
在上述实施例的基础上,所述装置还包括:
计算单元,用于依据所述报文对应的目标转换模板、版本信息和所述报文的大小,计算得到所述报文的权重值;
策略确定单元,用于依据所述权重值,确定报文解析策略。
在上述实施例的基础上,所述报文解析策略包括:当前线程解析策略、大任务分片解析策略和并行流式解析策略;其中,
所述当前线程解析策略用于对节点数量小于预设数量阈值的报文进行解析;所述并行流式解析策略解析策略用于对报文大小大于预设第一阈值且小于预设第二阈值的报文通过多个线程解析;所述大任务分片解析策略用于对报文大小大于预设第三阈值的报文进行解析,所述第三阈值大于第二阈值。
在上述实施例的基础上,所述装置还包括:
第三解析单元,用于对所述用户请求的报文进行解析,得到与所述报文对应的航司组件;
获取单元,还用于若所述航司组件满足验证条件,获取与所述报文对应的版本信息;
生成单元,用于若所述航司组件不满足验证条件,生成提示信息,所述提示信息用于提示所述航司组件异常。
需要说明的是是,实施例中参见的附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
在本发明实施例中还提供了一种存储介质,所述存储介质上存储有可执行指令,所述指令被处理器执行时实现如上任一项所述的报文转换方法。
本发明实施例还提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
进一步地,所述基于所述版本信息,确定目标转换模板,包括:
基于所述版本信息,获得报文翻译器,使得所述报文翻译器基于所述版本信息的接口信息加载目标转换模板。
进一步地,所述方法还包括:
依据所述报文对应的目标转换模板、版本信息和所述报文的大小,计算得到所述报文的权重值;
依据所述权重值,确定报文解析策略。
进一步地,所述报文解析策略包括:当前线程解析策略、大任务分片解析策略和并行流式解析策略;其中,
所述当前线程解析策略用于对节点数量小于预设数量阈值的报文进行解析;所述并行流式解析策略解析策略用于对报文大小大于预设第一阈值且小于预设第二阈值的报文通过多个线程解析;所述大任务分片解析策略用于对报文大小大于预设第三阈值的报文进行解析,所述第三阈值大于第二阈值。
进一步地,所述方法还包括:
对所述用户请求的报文进行解析,得到与所述报文对应的航司组件;
若所述航司组件满足验证条件,获取与所述报文对应的版本信息;
若所述航司组件不满足验证条件,生成提示信息,所述提示信息用于提示所述航司组件异常。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种面向威胁建模的信息处理方法、系统、存储介质及电子设备。
一种报文转换方法,包括:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
一种报文转换装置,包括:
获取单元,用于获取用户请求的报文;
第一解析单元,用于对所述报文进行解析,得到所述报文的版本信息;
确定单元,用于基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
分片单元,用于利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
第二解析单元,用于通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
聚合单元,用于将所述报文片段的解析结果进行聚合,得到目标版本的报文。
一种存储介质,所述存储介质上存储有可执行指令,所述指令被处理器执行时实现如上中任一项所述的报文转换方法。
一种电子设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种报文转换方法,其特征在于,包括:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
2.根据权利要求1所述的方法,其特征在于,所述基于所述版本信息,确定目标转换模板,包括:
基于所述版本信息,获得报文翻译器,使得所述报文翻译器基于所述版本信息的接口信息加载目标转换模板。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
依据所述报文对应的目标转换模板、版本信息和所述报文的大小,计算得到所述报文的权重值;
依据所述权重值,确定报文解析策略。
4.根据权利要求1所述的方法,其特征在于,所述报文解析策略包括:当前线程解析策略、大任务分片解析策略和并行流式解析策略;其中,
所述当前线程解析策略用于对节点数量小于预设数量阈值的报文进行解析;所述并行流式解析策略用于对报文大小大于预设第一阈值且小于预设第二阈值的报文通过多个线程解析;所述大任务分片解析策略用于对报文大小大于预设第三阈值的报文进行解析,所述第三阈值大于第二阈值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述用户请求的报文进行解析,得到与所述报文对应的航司组件;
若所述航司组件满足验证条件,获取与所述报文对应的版本信息;
若所述航司组件不满足验证条件,生成提示信息,所述提示信息用于提示所述航司组件异常。
6.一种报文转换装置,其特征在于,包括:
获取单元,用于获取用户请求的报文;
第一解析单元,用于对所述报文进行解析,得到所述报文的版本信息;
确定单元,用于基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
分片单元,用于利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
第二解析单元,用于通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
聚合单元,用于将所述报文片段的解析结果进行聚合,得到目标版本的报文。
7.根据权利要求6所述的装置,其特征在于,所述确定单元具体用于:
基于所述版本信息,获得报文翻译器,使得所述报文翻译器基于所述版本信息的接口信息加载目标转换模板。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
计算单元,用于依据所述报文对应的目标转换模板、版本信息和所述报文的大小,计算得到所述报文的权重值;
策略确定单元,用于依据所述权重值,确定报文解析策略。
9.一种存储介质,其特征在于,所述存储介质上存储有可执行指令,所述指令被处理器执行时实现如权利要求1至5中任一项所述的报文转换方法。
10.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于:
获取用户请求的报文;
对所述报文进行解析,得到所述报文的版本信息;
基于所述版本信息,确定目标转换模板,所述目标转换模板为第一转换模板或者第二转换模板,所述第一转换模板是将可扩展标记语言转换为超文本连接标识语言或者其他类型可扩展标记语言文档的模板,所述第二转换模板表征可扩展样式表语言转换处理模板;
利用所述目标转换模块对所述报文进行分片,得到若干个报文片段;
通过与所述报文片段相匹配的报文解析策略对所述报文片段进行解析,得到报文片段的解析结果;
将所述报文片段的解析结果进行聚合,得到目标版本的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083977.6A CN112214968A (zh) | 2020-10-12 | 2020-10-12 | 报文转换方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083977.6A CN112214968A (zh) | 2020-10-12 | 2020-10-12 | 报文转换方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214968A true CN112214968A (zh) | 2021-01-12 |
Family
ID=74052639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011083977.6A Pending CN112214968A (zh) | 2020-10-12 | 2020-10-12 | 报文转换方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214968A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995188A (zh) * | 2021-03-10 | 2021-06-18 | 中国民航信息网络股份有限公司 | 报文转换方法及中间适配装置、存储介质及电子设备 |
CN113329024A (zh) * | 2021-06-01 | 2021-08-31 | 中国民航信息网络股份有限公司 | 数据报文转换的方法、装置、设备和存储介质 |
CN113779953A (zh) * | 2021-11-10 | 2021-12-10 | 航天宏图信息技术股份有限公司 | 一种文档自动化生成方法和系统 |
CN115794931A (zh) * | 2023-01-29 | 2023-03-14 | 中国民航信息网络股份有限公司 | 一种ndc聚合器的预警方法、系统、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090073682A (ko) * | 2007-12-31 | 2009-07-03 | 노틸러스효성 주식회사 | 데이터통신 프로세스에서 통신전문 변환장치 및 방법 |
CN108040040A (zh) * | 2017-11-30 | 2018-05-15 | 北京锐安科技有限公司 | 一种应用协议报文的自动化解析方法和装置 |
CN109413115A (zh) * | 2018-12-29 | 2019-03-01 | 中国银行股份有限公司 | 协议文本解析方法及系统 |
CN109688063A (zh) * | 2018-11-14 | 2019-04-26 | 华为技术有限公司 | 一种大型接收卸载功能的设置方法和装置 |
CN110380970A (zh) * | 2019-07-22 | 2019-10-25 | 北京邮电大学 | 一种适用于异构网络的自适应数据报文转发方法及装置 |
CN110730181A (zh) * | 2019-10-21 | 2020-01-24 | 中国民航信息网络股份有限公司 | 一种报文转换方法、装置及适配器 |
-
2020
- 2020-10-12 CN CN202011083977.6A patent/CN112214968A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090073682A (ko) * | 2007-12-31 | 2009-07-03 | 노틸러스효성 주식회사 | 데이터통신 프로세스에서 통신전문 변환장치 및 방법 |
CN108040040A (zh) * | 2017-11-30 | 2018-05-15 | 北京锐安科技有限公司 | 一种应用协议报文的自动化解析方法和装置 |
CN109688063A (zh) * | 2018-11-14 | 2019-04-26 | 华为技术有限公司 | 一种大型接收卸载功能的设置方法和装置 |
CN109413115A (zh) * | 2018-12-29 | 2019-03-01 | 中国银行股份有限公司 | 协议文本解析方法及系统 |
CN110380970A (zh) * | 2019-07-22 | 2019-10-25 | 北京邮电大学 | 一种适用于异构网络的自适应数据报文转发方法及装置 |
CN110730181A (zh) * | 2019-10-21 | 2020-01-24 | 中国民航信息网络股份有限公司 | 一种报文转换方法、装置及适配器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995188A (zh) * | 2021-03-10 | 2021-06-18 | 中国民航信息网络股份有限公司 | 报文转换方法及中间适配装置、存储介质及电子设备 |
CN113329024A (zh) * | 2021-06-01 | 2021-08-31 | 中国民航信息网络股份有限公司 | 数据报文转换的方法、装置、设备和存储介质 |
CN113779953A (zh) * | 2021-11-10 | 2021-12-10 | 航天宏图信息技术股份有限公司 | 一种文档自动化生成方法和系统 |
CN115794931A (zh) * | 2023-01-29 | 2023-03-14 | 中国民航信息网络股份有限公司 | 一种ndc聚合器的预警方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214968A (zh) | 报文转换方法、装置及电子设备 | |
US9064047B2 (en) | Parallel processing of ETL jobs involving extensible markup language documents | |
US8744988B1 (en) | Predicting user navigation events in an internet browser | |
US6538760B1 (en) | Method and apparatus for generating a production print stream from files optimized for viewing | |
US9619563B2 (en) | Search engine optimization using page anchors | |
US7703099B2 (en) | Scalable transformation and configuration of EDI interchanges | |
EP3684033A1 (en) | Systems and methods for collecting, monitoring, and analyzing vehicle data from a plurality of vehicles using edge computing | |
JP2004527041A (ja) | 携帯用計算デバイスへの無線通信媒体を介するコンテンツ送達のためのシステムおよび方法 | |
US7865481B2 (en) | Changing documents to include changes made to schemas | |
JP6419081B2 (ja) | トランスフォーム生成システム | |
EP1999699A1 (en) | Edi instance based transaction set definition | |
CA2654802A1 (en) | Dispatching request fragments from a response aggregating surrogate | |
WO2009032108A1 (en) | A method and an apparatus to deliver messages between applications | |
US8397158B1 (en) | System and method for partial parsing of XML documents and modification thereof | |
CN112308515A (zh) | 一种面向ndc聚合器的ndc处理系统及其业务请求处理方法 | |
CN113761428A (zh) | 页面渲染方法、装置、系统、存储介质及电子设备 | |
US8156148B2 (en) | Scalable algorithm for sharing EDI schemas | |
US7620645B2 (en) | Scalable algorithm for sharing EDI schemas | |
CN112307734A (zh) | 一种xslt模板的加载方法、装置及电子设备 | |
US20090164510A1 (en) | Methods, systems, and computer program products for accessing a multi-format data object | |
US20120131432A1 (en) | Systems and methods for delta encoding, transmission and decoding of html forms | |
US8589788B2 (en) | Methods, systems, and computer program products for automatic parsing of markup language documents | |
CN116450465B (zh) | 数据处理方法、装置、设备及介质 | |
EP2769513A1 (en) | Return notifications of tasks performed with entities | |
CN114840424A (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 |