基于http协议和.net架构的服务器和客户端间数据传输方法

文档序号:7645147阅读:261来源:国知局
专利名称:基于http协议和.net架构的服务器和客户端间数据传输方法
技术领域
本发明属于数据传输领域,具体来说,涉及一种基于HTTP协议 和.NET架构的服务器和客户端间数据传输方法。
背景技术
随着INTERNET的迅速发展,越来越多的客户要求应用软件能实现 在线的实时管理和实时数据传输,对于数据流量很大的远程管理业务(如 连锁企业的实时数据管理、企业的大型数据库处理等),特别是采用C/S 结构编制的软件系统,如何将位于不同地点的终端进行信息交换,加快 信息处理的效率?同时又必须保证数据传输的安全性?
当前常用的数据传输解决方案主要有地面专线和以互联网为基础网 络的VPN连接。但大家都认为,现在地面专线很贵,VPN连接虽然便宜, 却受互联网本身的一些特性的影响,而变得不稳定,难以有连接质量的 保证,同时还有安全的隐患。
超文本传输协议(HTTP)是应用层协议,由于其简捷、快速的方式, 适用于分布式和合作式超媒体信息系统。自1990年起,HTTP就已经 被应用于WWW全球信息服务系统。HTTP也可用作普通协议,实现用 户代理与连接其它Internet月艮务(如SMTP 、NNTP 、FTP 、 GOPHER及WAIS )的代理服务器或网关之间的通信,允许基本的超
媒体访问各种应用提供的资源,同时简化了用户代理系统的实施。

发明内容
针对以上的不足,本发明的目的是提供一种基于HTTP协议和.NET 架构的服务器和客户端间数据传输方法,它采用同步发送和更新,发送 和接收并发控制,以保证数据传输的可靠性,其传输过程发生在一个服 务器端和至少一个客户端之间。该方法主要步骤包括
1、 客户端对数据进行处理;
11) 当客户端的数据库的关键表的数据发生变化时,利用数据库的 触发器记录下这个数据的关键字,并将这个关键字存储在一个指令表 中,用于后面对这个表扫描;
12) 根据11)的指令表的数据关键字获取对应的数据进行打包,转 成.NET下的一个类,然后利用.Net框架下的序列化机制进行序列化,接 着加密和压縮,变成一堆字符,存放在客户端数据库中;
13) 如果成功从服务器端获取数据则对数据进行反操作,先解压和解 密,然后进行反序列化,转成.NET下的一个类,最后把这个类的信息放 回客户端的数据库。
2、 客户端请求或发送数据;
21) 客户端通过HTTP把11)产生的数据发送到服务器端的网站, 如果成功把数据放到数据库后,则返回客户端成功标志,客户端标记当 前指令已经发送,继续发送下一条数据,否则当作失败,重新发送;
22) 客户端通过HTTP连接到服务器的网站获取属于该客户端的数据。3、服务器端对数据进行处理。
31) 服务器端的处理程序和客户端的处理程序其实是同一个程序, 处理的方式也很相似,也是根据服务器端产生的指定表产生数据并进行
打包,转成.NET下的一个类,然后进行序列化,接着加密和压縮,变成一 堆字符,最后把这些字符放回服务器端的数据库,等待客户端获取;
32) 如果成功从客户端获取数据则对数据进行反操作,先解压和解密, 然后进行反序列化,转成.NET下的一个类,最后把这个类的信息放回服 务器端的数据库。
所述步骤12)和13) .Net框架下序列化和反序列化过程可以采用 XML序列化或者二进制序列化,其中本发明优先考虑二进制序列化。
所述步骤12)和13)加密和解密序列化后的数据采用 System.Security.Cryptography.TripleDES类,其中TripleDES使用DES
算法的三次连续迭代,它可以使用两个或三个56位密钥。 与以往技术相比,本方法的有益效果
1)相对FTP来说,不需要对端口进行任何设置,因为HTTP的 80端口是默认支持的,而FTP不管是被动方式还是主动方式,都需要 设置端口,而且还要设置防火墙开放端口来避免被阻塞。而FTP默认是 所有在网络上被传送的数据和控制信息(包括密码)都未被加密的,使 用SSL/TLS进行ftp传输过程的验证和加密,良好的实现了与传统ftp协 议的兼容性和优良的数据保密性与完整性。在无法使用替代服务的环境 下,是一种非常好的ftp服务改进计划。略有不足的是,由于历史兼容性 因素,很多ftp client和server对ssl ftp扩展的实现都存在着各种缺陷, 另外在服务端相对来说,用FTP —般只能把数据传输到服务端的硬盘,
然后再进行处理,而我们这里是直接保存到数据库的,相对来说不容
易掉失数据。而且IIS的响应时间和吞吐量相对任何一个FTP的SERVER 端都是无可比拟的。
2)如果利用TCP/IP传输数据,优点是灵活和快速,不过这需要花 很大的代价去编写客户端和服务端的程序去适应各种情况,包括安全, 数据掉包,数据的顺序处理等等,而且IIS相比相对自己编写的服务端 来说还是无可比拟的。


图l为本方法的示意图。
具体实施例方式
下面结合附图对本发明进行进一步阐述。
基于HTTP协议的.NET架构提供下列与业务数据传输相关的功能
1 、基本数据传输.
2 、数据按顺序同步发送和更新.
3 、接收和发送并发控制.
本发明的目的是提供一种基于HTTP协议和.NET架构的客户端服务 器间实现数据传输的方法,以实现在客户端和服务器间传输数据,并对 传输进行同步和接收控制,保证数据传输的可靠性.
如图1所示,基于HTTP协议和.NET架构的客户端服务器间实现数
据传输的方法的主要步骤包括包括 a.客户端对数据进行处理。
b.客户端请求或发送数据。
C.服务器对数据进行处理。
所述的步骤a包括-
al.当客户端的数据库的关键表的数据发生变化时,利用数据库的触 发器记录下这个数据的关键字,并将这个关键字存储在一个指令表中, 用于后面对这个表扫描。
a2.根据al的指令表的数据关键字获取对应的数据进行打包,转 成.NET下的一个类,然后利用.Net框架下的序列化机制进行序列化。.Net 框架为程序员提供了两种类型的格式器, 一种通常是应用于桌面类型的 应用程序的, 另一个是 System.Runtime.Serialization,Formatters.Binary.BinaryFormatter类的对象, 而另一种则更主要的应用于.Net Remoting和XML Web服务等领域的,它 一个是System.Runtime.Serialization.Formatters.Soap.SoapFormatter类的对 象。下面我们来分析一下两种格式器各自的优点。
二进制序列化的优点
1. 所有的类成员(包括只读的)都可以被序列化;
2. 性能非常好。 XML序列化的优点
1. 互操作性好;
2. 不需要严格的二进制依赖;
3. 可读性强。
通过分析上面的代码,我们采取二进制序列化。
接着加密序列化后的数据,加密采用
System. Security.Cryptography.TripleDES类TripleDES使用DES算法的
三次连续迭代。它可以使用两个或三个56位密钥。
使用目的比较安全的加密一种方式,密钥和矢量的不同,会生产
不同的加密字串。因为是DES算法的三次连续迭代,而且算法可逆,这 样对于数据保密性和可恢复性都不错。
最后是压縮,在存储文件或者通过网络发送文件时,使用Zip压縮 可以节省空间和网络带宽。此外,还不会丢失经过Zip的文件夹的目录 结构,这使其成为非常有用的压縮方案。我们这里也是采用Zip压縮, Zip是一种受人欢迎的数据传输和存储标准,因为它可以节省磁盘空间 和网络带宽。典型的文本和数据库文件可以被压縮至它们原始大小的 10%。即使二进制文件不能进行同样的压縮,通常也可以获得50%的压 縮比。
Zip文件的一个附加优点是单个文件可以包含多个文件,同时可以 保留目录结构。这使您可以发送附加到电子邮件消息中的完整目录树, 并且让收件人恢复原始文件结构。
Zip数据格式是开放的,并且不会涉及专利权或其他法律问题。开 发人员可以自由地创建操纵Zip文件的应用程序,以及使用低级别Zip 压縮算法来暂时减小他们自己的自定义数据的大小。我们希望在用C# 编写的应用程序中使用Zip压縮。遗憾的是,Microsoft.NET Frameworkl.l当前不包含任何用于操纵Zip文件的类。所以我们选择了 SharpZipLib, SharpZiplJb的许可是经过修改的GPL,底线是允许用在不 开源商业软件中,意思就是免费使用。经过压縮后,数据就变成一堆字 符,最后把这些字符放回客户端的数据库,等待处理程序将数据发回服务
器°
a3.如果成功从服务器获取数据则对数据进行反操作,先解压和解密, 然后进行反序列化,转成.NET下的一个类,最后把这个类的信息放回客 户端的数据库.
所述的步骤b包括
bl.客户端通过HTTP把al产生的数据发送到服务器的网站.网站只 是一个中转站,只负责转接数据,如果成功把数据放到数据库后则返回 客户端成功标志,客户端标记当前指令已经发送,继续发送下一条数据. 否则当作失败,重新发送.
b2.客户端通过HTTP连接到服务器的网站获取属于该客户端的数据.
这里我们用到一个简单的半同步/半异步(half-sync/half-async)模式
举个例子-
许多餐厅使用半同步/半异步模式的变体。例如,餐厅常常雇佣一 个领班负责迎接顾客,并在餐厅繁忙时留意给顾客安排桌位,为等待就 餐的顾客按序排队是必要的。领班由所有顾客"共享",不能被任何特定 顾客占用太多时间。当顾客在一张桌子入坐后,有一个侍应生专门为这 张桌子服务。这里我们的网站就相当于领班,客户端的数据相当于顾客, 步骤c的处理程序就相当于侍应生。
所述的步骤c包括
cl.服务器的处理程序和客户端的的处理程序其实是同一个程序,处 理的方式也很相似,也是根据服务器产生的指定表产生数据并进行打包, 转成.NET下的一个类,然后进行序列化,接着加密和压縮,变成一堆字 符,最后把这些字符放回服务器的数据库,等待客户端获取。
C2.如果成功从客户端获取数据则对数据进行反操作,先解压和解密,
然后进行反序列化,转成.NET下的一个类,最后把这个类的信息放回服
务器的数据库。
权利要求
1、一种基于HTTP协议和.NET架构的服务器和客户端间数据传输方法,其主要步骤包括1)客户端对数据进行处理;2)客户端请求或发送数据;3)服务器端对数据进行处理。
2、 根据权利要求1所述的基于HTTP协议和.NET架构的服务器和客户端间数据传输方法,其特征在于,所述数据传输过程发生在一个服务器端和至少一个客户端之间。
3、 根据权利要求1所述的基于HTTP协议和.NET架构的服务器和客户端间数据传输方法,其特征在于,所述数据传输采用同步发送和更新,发送和接收并发控制,以保证数据传输的可靠性。
4、 根据权利要求1所述的基于HTTP协议和.NET架构的服务器和客户端间数据传输方法,其特征在于,所述步骤l)又包括如下步骤11) 当客户端的数据库的关键表的数据发生变化时,利用数据库的触发器记录下这个数据的关键字,并将这个关键字存储在一个指令表中,用于后面对这个表扫描;12) 根据11)的指令表的数据关键字获取对应的数据进行打包,转成.NET下的一个类,然后利用.Net框架下的序列化机制进行序列化,接着加密和压縮,变成一堆字符,存放在客户端数据库中;13) 如果成功从服务器端获取数据则对数据进行反操作,先解压和解密,然后进行反序列化,转成.NET下的一个类,最后把这个类的信息放回客户端的数据库。
5、 根据权利要求4所述的基于HTTP协议和.NET架构的服务器和 客户端间数据传输方法,其特征在于,所述步骤12)和13) .Net框架下 序列化和反序列化过程可以采用XML序列化或者二进制序列化,其中本 发明优先考虑二进制序列化。
6、 根据权利要求4所述的基于HTTP协议和.NET架构的服务器和 客户端间数据传输方法,其特征在于,所述步骤12)和13)加密和解密 序列化后的数据采用System.Security.Cryptography.TripleDES类,其中 TripleDES使用DES算法的三次连续迭代,它可以使用两个或三个56 位密钥。
7、 根据权利要求1所述的基于HTTP协议和.NET架构的服务器和 客户端间数据传输方法,其特征在于,所述步骤2)又包括如下步骤21) 客户端通过HTTP把11)产生的数据发送到服务器端的网站, 如果成功把数据放到数据库后,则返回客户端成功标志,客户端标记当 前指令己经发送,继续发送下一条数据,否则当作失败,重新发送;22) 客户端通过HTTP连接到总部的网站获取属于该客户端的数据。
8、 根据权利要求1所述的基于HTTP协议和.NET架构的服务器和 客户端间数据传输方法,其特征在于,所述步骤3)又包括如下步骤31) 服务器端的处理程序和客户端的处理程序其实是同一个程序, 处理的方式也很相似,也是根据服务器端产生的指定表产生数据并进行 打包,转成.NET下的一个类,然后进行序列化,接着加密和压縮,变成一 堆字符,最后把这些字符放回服务器端的数据库,等待客户端获取;32) 如果成功从客户端获取数据则对数据进行反操作,先解压和解密,然后进行反序列化,转成.NET下的一个类,最后把这个类的信息放回服务器端的数据库。
全文摘要
本发明公开了一种基于HTTP协议和.NET架构的服务器和客户端间数据传输方法,它属于数据传输领域。该方法主要步骤包括1)客户端对数据进行处理;2)客户端请求或发送数据;3)服务器端对数据进行处理。数据传输采用同步发送和更新,发送和接收并发控制,数据传输过程发生在一个服务器端和至少一个客户端之间。利用本方法实现的数据传输不需要对端口进行任何设置,还可以把数据处理并保存到数据库,数据传输过程更加安全、快捷。
文档编号H04L29/08GK101175089SQ20071002851
公开日2008年5月7日 申请日期2007年6月11日 优先权日2007年6月11日
发明者李连亮, 阮修洲 申请人:七天酒店(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1