专利名称:一种网络数据封包处理器及其方法
技术领域:
本发明涉及数据传输领域,尤其涉及一种网络数据封包处理器及其方法。
背景技术:
随着互联网,特别是移动互联网在全球范围内的普及,人们的日常生活和工作越来越依赖于互联网,与此同时,对网络数据的处理需求也日益提高。目前,对网络数据的封包处理通常是将数据对象分段编码和解码,然后加上对象标识符通过网络传输。例如,用户登录类型的定义的编码过程如下
public class LoginRequestEntity // 用户登录类型
{
public int UserID { get; set; } // ffl^feiK public string UserName { get ; set ; } // 用户名禾尔 public string Password { get ; set ; } // 用户密石马
}
假设类型字段的编码函数原型为Encode (fieIdName),result为编码结果,则用户登录对象的编码结果如下
result = Encode (UserID) + Encode (UserName) + Encode (Password) 在上述实例中,若用户需要将LoginRequestEntity类型减少或新增数据字段,都要手工的修改或者调整数据编码代码。例如,需要新增一个CreateDate数据字段,则上述的数据类型定义的编码过程则需要修改为
public class LoginRequestEntity // 用户登录类型
{
public int UserID { get; set; } // ffl^feiK public string UserName { get ; set ; } // 用户名禾尔 public string Password { get ; set ; } // 用户密石马
public string CreateDate { get ; set ; } // 用户仓ll建El其月
}
result = Encode (UserID) + Encode (UserName) + Encode(Password) + Encode (CreateDate)
如果要减少^erID字段,则数据类型定义的编码过程则需要修改为
public class LoginRequestEntity // 用户登录类型
{
public string UserName { get ; set ; } // 用户名禾尔 public string Password { get ; set ; } // 用户密石马
ι
result = Encode (UserName) + Encode (Password)综上所述,现有技术的编码方案非常繁杂,而且,在现实的业务过程中,数据类型往往多达成百上千种,而每种数据类型的字段也多达几十上百个,如果采用上述编码方案,则数据编码工作繁重而冗余。
发明内容
本发明要解决的技术问题在于,针对现有技术数据编码繁杂的缺陷,提供一种网络数据封包处理器及其方法,该技术方案减少了数据编码工作量,增强了网络数据处理程序的灵活性以及可扩展性,为企业节约了数据编码成本。本发明解决其技术问题所采用的技术方案是构造一种网络数据封包处理方法, 所述方法包括以下步骤
51.对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签;
52.将上述数据类型组成第一集合,并枚举上述第一集合中携带自定义标签的数据类
型;
53.逐一检索待编码网络数据中携带自定义标签的数据类型;
54.将上述检索后的数据类型中的数据字段组成第二集合,并枚举上述第二集合中携带自定义标签的数据字段;
55.对上述携带自定义标签的数据字段逐一编码;
56.将上述编码后的数据字段添加至编码结果。在本发明所述的方法中,所述自定义标签为元数据标签。本发明还构造一种网络数据封包处理器,其包括
至少一个第一集合器,对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签;以及将上述数据类型组成第一集合,并枚举上述第一集合中携带自定义标签的数据类型;
至少一个检索器,逐一检索待编码网络数据中携带自定义标签的数据类型; 至少一个编码器,对上述检索后的所述数据类型中携带自定义标签的数据字段逐一编
码;
至少一个第二集合器,将上述检索后的数据类型中的数据字段组成第二集合,并枚举上述第二集合中携带自定义标签的数据字段;以及
至少一个添加器,将上述编码器编码后的数据字段添加至编码结果。在本发明所述的网络数据封包处理器中,所述自定义标签为元数据标签。实施本发明的技术方案,具有以下有益效果通过对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签,以实现统一编码,可以使企业在新增或修改了数据类型或数据字段之后,无需重新修改数据编码代码,从而减少了数据编码工作量,增强了网络数据处理程序的灵活性以及可扩展性, 为企业节约了数据编码成本。
下面将结合附图及实施例对本发明作进一步说明,附图中图1是本发明网络数据封包处理方法的流程图; 图2是本发明网络数据封包处理器的结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,图1是本发明网络数据封包处理方法实施例二的流程图,如图1所示, 所述方法包括以下步骤
在步骤Sl中,对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签;应当说明的是,自定义标签可根据用户的需求自行设定,在本实施例中,设置自定义标签,是为了起标识作用,本领域的技术人员应当了解,这里不再赘述。在步骤S2中,将上述数据类型组成第一集合,并枚举上述第一集合中携带自定义标签的数据类型。在步骤S3中,逐一检索待编码网络数据中携带自定义标签的数据类型。在步骤S4中,将上述检索后的数据类型中的数据字段组成第二集合,并枚举上述第二集合中携带自定义标签的数据字段。在步骤S5中,对上述携带自定义标签的数据字段逐一编码。在步骤S6中,将上述编码后的数据字段添加至编码结果。在本实施例中,所述自定义标签为元数据标签。下面以现有技术中的LoginRequestEntity数据类型为例,实施本发明的技术方案后,该数据类型定义的编码过程如下
public class LoginRequestEntity
{
public int UserID { get; set; } [EntityMember]
public string UserName { get; set; } [EntityMember]
public string Password { get; set; }
ι
其中,上述的[PacketEntity]为数据类型元数据标签,[EntityMember]为数据字段元数据标签。假设数据类型的集合为diet,该数据类型所包含的数据字段集合为fields, 也就是说,第一集合为diet,第二集合为fields,在编码时,枚举集合diet,逐一检索包含 [PacketEntity]标签的数据类型,再将检索后的数据类型中包含[EntityMember]标签的数据字段逐一编码。下述为实现该技术方案的伪代码foreach(c in diet) //枚举数据类型集合
{
if (c contais [PacketEntity]) //数据类型是否包含类型标签
{
foreach(f in fields) //枚举该类型的数据字段
{
if(f contais [EntityMember]) //数据字段是否包含字段标签
{
result += Encode (f) ; //将字段逐一编码
}
}
}
}
请参阅图2,图2是本发明网络数据封包处理器的结构示意图,如图2所示,其包括 至少一个第一集合器1,对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签;以及将上述数据类型组成第一集合,并枚举上述第一集合中携带自定义标签的数据类型;
至少一个检索器2,逐一检索待编码网络数据中携带自定义标签的数据类型; 至少一个第二集合器3,将上述检索后的数据类型中的数据字段组成第二集合,并枚举上述第二集合中携带自定义标签的数据字段。至少一个编码器4,对上述检索后的所述数据类型中携带自定义标签的数据字段逐一编码;以及
至少一个添加器5,将上述编码器4编码后的数据字段添加至编码结果。相较于现有技术,通过对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签,以实现统一编码,可以使企业在新增或修改了数据类型或数据字段之后,无需重新修改数据编码代码,从而减少了数据编码工作量,增强了网络数据处理程序的灵活性以及可扩展性,为企业节约了数据编码成本。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种网络数据封包处理方法,其特征在于,所述方法包括以下步骤51.对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签;52.将上述数据类型组成第一集合,并枚举上述第一集合中携带自定义标签的数据类型;53.逐一检索待编码网络数据中携带自定义标签的数据类型;54.将上述检索后的数据类型中的数据字段组成第二集合,并枚举上述第二集合中携带自定义标签的数据字段;55.对上述携带自定义标签的数据字段逐一编码;56.将上述编码后的数据字段添加至编码结果。
2.根据权利要求1所述的方法,其特征在于,所述自定义标签为元数据标签。
3.—种网络数据封包处理器,其特征在于,其包括至少一个第一集合器,对待编码网络数据中的数据类型添加自定义标签,以及对上述添加后的数据类型中的每个数据字段添加自定义标签;以及将上述数据类型组成第一集合,并枚举上述第一集合中携带自定义标签的数据类型;至少一个检索器,逐一检索待编码网络数据中携带自定义标签的数据类型; 至少一个编码器,对上述检索后的所述数据类型中携带自定义标签的数据字段逐一编码;至少一个第二集合器,将上述检索后的数据类型中的数据字段组成第二集合,并枚举上述第二集合中携带自定义标签的数据字段;以及至少一个添加器,将上述编码器编码后的数据字段添加至编码结果。
4.根据权利要求3所述的网络数据封包处理器,其特征在于,所述自定义标签为元数据标签。
全文摘要
本发明公开一种网络数据封包处理器及其方法,该方法为对待编码网络数据中的数据类型添加自定义标签,以及对添加后的数据类型中的每个数据字段添加自定义标签;将上述数据类型组成第一集合,并枚举第一集合中携带自定义标签的数据类型;逐一检索携带自定义标签的数据类型;将上述检索后的数据类型中的数据字段组成第二集合,并枚举第二集合中携带自定义标签的数据字段;对携带自定义标签的数据字段逐一编码;将编码后的数据字段添加至编码结果。本方案可实现统一编码,使企业在新增或修改数据类型或字段后,无需重新修改数据编码代码,从而减少了编码工作量,增强了网络数据处理程序的灵活性及可扩展性,为企业节约了编码成本。
文档编号H04L1/00GK102571282SQ20121001295
公开日2012年7月11日 申请日期2012年1月17日 优先权日2012年1月17日
发明者廖尚贤 申请人:航天科工深圳(集团)有限公司