CN105049256B - 一种通用自定义接口报文实现方法及系统 - Google Patents

一种通用自定义接口报文实现方法及系统 Download PDF

Info

Publication number
CN105049256B
CN105049256B CN201510487706.XA CN201510487706A CN105049256B CN 105049256 B CN105049256 B CN 105049256B CN 201510487706 A CN201510487706 A CN 201510487706A CN 105049256 B CN105049256 B CN 105049256B
Authority
CN
China
Prior art keywords
message
node
template
class
information
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
Application number
CN201510487706.XA
Other languages
English (en)
Other versions
CN105049256A (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.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech 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 Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201510487706.XA priority Critical patent/CN105049256B/zh
Publication of CN105049256A publication Critical patent/CN105049256A/zh
Application granted granted Critical
Publication of CN105049256B publication Critical patent/CN105049256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0266Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]

Abstract

本发明涉及一种通用自定义接口报文实现方法,包括如下步骤:步骤1,协定报文协议,确定报文内容;步骤2,根据报文协议配置查询类报文模板和更新类报文模板;步骤3,根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模板进行组装,得到通用自定义接口报文。本发明所述报文通用性强、复用度高,轻量级,不依赖特殊的API,大大降低接口制定的复杂度和开发工作量,便于统一化管理,便于工作量精准评估。

Description

一种通用自定义接口报文实现方法及系统
技术领域
本发明涉及通信技术领域,尤其涉及一种通用自定义接口报文实现方法及系统。
背景技术
对于综合资源管理系统,需要提供大量的资源查询接口给外围系统,如营业系统选号接口、资源能力查询接口等;但是经过分析发现,大部分接口基本可划分为两类:查询类和更新类(包括删除,可看作是一种特殊的更新操作);而通常在定义接口报文的时候都是以业务动作为基本单元,一个业务动作对应一套接口报文,并且每一个报文节点都是双方协定接口交互方式后预定义好的,一旦有变化就需要修改程序,非常麻烦。
报文片段:
从上述的报文片段可以看出,传统的报文组装方式中,每一个节点都是预定义好的,每一个节点即对应一个实际的业务元素,如果业务需求发生变化新增或修改某个节点,则需要相应的修改服务端解析程序,可移植性和扩展性很差。传统的组装方式的,服务端的解析是和报文强关联的,报文变更服务端的解析也要跟着修改。
Sun公司提供了一套利用注解方式解析xml文件的API(javax.xml.bind..annotation)很好的支持了报文节点的属性配置管理,但是考虑到在有些情况下,由于业务的变更可能需要对报文内容进行修改,如果采用注解方式则需要修改java源码并重新发布程序,在一定程度上不够灵活。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种通用自定义接口报文实现方法及系统。
本发明解决上述技术问题的技术方案如下:一种通用自定义接口报文实现方法,包括如下步骤:
步骤1,协定报文协议,确定报文内容;
步骤2,根据报文协议配置查询类报文模板和更新类报文模板;
步骤3,根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模板进行组装,得到通用自定义接口报文。
本发明的有益效果是:本发明所述报文通用性强、复用度高,轻量级,不依赖特殊的API,大大降低接口制定的复杂度和开发工作量,便于统一化管理,便于工作量精准评估。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤2中所述查询类报文模板和更新类报文模板为包括报文头xmlHeader和报文体xmlBody的XML报文模板,所述报文头xmlHeader定义鉴权信息,所述报文体xmlBody定义根节点信息、业务节点信息和节点属性信息。
进一步,所述报文头xmlHeader定义的鉴权信息包括服务端应用编码、客户端应用编码、调用方式及调用方身份标识。
进一步,所述报文体xmlBody定义的根节点信息用于区分所述报文模板的类型,所述业务节点信息用于定义业务节点的内容,所述节点属性信息用于定义业务节点的属性。
进一步,上述技术方案还包括当接口参数有变更时,根据变更的内容直接修改报文的业务节点信息和/或节点属性信息。
进一步,所述查询类请求报文的报文体xmlBody定义如下:
a、输出属性节点output_field,是0或多个;
b、查询条件节点query_condition,是0或多个,该节点存在时必须包含两个子节点,分别为操作符operator和属性值value;
c、排序条件节点sort_condition,是0或多个;
d、分页节点page_condition,必须,该节点下包含三个子节点,分别是page_size、current_page和total_record;
所述查询类响应报文的报文体xmlBody定义如下:
a、响应编码resp_code,必填;实际项目中可能会定义统一的响应编码;
b、响应消息描述resp_desc,必填;
c、每页的数据量;
d、当前页码;
e、返回的数据总量;
f、总页数;
g、输出的属性集合,根据output_field节点自动拼装。
进一步,所述更新类报文的报文体xmlBody定义为二级节点update_item,为1个或多个,所述二级节点update_item定义五个节点,分别为:
a、变更目标target_field,目标属性,是0或多个,如果是数据同步更新或插入操作时使用该节点;
b、查询条件节点query_condition,是0或多个,该节点存在时必须包含两个子节点,分别为操作符operator和属性值value;
c、操作类型operate_type,非空,定义操作类型是修改、删除或其它业务动作;
d、操作原因或备注operate_note,可空,填写操作原因或备注信息;
e、是否指定操作目标intended_target,非空,如果指定操作目标则target_field节点不能为空;1为是,0为否。
进一步,所述更新类报文的报文体xmlBody还包括一个扩展节点,所述扩展节点与二级节点update_item并列。
本发明解决上述技术问题的另一技术方案如下:一种通用自定义接口报文实现系统,包括协议商定模块、模板配置模块和报文组装模块;
所述协议商定模块,其用于协定报文协议,确定报文内容;
所述模板配置模块,其用于根据报文协议配置查询类报文模板和更新类报文模板;
所述报文组装模块,其用于根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模板进行组装,得到通用自定义接口报文。
在上述技术方案的基础上,本发明还可以做如下改进
进一步,所述查询类报文模板和更新类报文模板为包括报文头xmlHeader和报文体xmlBody的XML报文模板,所述报文头xmlHeader定义鉴权信息,所述报文体xmlBody定义节点信息和节点属性信息。
附图说明
图1为本发明所述一种通用自定义接口报文实现方法流程图;
图2为本发明所述一种通用自定义接口报文实现系统框图;
图3为本发明实施例中所述查询类报文模板结构示意图;
图4为本发明实施例中所述更新类报文模板结构示意图。
附图中,各标号所代表的部件列表如下:
1、协议商定模块,2、模板配置模块,3、报文组装模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
Xml是一种可扩展的标记语言,有着良好的自定义特性和自我描述特性,本发明对传统报文进行了改进,设计了两种通用性的报文模板(查询类报文模板和更新类报文模板),节点+属性的组装方式。
如图1所示,一种通用自定义接口报文实现方法,包括如下步骤:
步骤1,协定报文协议,确定报文内容;
步骤2,根据报文协议配置查询类报文模板和更新类报文模板;
步骤3,根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模板进行组装,得到通用自定义接口报文。
其中,步骤2中所述查询类报文模板和更新类报文模板为包括报文头xmlHeader和报文体xmlBody的XML报文模板,所述报文头xmlHeader定义鉴权信息,所述报文体xmlBody定义根节点信息、业务节点信息和节点属性信息。所述报文头xmlHeader定义的鉴权信息包括服务端应用编码、客户端应用编码、调用方式及调用方身份标识等等。业务调用时通过该部分信息进行应用匹配和身份识别等操作。报文头xmlHeader,主要定义一些鉴权信息,而且相对比较固定一般不会有太大变化,所以采用传统的预定义方式,指定元素节点即业务节点,节点添加required属性标识是否为必填项;例如:<server_app_code required="true">100001</server_app_code>;为了便于业务扩展,在节点头部分增加了扩展参数节点;<extends_paramsname="xxx"required="true">xxx</extends_params>;
所述报文体xmlBody定义的根节点信息用于区分所述报文模板的类型,所述业务节点信息用于定义业务节点的内容,所述节点属性信息用于定义业务节点的属性。所述节点属性信息包括属性名称、数据类型、是否必填等。
本发明将报文节点进行抽象化定义,每个报文节点增加相应的属性信息,来标识属性名称、属性值或其它约束条件。例如:<output_field name="column"required="true"/>。上述技术方案还包括当接口参数有变更时,根据变更的内容直接修改报文的业务节点信息和/或节点属性信息。
下面详细介绍几种报文的报文体定义。
图3为本发明实施例中所述查询类报文模板结构示意图。表1为本发明实施例中所述查询类报文结构表。
表1
1.所述查询类请求报文在报文体body部分定义四类节点,分别是:
a、输出属性节点output_field,是0或多个;
<output_fieldname="column"required="true"/>
b、查询条件节点query_condition,是0或多个,该节点存在时必须包含两个子节点,分别为操作符operator和属性值value;
<query_conditionname="num_header"required="true">
<operator>1</operator>1表示等于,不填时默认为1
<value>531</value>
</query_condition>
c、排序条件节点sort_condition,是0或多个;
<sort_conditionname="column">desc</sort_condition>
d、分页节点page_condition,不可省略,包含以下三个子节点;
<page_size></page_size>每页数据量,默认值100
<current_page></current_page>当前页码,默认值1
<total_record></total_record>每次需要返回的数据总量,默认值1000。
2.所述查询响应报文定义以下节点:
a、响应编码resp_code,必填;实际项目中可能会定义统一的响应编码,如9999代表成功等等<resp_code>9999</resp_code>;
b、响应消息描述resp_desc,必填;
<resp_desc>查询成功</resp_desc>;
c、每页的数据量;
<page_size>100<page_size>;
d、当前页码;
<current_page>1<current_page>;
e、返回的数据总量;
<total_record>300<total_record>;
f、总页数;
<total_page>3</total_page>;
g、输出的属性集合,根据output_field节点自动拼装;
<output_collection>;
<column1>zhangsan</column1>;
......;
</output_collection>。
图4为本发明实施例中所述更新类报文模板结构示意图。
表2为本发明实施例中所述更新类报文结构表。
表2
3.所述更新类报文体部分考虑到可能的批量操作,将所述更新类请求报文的报文体xmlBody定义为二级节点update_item,为1个或多个,所述二级节点update_item定义五个节点,分别为:
a、变更目标target_field,目标属性,是0或多个,如果是数据同步更新或插入操作时使用该节点;
<target_fieldname="user_name"required="true">lisi</target_field>;
b、查询条件节点query_condition,是0或多个,该节点存在时必须包含两个子节点,分别为操作符operator和属性值value;
<query_conditionname="user_name"required="true">
<operator>1</operator>1表示等于,不填时默认为1
<value>zhangsan</value>
</query_condition>;
c、操作类型operate_type,非空,定义操作类型是修改、删除或其它业务动作;
<operate_type></operate_type>;
d、是否指定操作目标intended_target,非空,指定操作目标时target_field节点必须存在,指定为1不指定则为0;
<intended_targetrequired="true">1</intended_target>;
e、操作原因或备注operate_note,可空,填写操作原因或备注信息;
<operate_note></operate_note>。
考虑到可能会有的一些特殊情况,所述更新类报文的报文体xmlBody还包括一个扩展节点,所述扩展节点与二级节点update_item并列,便于业务扩展。
所述通用自定义的接口报文的解析运用org.w3c.dom的相关API进行解析,采用面向对象编程的方式,进行报文解析后的信息封装,简单、直观、易懂、易维护。
如图2所示,一种通用自定义接口报文实现系统,包括协议商定模块1、模板配置模块2和报文组装模块3;所述协议商定模块1,其用于协定报文协议,确定报文内容;所述模板配置模块2,其用于根据报文协议配置查询类报文模板和更新类报文模板;所述报文组装模块3,其用于根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模板进行组装,得到通用自定义接口报文。
本发明采用契约式的方式约定每个节点的内容(指节点元素,取值,以及约束条件(是否必填、数据类型等));凡是报文约定的内容均使用属性节点attr和元素节点element表示,凡是需要动态赋值的内容,均使用文本节点text通过动态配置实现。即调用方只需要关注文本节点的内容,而对于属性节点和元素节点不可以随意修改。
本发明具有以下优点:1.本发明将报文节点抽象化,属性配置化,即将传统报文的节点转化为属性进行配置化管理;2.所述报文具有良好的通用性和可扩展性,只需要修改节点信息或节点属性信息即可实现报文内容的变更,而无需修改程序;3.解析程序处理逻辑简单易于维护和二次开发;4.客户端无需组装特殊对象,只需要传入一个报文字符串即可;5.实现接口的统一化标准化管理,使相关工作可量化,工程师可以更精准的进行工作量评估。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种通用自定义接口报文实现方法,其特征在于,包括如下步骤:
步骤1,协定报文协议,确定报文内容;
步骤2,根据报文协议配置查询类报文模板和更新类报文模板;
步骤3,根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模板进行组装,得到通用自定义接口报文;
步骤2中所述查询类报文模板和更新类报文模板为包括报文头xmlHeader和报文体xmlBody的XML报文模板,所述报文头xmlHeader定义鉴权信息,所述报文体xmlBody定义根节点信息、业务节点信息和节点属性信息;
所述报文体xmlBody定义的根节点信息用于区分所述报文模板的类型,所述业务节点信息用于定义业务节点的内容,所述节点属性信息用于定义业务节点的属性。
2.根据权利要求1所述一种通用自定义接口报文实现方法,其特征在于,所述报文头xmlHeader定义的鉴权信息包括服务端应用编码、客户端应用编码、调用方式及调用方身份标识。
3.根据权利要求1所述一种通用自定义接口报文实现方法,其特征在于,还包括当接口参数有变更时,根据变更的内容直接修改报文的业务节点信息和/或节点属性信息。
4.根据权利要求1所述一种通用自定义接口报文实现方法,其特征在于,所述查询类报文模板包括查询类请求报文和查询类响应报文,所述查询类请求报文的报文体xmlBody定义如下:
a、输出属性节点output_field,是0或多个;
b、查询条件节点query_condition,是0或多个,该节点存在时必须包含两个子节点,分别为操作符operator和属性值value;
c、排序条件节点sort_condition,是0或多个;
d、分页节点page_condition,必须,该节点下包含三个子节点,分别是page_size、current_page和total_record;
所述查询类响应报文的报文体xmlBody定义如下:
a、响应编码resp_code,必填;
b、响应消息描述resp_desc,必填;
c、每页的数据量;
d、当前页码;
e、返回的数据总量;
f、总页数;
g、输出的属性集合,根据output_field节点自动拼装。
5.根据权利要求1所述一种通用自定义接口报文实现方法,其特征在于,所述更新类报文模板包括更新类请求报文和更新类响应报文,所述更新类请求报文的报文体xmlBody定义为二级节点update_item,为1个或多个,所述二级节点update_item定义五个节点,分别为:
a、变更目标target_field,目标属性,是0或多个,如果是数据同步更新或插入操作时使用该节点;
b、查询条件节点query_condition,是0或多个,该节点存在时必须包含两个子节点,分别为操作符operator和属性值value;
c、操作类型operate_type,非空,定义操作类型是修改、删除或其它业务动作;
d、操作原因或备注operate_note,可空,填写操作原因或备注信息;
e、是否指定操作目标intended_target,非空,如果指定操作目标则target_field节点不能为空;1为是,0为否;
所述更新类响应报文的报文体xmlBody定义为:
a、响应编码resp_code,必填;
b、响应消息描述resp_desc,必填。
6.根据权利要求5所述一种通用自定义接口报文实现方法,其特征在于,所述更新类请求报文的报文体xmlBody还包括一个扩展节点,所述扩展节点与二级节点update_item并列。
7.一种通用自定义接口报文实现系统,其特征在于,包括协议商定模块、模板配置模块和报文组装模块;
所述协议商定模块,其用于协定报文协议,确定报文内容;
所述模板配置模块,其用于根据报文协议配置查询类报文模板和更新类报文模板;
所述报文组装模块,其用于根据报文内容所属的类型,选择相应类型的报文模板,将报文内容按照选择的报文模块板进行组装,得到通用自定义接口报文;
所述查询类报文模板和更新类报文模板为包括报文头xmlHeader和报文体xmlBody的XML报文模板,所述报文头xmlHeader定义鉴权信息,所述报文体xmlBody定义根节点信息、业务节点信息和节点属性信息;
所述报文体xmlBody定义的根节点信息用于区分所述报文模板的类型,所述业务节点信息用于定义业务节点的内容,所述节点属性信息用于定义业务节点的属性。
CN201510487706.XA 2015-08-10 2015-08-10 一种通用自定义接口报文实现方法及系统 Active CN105049256B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510487706.XA CN105049256B (zh) 2015-08-10 2015-08-10 一种通用自定义接口报文实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510487706.XA CN105049256B (zh) 2015-08-10 2015-08-10 一种通用自定义接口报文实现方法及系统

Publications (2)

Publication Number Publication Date
CN105049256A CN105049256A (zh) 2015-11-11
CN105049256B true CN105049256B (zh) 2018-11-13

Family

ID=54455478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510487706.XA Active CN105049256B (zh) 2015-08-10 2015-08-10 一种通用自定义接口报文实现方法及系统

Country Status (1)

Country Link
CN (1) CN105049256B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107204961B (zh) * 2016-03-16 2020-11-24 创新先进技术有限公司 接口报文中需转义字符的处理方法和装置
CN106209830B (zh) * 2016-07-08 2019-12-10 中国人民解放军国防科学技术大学 一种基于xml网络协议表示的报文构造方法
CN108762950A (zh) * 2018-05-23 2018-11-06 山东浪潮商用系统有限公司 一种规范化RESTful微服务交互方法
CN109194495B (zh) * 2018-06-29 2021-08-24 平安科技(深圳)有限公司 服务器、报文处理方法和计算机可读存储介质
CN109586979B (zh) * 2018-12-29 2022-01-21 中国银行股份有限公司 一种报文传输方法及装置
CN110636049A (zh) * 2019-08-27 2019-12-31 南京理工大学 软件通信接口通用报文组织发送方法
CN111049813B (zh) * 2019-12-04 2022-07-12 中国银行股份有限公司 报文组装方法、解析方法、装置及存储介质
CN111510159B (zh) * 2020-05-13 2022-03-08 中国科学院自动化研究所 遵循通用信息交换协议规范的智能编码方法及编码器
CN113744027A (zh) * 2021-09-02 2021-12-03 联通在线信息科技有限公司 产品接口报文配置方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377506A (zh) * 2010-08-12 2012-03-14 盛科网络(苏州)有限公司 测试报文处理系统
CN102480462A (zh) * 2010-11-23 2012-05-30 中国电信股份有限公司 通用协议适配方法及装置
CN102546442A (zh) * 2012-03-09 2012-07-04 北京神州数码思特奇信息技术股份有限公司 通信协议转换技术
DE102012216841A1 (de) * 2011-09-29 2013-04-04 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Durchführung von Sicherheitstests hinsichtlich von Protokollimplementierungen

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377506A (zh) * 2010-08-12 2012-03-14 盛科网络(苏州)有限公司 测试报文处理系统
CN102480462A (zh) * 2010-11-23 2012-05-30 中国电信股份有限公司 通用协议适配方法及装置
DE102012216841A1 (de) * 2011-09-29 2013-04-04 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Durchführung von Sicherheitstests hinsichtlich von Protokollimplementierungen
CN102546442A (zh) * 2012-03-09 2012-07-04 北京神州数码思特奇信息技术股份有限公司 通信协议转换技术

Also Published As

Publication number Publication date
CN105049256A (zh) 2015-11-11

Similar Documents

Publication Publication Date Title
CN105049256B (zh) 一种通用自定义接口报文实现方法及系统
KR100866076B1 (ko) 트리 데이터 교환의 관리를 위한 방법 및 장치
KR101264819B1 (ko) 표적 동작 객체를 찾아내기 위한 장치 관리 서버, 클라이언트 및 방법
US7412493B2 (en) Publish/subscribe messaging system
Hasemann et al. RDF provisioning for the Internet of Things
JP2006507580A (ja) 移動通信装置用の装置管理用ツリーの設定を可能にするオブジェクトを定義する方法および装置
EP2416538B1 (en) Method for providing node information, method for obtaining node information and equipment thereof
CN1980144A (zh) 一种大数据量网管数据快速配置的方法
CN106257868B (zh) 配置数据推送方法及装置
CN111552838A (zh) 数据处理方法及装置、计算机设备、存储介质
US20160241635A1 (en) M2m data querying and invoking methods, querying and invoking devices, and system
CN105824944B (zh) 一种基于脚本语言的xml配置数据维护方法及系统
CN103488696A (zh) Cpe的业务查询方法、装置及系统、acs和cpe
JP4800310B2 (ja) リンクを伴うクライアントプロビジョニング
WO2009022356A2 (en) Method and system for sms-based electronic form processing
CN103902539A (zh) 可扩展标记语言数据解析方法及装置
WO2014019545A1 (zh) 内容发布系统及其内容发布方法
CN105516269A (zh) 应用的配置方法和应用的配置装置
CN101179444B (zh) 配置生效方法、配置系统及配置网关
CN107786661B (zh) 信息同步方法
CN112822190B (zh) 报文维护方法及装置
JP2011053874A (ja) アプリケーションサーバ、オブジェクト管理方法およびオブジェクト管理プログラム
CN109510728B (zh) 一种网管信息库mib文件自动转换成xml文件的方法
CN103166927A (zh) 一种xml通信协议动态管理方法
JP2003242127A (ja) 業務統合システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant