一种数据处理方法及数据处理装置与流程

文档序号:16630771发布日期:2019-01-16 06:33阅读:196来源:国知局
一种数据处理方法及数据处理装置与流程

本发明涉及通信领域的数据传输技术,尤其涉及一种数据处理方法及数据处理装置。



背景技术:

基于internet的客户端-服务器系统,在实现网络通讯的过程中,经常需要面临根据用户特定网络环境而选择不同传输协议和封包方式的情况,常见的有仅支持传输控制协议(transmissioncontrolprotocol,tcp)传输的网络、仅开放80端口的局域网,以及网络边界不断切换的移动网等。所述用户特定网络环境使得在传输网络数据的过程中需要做特定的适配,使用不同的数据封包方式。

目前,所述传输网络数据的过程的实现主要通过绑定业务逻辑与网络环境下的封包方式,从而出现同一业务由于网络环境不同而有多种逻辑实现对应多种封包方式的情况。然而,所述多种逻辑实现对应多种封包方式的情况严重增加软件复杂度,不利于扩展和维护。



技术实现要素:

有鉴于此,本发明实施例为解决现有技术中存在的问题而提供一种数据处理方法及数据处理装置。

本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种数据处理方法,所述方法包括:

生成通信数据;

选择与所述通信数据对应的网络数据信息;

基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;

利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的终端。

第二方面,本发明实施例提供一种数据处理装置,所述装置包括:生成模块、匹配模块、处理模块、封装模块和发送模块;

所述生成模块,用于生成通信数据;

所述匹配模块,用于选择与所述通信数据对应的网络数据信息;

所述处理模块,用于基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;

所述封装模块,用于利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

所述发送模块,用于发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的终端。

第三方面,本发明实施例提供一种数据处理装置,所述数据处理装置包括:

存储器,用于存储能够在处理器上运行的计算机程序;

处理器,用于运行所述计算机程序时,执行如上述实施例所述数据处理方法的步骤。

第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述实施例所述数据处理方法的步骤。

本发明实施例所述数据处理方法及数据处理装置,生成通信数据;选择与所述通信数据对应的网络数据信息;基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的终端。如此,本发明实施例将通信协议独立于网络环境或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,因此可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

附图说明

图1为本发明实施例一信息处理方法的实现流程示意图;

图2为本发明实施例数据处理方法的实现流程示意图一;

图3为本发明实施例tcp/ip协议栈的分层示意图;

图4为本发明实施例数据处理方法的实现流程示意图二;

图5为本发明实施例预存的通信协议信息中存储的对应关系列表示意图;

图6为本发明实施例数据处理方法的实现流程示意图三;

图7为本发明实施例预存的通信协议信息中存储的对应关系列表示意图;

图8为本发明实施例数据处理方法的实现流程示意图四;

图9为传统的数据处理方法的具体实现流程示意图;

图10为本发明实施例数据处理方法的具体实现流程示意图;

图11为本发明实施例数据处理装置的组成结构示意图;

图12为本发明实施例用于实现所述数据处理装置的一个可选的硬件结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。

参见图1示出的本发明实施例提供的数据处理系统的一个可选的架构示意图,第一终端11在与第二终端12进行业务交互的应用场景中,第一终端11需要通过网络路由将通信数据传输至第二终端12。具体地,第一终端11首先会根据网络环境或业务逻辑确定用于传输通信数据的通信协议;进一步地,第一终端11将所述通信数据网络路由至与所确定的通信协议相对应的协议栈,以将所述通信数据进行数据封装处理,生成通信数据包传输至第二终端12。当然,所述第一终端11和所述第二终端12均可以为终端设备或服务器设备。如此,可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

图2为本发明实施例数据处理方法的实现流程示意图一,如图2所示,所述方法包括:

步骤201:生成通信数据,所述通信数据可以为第一终端通过应用程序与用户进行交互的业务数据;

这里,所述第一终端可以为终端设备或服务器设备。当所述第一终端为终端设备时,第一终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第一终端为服务器设备时,第一终端为在服务器侧运行应用程序的应用服务器。

这里,所述通信数据与应用程序交互逻辑有关,比如聊天数据、转账数据、上下线数据等。需要说明的是,在不同的应用场景下,获取用户在与第一终端的应用程序交互过程中产生的业务数据的方式不同,作为一种可能的实现方式,可通过读取应用程序对应的保存业务数据的文件,以获取用户在与第一终端的应用程序交互过程中产生的业务数据。

步骤202:选择与所述通信数据对应的网络数据信息;

这里,所述网络数据信息包括网络环境信息和通信数据所属的业务类型即业务逻辑。

步骤203:基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;

这里,所述通信协议包括公有协议和私有协议,其中,所述公有协议主要包括tcp协议、用户数据报协议(userdatagramprotocol,udp)、文件传输协议(filetransferprotocol,ftp)和超文本传输协议(hypertexttransferprotocol,http)等等。

在一实施例中,所述网络数据信息为网络环境信息时,所述基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议包括:对所述预存的数据传输协议信息进行解析,得到至少包括网络环境信息、通信协议、及所述网络环境信息与通信协议之间对应关系的信息;当所述网络数据信息为所述网络环境信息时,根据所述网络环境信息与通信协议之间的对应关系,查询得到对应所述网络环境信息的通信协议。

在又一实施例中,所述网络数据信息为通信数据所属的业务类型时,所述基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议包括:对所述预存的数据传输协议信息进行解析,得到至少包括业务类型、通信协议、及所述业务类型与通信协议之间对应关系的信息;当所述网络数据信息为通信数据所属的业务类型时,根据所述业务类型与通信协议之间的对应关系,查询得到对应所述业务类型的通信协议。

步骤204:利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

在一实施例中,所述利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包,包括:将所述通信数据路由到协议栈集合中与所述通信协议对应的协议栈中;按照所述协议栈的协议栈格式将所述通信数据封装成对应的通信数据包。

应当理解的是,在本发明的一个实施例中,可预先设置协议栈集合,所述协议栈集合包括公有协议栈与私有协议栈中至少一种协议栈。

其中,协议栈集合是指网络中各层协议的总和,包含通信协议的包头信息,数据传输字节位数等,以tcp/ip协议栈伪例,如图3所示,tcp/ip协议栈包括应用层、传输层、网络层和网络接口层,其中,网络接口层是tcp/ip协议模型的基层,负责数据帧的发送和接收。网络层通过互联协议将数据包封装成互联网数据包,并运行必要的路由算法。这里包括网际协议(internetprotocol,ip)、地址解析协议(addressresolutionprotocol,arp)、网际控制消息协议(internetcontrolmessageprotocol,icmp)和互联组管理协议(internetgroupmanagementprotocol,igmp)这四种互联协议。

传输层通过传输协议在设备之间提供通信会话。传输协议的选择根据数据传输方式而定,通常包括tcp和udp两种协议。应用层用于访问网络,主要包括常见的ftp、http、域名系统(domainnamesystem,dns)协议和telnet协议。

在tcp/ip协议栈的四层协议中,各层数据包封装情况包括:在发送业务数据时,将业务数据从最上层到最下层一次打包(加上包头和部分尾部信息);在接收业务数据时,则将业务数据从最下层到最上层依次拆包(去掉包头和部分尾部信息)。这些打包和拆包操作就是由tcp/ip协议栈实现的。

进一步地,在本发明又一实施例中,所述方法还可以包括:若所述协议栈集合中不存在与传输所述通信数据使用的一个或多个通信协议对应的协议栈,则在所述协议栈集合中添加缺失的协议栈。

可以理解,通信协议为了满足技术的进步,会随着技术的进步而不断更新完善,因而,可能在某一时间,协议栈集合中的部分通信协议发生更新,此时,需要对该部分通信协议进行更改。

进一步地,在本发明又一实施例中,所述方法还包括:接收数据传输协议更新信息;基于所述数据传输协议更新信息对所述数据传输信息中原有的通信协议加以更新处理。

步骤205:发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端。

这里,所述第二终端可以为终端设备或服务器设备。当所述第二终端为终端设备时,第二终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第二终端为服务器设备时,第二终端为在服务器侧运行应用程序的应用服务器。

需要强调的是,本发明实施例将通信协议独立于网络环境或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,若当前应用场景是将同样的通信数据发送给多个不同的协议栈的第二终端时,也可以同时实现,即所述第二终端可以是一个也可以是多个。

本发明实施例所述数据处理方法,生成通信数据,所述通信数据为第一终端通过应用程序与用户进行交互的业务数据;选择与所述通信数据对应的网络数据信息;基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端。如此,本发明实施例将通信协议独立于网络环境或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,因此可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

图4为本发明实施例数据处理方法的实现流程示意图二,本发明实施例中所述网络数据信息为通信数据所属的业务类型即业务逻辑,如图4所示,所述方法包括:

步骤401:生成通信数据,所述通信数据为第一终端通过应用程序与用户进行交互的业务数据;

这里,所述第一终端可以为终端设备或服务器设备。当所述第一终端为终端设备时,第一终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第一终端为服务器设备时,第一终端为在服务器侧运行应用程序的应用服务器。

这里,所述通信数据与应用程序交互逻辑有关,比如聊天数据、转账数据、上下线数据等。需要说明的是,在不同的应用场景下,获取用户在与第一终端的应用程序交互过程中产生的业务数据的方式不同,作为一种可能的实现方式,可通过读取应用程序对应的保存业务数据的文件,以获取用户在与第一终端的应用程序交互过程中产生的业务数据。

步骤402:选择与所述通信数据对应的网络数据信息;

这里,所述网络数据信息包括通信数据所属的业务类型即业务逻辑。

另外,上述业务类型用于指示执行不同的数据处理操作所属的种类的划分,比如,聊天应用程序的用户上下线业务数据对应的业务类型,是账号状态业务类型,聊天应用程序的聊天业务数据对应的业务类型,是交互业务类型,生活服务应用程序中的订单业务数据对应的业务类型,是商业业务类型等。

应当理解的是,在数据通信过程中,为了实现有条不紊的交换数据,就必须遵循事先约定好的通信协议,该通信协议是设备间通信所必须遵循的规则和约定,通信协议与业务类型相关,不同的通信协议所支持的业务类型具有不同,比如,对于业务类型为商业业务类型和账号状态业务类型而言,由于商业业务类型涉及到金钱交易等,因而,商业业务类型对应的通信协议相对于账号状态业务类型对应的通信协议安全保密等级较高等。

步骤403~404:对所述预存的数据传输协议信息进行解析,得到至少包括业务类型、通信协议、及所述业务类型与通信协议之间对应关系的信息;当所述网络数据信息为通信数据所属的业务类型时,根据所述业务类型与通信协议之间的对应关系,查询得到对应所述业务类型的通信协议;

这里,所述通信协议包括公有协议和私有协议,其中,所述公有协议主要包括tcp、udp、ftp和http等等。

具体而言检测所述业务数据所属的业务类型,比如,根据预存的业务数据和业务类型的对应关系获取与业务数据对应的业务类型,或者,由用户在相关界面手动输入业务类型,并根据应用程序以及业务数据所属的业务类型查询预存的通信协议信息,确定传输业务数据使用的通信协议,其中,由于一个通信协议所支持的业务类型可能有多种,因而,确定的传输业务数据使用的通信协议可能有一个也可能有多个。

需要强调的是,在不同的应用场景下,上述预存的通信协议信息中的内容不同,示例说明如下:

第一种示例,预存的通信协议信息中可包括业务类型与通信协议的对应关系列表,从而,在获取业务数据所属的业务类型后,查询上述对对应关系列表,获取与业务类型对应的一个或多个通信协议。

举例而言,在本示例中,若预存的通信协议信息中存储的对应关系列表如图5所示,则如果获知业务数据所属的业务类型是无线通讯,则查询如图5所示的对应关系列表,确定与该业务类型对应的通信协议为udp协议。

步骤405:利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

在一实施例中,所述利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包,包括:将所述通信数据路由到协议栈集合中与所述通信协议对应的协议栈中;按照所述协议栈的协议栈格式将所述通信数据封装成对应的通信数据包。

应当理解的是,在本发明的一个实施例中,可预先设置协议栈集合,所述协议栈集合包括公有协议栈与私有协议栈中至少一种协议栈。

其中,协议栈集合是指网络中各层协议的总和,包含通信协议的包头信息,数据传输字节位数等,以tcp/ip协议栈伪例,如图3所示,tcp/ip协议栈包括应用层、传输层、网络层和网络接口层,其中,网络接口层是tcp/ip协议模型的基层,负责数据帧的发送和接收。网络层通过互联协议将数据包封装成互联网数据包,并运行必要的路由算法。这里包括ip、arp、icmp和igmp这四种互联协议。

传输层通过传输协议在设备之间提供通信会话。传输协议的选择根据数据传输方式而定,通常包括tcp和udp两种协议。应用层用于访问网络,主要包括常见的ftp、http、dns协议和telnet协议。

在tcp/ip协议栈的四层协议中,各层数据包封装情况包括:在发送业务数据时,将业务数据从最上层到最下层一次打包(加上包头和部分尾部信息);在接收业务数据时,则将业务数据从最下层到最上层依次拆包(去掉包头和部分尾部信息)。这些打包和拆包操作就是由tcp/ip协议栈实现的。

进一步地,在本发明又一实施例中,所述方法还可以包括:若所述协议栈集合中不存在与传输所述通信数据使用的一个或多个通信协议对应的协议栈,则在所述协议栈集合中添加缺失的协议栈。

可以理解,通信协议为了满足技术的进步,会随着技术的进步而不断更新完善,因而,可能在某一时间,协议栈集合中的部分通信协议发生更新,此时,需要对该部分通信协议进行更改。

进一步地,在本发明又一实施例中,所述方法还包括:接收数据传输协议更新信息;基于所述数据传输协议更新信息对所述数据传输信息中原有的通信协议加以更新处理。

步骤406:发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端。

这里,所述第二终端可以为终端设备或服务器设备。当所述第二终端为终端设备时,第二终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第二终端为服务器设备时,第二终端为在服务器侧运行应用程序的应用服务器。

需要强调的是,本发明实施例将通信协议独立于网络环境或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,若当前应用场景是将同样的通信数据发送给多个不同的协议栈的第二终端时,也可以同时实现,即所述第二终端可以是一个也可以是多个。

本发明实施例所述数据处理方法,将通信协议独立于业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,因此可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

图6为本发明实施例数据处理方法的实现流程示意图三,如图6所示,所述方法包括:

步骤601:生成通信数据,所述通信数据为第一终端通过应用程序与用户进行交互的业务数据;

这里,所述第一终端可以为终端设备或服务器设备。当所述第一终端为终端设备时,第一终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第一终端为服务器设备时,第一终端为在服务器侧运行应用程序的应用服务器。

这里,所述通信数据与应用程序交互逻辑有关,比如聊天数据、转账数据、上下线数据等。需要说明的是,在不同的应用场景下,获取用户在与第一终端的应用程序交互过程中产生的业务数据的方式不同,作为一种可能的实现方式,可通过读取应用程序对应的保存业务数据的文件,以获取用户在与第一终端的应用程序交互过程中产生的业务数据。

步骤602:选择与所述通信数据对应的网络数据信息;

这里,所述网络数据信息包括网络环境信息。

步骤603~604:对所述预存的数据传输协议信息进行解析,得到至少包括网络环境信息、通信协议、及所述网络环境信息与通信协议之间对应关系的信息;当所述网络数据信息为所述网络环境信息时,根据所述网络环境信息与通信协议之间的对应关系,查询得到对应所述网络环境信息的通信协议;

这里,所述通信协议包括公有协议和私有协议,其中,所述公有协议主要包括tcp、udp、ftp和http等等。

需要强调的是,在不同的应用场景下,上述预存的通信协议信息中的内容不同,示例说明如下:

第一种示例,预存的通信协议信息中可包括网络环境信息与通信协议的对应关系列表,从而,在获取所述通信数据对应的网络环境信息,即第一终端所处的网络环境信息后,查询上述对对应关系列表,获取与所述网络环境信息对应的一个或多个通信协议。

举例而言,在本示例中,若预存的通信协议信息中存储的对应关系列表如图7所示,则如果获知所述通信数据对应的网络环境信息为仅开放80端口的局域网,则查询如图7所示的对应关系列表,确定与所述网络环境信息对应的通信协议为http协议。

步骤605:利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

在一实施例中,所述利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包,包括:将所述通信数据路由到协议栈集合中与所述通信协议对应的协议栈中;按照所述协议栈的协议栈格式将所述通信数据封装成对应的通信数据包。

应当理解的是,在本发明的一个实施例中,可预先设置协议栈集合,所述协议栈集合包括公有协议栈与私有协议栈中至少一种协议栈。

其中,协议栈集合是指网络中各层协议的总和,包含通信协议的包头信息,数据传输字节位数等,以tcp/ip协议栈伪例,如图3所示,tcp/ip协议栈包括应用层、传输层、网络层和网络接口层,其中,网络接口层是tcp/ip协议模型的基层,负责数据帧的发送和接收。网络层通过互联协议将数据包封装成互联网数据包,并运行必要的路由算法。这里包括ip、arp、icmp和igmp这四种互联协议。

传输层通过传输协议在设备之间提供通信会话。传输协议的选择根据数据传输方式而定,通常包括tcp和udp两种协议。应用层用于访问网络,主要包括常见的ftp、http、dns协议和telnet协议。

在tcp/ip协议栈的四层协议中,各层数据包封装情况包括:在发送业务数据时,将业务数据从最上层到最下层一次打包(加上包头和部分尾部信息);在接收业务数据时,则将业务数据从最下层到最上层依次拆包(去掉包头和部分尾部信息)。这些打包和拆包操作就是由tcp/ip协议栈实现的。

进一步地,在本发明又一实施例中,所述方法还可以包括:若所述协议栈集合中不存在与传输所述通信数据使用的一个或多个通信协议对应的协议栈,则在所述协议栈集合中添加缺失的协议栈。

可以理解,通信协议为了满足技术的进步,会随着技术的进步而不断更新完善,因而,可能在某一时间,协议栈集合中的部分通信协议发生更新,此时,需要对该部分通信协议进行更改。

进一步地,在本发明又一实施例中,所述方法还包括:接收数据传输协议更新信息;基于所述数据传输协议更新信息对所述数据传输信息中原有的通信协议加以更新处理。

步骤606:发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端。

这里,所述第二终端可以为终端设备或服务器设备。当所述第二终端为终端设备时,第二终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第二终端为服务器设备时,第二终端为在服务器侧运行应用程序的应用服务器。

需要强调的是,本发明实施例将通信协议独立于网络环境或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,若当前应用场景是将同样的通信数据发送给多个不同的协议栈的第二终端时,也可以同时实现,即所述第二终端可以是一个也可以是多个。

本发明实施例所述数据处理方法,将通信协议独立于网络环境处理,因而通信协议可根据具体业务需要灵活选择,因此可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

图8为本发明实施例数据处理方法的实现流程示意图四,如图8所示,所述方法包括:

步骤601:生成通信数据,所述通信数据为第一终端通过应用程序与用户进行交互的业务数据;

这里,所述第一终端可以为终端设备或服务器设备。当所述第一终端为终端设备时,第一终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第一终端为服务器设备时,第一终端为在服务器侧运行应用程序的应用服务器。

这里,所述通信数据与应用程序交互逻辑有关,比如聊天数据、转账数据、上下线数据等。需要说明的是,在不同的应用场景下,获取用户在与第一终端的应用程序交互过程中产生的业务数据的方式不同,作为一种可能的实现方式,可通过读取应用程序对应的保存业务数据的文件,以获取用户在与第一终端的应用程序交互过程中产生的业务数据。

步骤602:选择与所述通信数据对应的网络数据信息;

这里,所述网络数据信息包括网络环境信息。

步骤603~604:对所述预存的数据传输协议信息进行解析,得到至少包括网络环境信息、通信协议、及所述网络环境信息与通信协议之间对应关系的信息;当所述网络数据信息为所述网络环境信息时,根据所述网络环境信息与通信协议之间的对应关系,查询得到对应所述网络环境信息的通信协议;

这里,所述通信协议包括公有协议和私有协议,其中,所述公有协议主要包括tcp、udp、ftp和http等等。

需要强调的是,在不同的应用场景下,上述预存的通信协议信息中的内容不同,示例说明如下:

第一种示例,预存的通信协议信息中可包括网络环境信息与通信协议的对应关系列表,从而,在获取所述通信数据对应的网络环境信息,即第一终端所处的网络环境信息后,查询上述对对应关系列表,获取与所述网络环境信息对应的一个或多个通信协议。

举例而言,在本示例中,若预存的通信协议信息中存储的对应关系列表如图7所示,则如果获知所述通信数据对应的网络环境信息为仅开放80端口的局域网,则查询如图7所示的对应关系列表,确定与所述网络环境信息对应的通信协议为http协议。

步骤605:利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

在一实施例中,所述利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包,包括:将所述通信数据路由到协议栈集合中与所述通信协议对应的协议栈中;按照所述协议栈的协议栈格式将所述通信数据封装成对应的通信数据包。

应当理解的是,在本发明的一个实施例中,可预先设置协议栈集合,所述协议栈集合包括公有协议栈与私有协议栈中至少一种协议栈。

其中,协议栈集合是指网络中各层协议的总和,包含通信协议的包头信息,数据传输字节位数等,以tcp/ip协议栈伪例,如图3所示,tcp/ip协议栈包括应用层、传输层、网络层和网络接口层,其中,网络接口层是tcp/ip协议模型的基层,负责数据帧的发送和接收。网络层通过互联协议将数据包封装成互联网数据包,并运行必要的路由算法。这里包括ip、arp、icmp和igmp这四种互联协议。

传输层通过传输协议在设备之间提供通信会话。传输协议的选择根据数据传输方式而定,通常包括tcp和udp两种协议。应用层用于访问网络,主要包括常见的ftp、http、dns协议和telnet协议。

在tcp/ip协议栈的四层协议中,各层数据包封装情况包括:在发送业务数据时,将业务数据从最上层到最下层一次打包(加上包头和部分尾部信息);在接收业务数据时,则将业务数据从最下层到最上层依次拆包(去掉包头和部分尾部信息)。这些打包和拆包操作就是由tcp/ip协议栈实现的。

进一步地,在本发明又一实施例中,所述方法还可以包括:若所述协议栈集合中不存在与传输所述通信数据使用的一个或多个通信协议对应的协议栈,则在所述协议栈集合中添加缺失的协议栈。

可以理解,通信协议为了满足技术的进步,会随着技术的进步而不断更新完善,因而,可能在某一时间,协议栈集合中的部分通信协议发生更新,此时,需要对该部分通信协议进行更改。

进一步地,在本发明又一实施例中,所述方法还包括:接收数据传输协议更新信息;基于所述数据传输协议更新信息对所述数据传输信息中原有的通信协议加以更新处理。

步骤606:发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端;

这里,所述第二终端可以为终端设备或服务器设备。当所述第二终端为终端设备时,第二终端为在用户侧运行应用程序的设备,可以为台式机电脑、电视机顶盒、xbox/ps3游戏机、户外广告展示屏等固定终端设备;也可以为智能手机、笔记本电脑、平板电脑和车载广告展示屏等移动终端设备;当所述第二终端为服务器设备时,第二终端为在服务器侧运行应用程序的应用服务器。

需要强调的是,本发明实施例将通信协议独立于网络环境或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,若当前应用场景是将同样的通信数据发送给多个不同的协议栈的第二终端时,也可以同时实现,即所述第二终端可以是一个也可以是多个。

步骤801:当所述通信数据对应的网络数据信息从第一网络数据信息切换至第二网络数据信息时,根据第二网络数据信息对预存的数据传输协议信息进行遍历处理;

步骤802:从所述数据传输协议信息中查询得到传输所述通信数据的新的通信协议;

步骤803:利用与所述新的通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包后发送所述通信数据包。

在一示例中,若检测与所述通信数据对应的网络数据信息是否发生变化,得知第一终端处在网络边界不断切换的移动网。若所述第一终端从4g网络切换至无线保真(wifi)网络时,则根据所述wifi网络对预存的数据传输协议信息进行遍历处理;从所述数据传输协议信息中查询得到传输所述通信数据的新的通信协议,如私有协议1;进一步地,利用与所述私有协议1相匹配的数据封包方式将所述通信数据封装成对应的通信数据包后发送所述通信数据包。

本发明实施例所述数据处理方法,将通信协议独立于网络环境处理,因而通信协议可根据具体业务需要灵活选择,因此可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

具体应用场景:

图9为传统的数据处理方法的具体实现流程示意图,如图9所示,所述方法包括:

步骤901:用户启动应用程序;

步骤902:用户与应用程序交互产生交互逻辑;

步骤903:交互产生通讯数据需要发送给服务器或对端用户;

这里,所述通讯数据包括聊天数据、实时音频数据、实时视频数据等。

步骤904:数据发送前,检测用户的网络环境;

步骤905:针对用户网络环境,绑定传输协议;

步骤906:根据传输协议,绑定数据封包方式;

步骤907:基于所选择的协议和封包方式,在网络上传输数据,完成网络通讯。

所述数据处理方法中步骤905和步骤906直接耦合业务逻辑和用户网络环境下的数据封包方式,导致对于多种网络环境下的不同数据封包方式适配困难,不利于在多种网络环境下灵活切换,也不利于对未来出现的新的网络环境的简易扩展。

图10为本发明实施例数据处理方法的具体实现流程示意图,如图10所示,所述方法包括:

步骤1001:用户启动应用程序;

步骤1002:用户与应用程序交互产生交互逻辑;

步骤1003:某些交互产生通讯数据需要发送给服务器或对端用户,如聊天数据、实时音频数据、实时视频数据等;

步骤1004:根据用户当时的网络环境,如仅支持tcp或仅开放80端口等,或者根据具体业务情况,如有线网络可直连业务服务器,但移动网络牵扯网络边界切换等问题需要通过代理服务器间接连到业务服务器等情况,选择传输协议;

步骤1005:根据所选择的传输协议,对通讯数据做特定化封包,如在仅支持tcp传输的环境下封包为方式,在仅开放80端口的环境下封包为http方式,在移动网络下,封包为私有的代理协议方式等;

步骤1006:基于所选择的协议和封包方式,在网络上传输数据,完成网络通讯。

本发明实施例所述数据处理方法中,通过步骤1004和步骤1005,解耦用户网络环境、特定业务实现和交互逻辑之间的耦合,在软件实现过程中,交互逻辑不必根据网络环境、业务情况一一对应一套特定的实现,而是只需关注自身逻辑,用一套实现产生通讯数据,再根据具体情况将通讯数据路由到不同的传输协议,采用特定的方式打包和传输,从而使软件具有良好的灵活性、适应性和扩展性。

图11为本发明实施例数据处理装置的组成结构示意图,如图11所示,所述装置包括:生成模块1101、匹配模块1102、处理模块1103、封装模块1104和发送模块1105;

所述生成模块1101,用于生成通信数据,所述通信数据为第一终端通过应用程序与用户进行交互的业务数据;

所述匹配模块1102,用于选择与所述通信数据对应的网络数据信息;

所述处理模块1103,用于基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;

所述封装模块1104,用于利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

所述发送模块1105,用于发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端。

在本发明一实施例中,所述处理模块1103包括:解析单元和查询单元;

所述解析单元,用于对所述预存的数据传输协议信息进行解析,得到至少包括网络环境信息、通信协议、及所述网络环境信息与通信协议之间对应关系的信息;

所述查询单元,用于当所述网络数据信息为所述网络环境信息时,根据所述网络环境信息与通信协议之间的对应关系,查询得到对应所述网络环境信息的通信协议。

在本发明一实施例中,所述处理模块1103包括:解析单元和查询单元;

所述解析单元,用于对所述预存的数据传输协议信息进行解析,得到至少包括业务类型、通信协议、及所述业务类型与通信协议之间对应关系的信息;

所述查询单元,用于当所述网络数据信息为通信数据所属的业务类型时,根据所述业务类型与通信协议之间的对应关系,查询得到对应所述业务类型的通信协议。

在本发明一实施例中,所述处理模块1103,还用于当所述通信数据对应的网络数据信息从第一网络数据信息切换至第二网络数据信息时,根据第二网络数据信息对预存的数据传输协议信息进行遍历处理;从所述数据传输协议信息中查询得到传输所述通信数据的新的通信协议;利用与所述新的通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包后发送所述通信数据包。

在本发明一实施例中,所述封装模块1104包括路由单元和封装单元;

所述路由单元,用于将所述通信数据路由到协议栈集合中与所述通信协议对应的协议栈中;

所述封装单元,用于按照所述协议栈的协议栈格式将所述通信数据封装成对应的通信数据包。

在本发明一实施例中,所述装置还包括设置模块1106;

所述设置模块1106,用于设置协议栈集合,所述协议栈集合包括公有协议栈与私有协议栈中至少一种协议栈。

在本发明一实施例中,所述处理模块1103,还用于若所述协议栈集合中不存在与传输所述通信数据使用的一个或多个通信协议对应的协议栈,则在所述协议栈集合中添加缺失的协议栈。

在本发明一实施例中,所述装置还包括接收模块1107;

所述接收模块1107,用于接收数据传输协议更新信息;

所述处理模块1103,还用于基于所述数据传输协议更新信息对所述数据传输信息中原有的通信协议加以更新处理。

本领域技术人员应当理解,本实施例的信息处理装置中各模块的功能,可参照前述信息处理方法的相关描述而理解。

实际应用中,所述数据处理装置的各组成模块及其各模块对应的各单元的具体结构均可对应于处理器。所述处理器具体的结构可以为中央处理器(cpu,centralprocessingunit)、微处理器(mcu,microcontrollerunit)、数字信号处理器(dsp,digitalsignalprocessing)或可编程逻辑器件(plc,programmablelogiccontroller)等具有处理功能的电子元器件或电子元器件的集合。其中,所述处理器包括可执行代码,所述可执行代码存储在存储介质中,所述处理器可以通过总线等通信接口与所述存储介质中相连,在执行具体的各单元的对应功能时,从所述存储介质中读取并运行所述可执行代码。所述存储介质用于存储所述可执行代码的部分优选为非瞬间存储介质。

示例性的,图12示出用于实现所述数据处理装置的一个可选的硬件结构示意图,包括处理器121、输入/输出接口122(例如显示屏、触摸屏、扬声器),存储介质123以及网络接口124,组件可以经系统总线125连接通信。相应地,数据处理装置的存储介质123中存储有用于执行本发明实施例所述数据处理方法的可执行指令。

其中,所述存储介质123可以是移动存储装置、随机存取存储器(ram,randomaccessmemory)、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。优选地,所述存储介质123可为非易失性存储介质。

其中,处理器121可以是cpu、mcu、dsp、plc,还可以是处理电路,例如,专用集成电路(asic,applicationspecificintegratedcircuits)。

具体地,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,可执行如下步骤:

生成通信数据,所述通信数据为第一终端通过应用程序与用户进行交互的业务数据;

选择与所述通信数据对应的网络数据信息;

基于所述网络数据信息对预存的数据传输协议信息进行遍历处理,得到传输所述通信数据的通信协议;

利用与所述通信协议相匹配的数据封包方式将所述通信数据封装成对应的通信数据包;

发送所述通信数据包,以将所述通信数据包传输至支持所述通信协议的第二终端。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

对所述预存的数据传输协议信息进行解析,得到至少包括网络环境信息、通信协议、及所述网络环境信息与通信协议之间对应关系的信息;

当所述网络数据信息为所述网络环境信息时,根据所述网络环境信息与通信协议之间的对应关系,查询得到对应所述网络环境信息的通信协议。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

对所述预存的数据传输协议信息进行解析,得到至少包括业务类型、通信协议、及所述业务类型与通信协议之间对应关系的信息;

当所述网络数据信息为通信数据所属的业务类型时,根据所述业务类型与通信协议之间的对应关系,查询得到对应所述业务类型的通信协议。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

当所述通信数据对应的网络数据信息从第一网络数据信息切换至第二网络数据信息时,根据第二网络数据信息对预存的数据传输协议信息进行遍历处理;

从所述数据传输协议信息中查询得到传输所述通信数据的通信协议。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

将所述通信数据路由到协议栈集合中与所述通信协议对应的协议栈中;

按照所述协议栈的协议栈格式将所述通信数据封装成对应的通信数据包。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

设置协议栈集合,所述协议栈集合包括公有协议栈与私有协议栈中至少一种协议栈。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

若所述协议栈集合中不存在与传输所述通信数据使用的一个或多个通信协议对应的协议栈,则在所述协议栈集合中添加缺失的协议栈。

在本发明一实施例中,所述处理器121通过所述系统总线125从所述存储介质123中读取并执行数据处理方法的可执行指令,还可执行如下步骤:

接收数据传输协议更新信息;

基于所述数据传输协议更新信息对所述数据传输信息中原有的通信协议加以更新处理。

本发明实施例所述数据处理装置,将通信协议独立于网络环境和/或业务逻辑处理,因而通信协议可根据具体业务需要灵活选择,因此可解耦用户网络环境下的数据封包方式和业务逻辑实现,使得只需一套业务实现即可适配多种网络环境,在多种数据封包方式之间灵活选择,从而增强软件对用户网络的适应性,并且在应对未来用户网络产生的新变化时,无需重构软件,只需迭代即可。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1