服装,鞋帽进销存管理系统开发文档(通讯模块)

第四章 系统详细设计

4.2 通讯模块.

  4.2.1 功能概述.

本模块需要完成客户端和服务端的信息交换任务, 是衔接销售模块和服务器管理模块的纽带, 也是本系统至关重要的一部分.


(1)    数据交换.

前端销售部分准备好要发送的数据, 提交给该通讯模块, 然后和服务器建立连接, 等待服务器回应, 当获取服务器连接许可后, 封装本地数据以TCP传输的方式发送至服务器, 发送成功后, 接收服务器确认信息, 更新本地信息(日志).销售模块以XML文档的方式缓存数据, 服务器以解析该文档后执行数据库操作.

(2)    分布式查询.

销售模块提交查询请求, 通讯模块, 需封装该查询请求, 获取服务器响应

, 返回数据给销售模块.

4.2.2 消息格式.

   统一使用XML作为数据交换方式. 所有需要传输的数据首先序列化为XML文档(类似SOAP). 格式暂定如下:

<!--标识身份-->

<?xml version="1.0" encoding="utf-8"?>

<Envelope>

  <Header>

    <!--标识身份-->

    <!密钥-->

  </Header>

</Envelope>

 

<!通讯内容-->

<?xml version="1.0" encoding="utf-8"?>

<Envelope>

  <Message>

    <!--消息体: 包含消息长度,密钥-->

    <Items>

      <!--内容元组-->

      <Item>

      </Item>

      <Item>

      </Item>

    </Items>

  </Message>

</Envelope>

 

<!确认通知-->

<?xml version="1.0" encoding="utf-8"?>

<Envelope>

<!密钥-->

  <Back>

    <!确认内容-->

  </Back>

</Envelope>

 

XML<Header><Message>组成, 类似Web Services中的soap头的定义,处理方式也大致相同. 主要用于对发送方进行身份验证, 传递消息格式或类型. Header获取服务器验证后, 后面的内容才会被接收. <Message>也就是消息内容了. 服务器接收后进行解析, 执行相关的数据处理, 具体要依情况而定.

 

4.2.3 数据安全

    Internet不提供实体间安全通信的方式, 在网络上传输的数据很容易被未经授权的第三方截获或修改, 为了保证数据安全, 就需要在不安全的信道上创建安全的通信方式, 确保数据的行之有效的一种方法就是对所传输的数据进行加密--解密操作, 具体体现就是, 发送方按照双方约定的加密算法(有多种形式)加密数据, 然后发送给接收方, 接收方再进行解密.   

常用以下两种数据加密方法:

(1)    私钥(对称)加密.

具体做法是传输双方使用相同的密钥进行加密和解密, 密钥由任何一方生成, 此种方法缺点是: 密钥需要共享, 即将密钥传输给对方, 当该私钥被第三方截获, 就失去了数据加密的意义.

·                 NET Framework 提供以下实现私钥加密算法的类:

·                 DESCryptoServiceProvider

·                 RC2CryptoServiceProvider

·                 RijndaelManaged

·                 TripleDESCryptoServiceProvider

 

(2)    公钥(非对称)加密.

非对称加密由传输一方生成一对密钥(公钥和私钥), 公钥和私钥满足以下条件:

公钥加密的数据只能由私钥解密, 私钥加密的数据只能由公钥解密.

所以密钥生成方只需要将公钥发送给对方, 用公钥加密数据, 接收后用私钥解密即可.  使用这种加密技术, 即使第三方截获公钥,也无法对数据进行解密. 从而保证了数据通信的安全.

.NET Framework 提供以下实现公钥加密算法的类:

·                 DSACryptoServiceProvider

·                 RSACryptoServiceProvider

 

针对本系统采用 对成加密算法即可, 具体做法如下, 发送方(客户机)对要发送的数据进行加密, 然后连同密钥发送给接收方(服务器), 接收方再使用该密钥进行数据解密.

 

4.2.4 通信协议设计

  该部分定义了通讯双方共同遵守的规则, 协议共由三部分组成.

(1)    身份验证.

发送方首先需要把标志身份的信息<Header> 发送给服务器, 获得服务器确认后才可继续发送数据. 当身份验证失败后, 服务器会给出错误提示, 并拒绝接收消息.

(2)    信息发送.

通过身份验证后, 即可继续发送数据<Message>到服务器, 注意:这些数据必须经过加密处理.

(3)    接收确认.

当接受方(服务器)接收到数据后, 确认数据完整,无误后, 会向发送方(客户机)发出接收确认通知<Back>, 如果失败, 则发送失败通知, 客户机接收到成功接收通知后才能修改本地 更新日志”, 如果接收到 接收失败通知后会重新发送数据, (1).

 

4.2.5 更新日志.

   从日志中读取更新记录, 先做如下假设.

   假设上次进行更新数据的日期为I, 当前时间为 J, 则从I J-1 的数据记录都要发送给服务器. 发送完成后将更新日志中的 最后更新日期修改为当前日期, 添加新的更新记录.

注意: 执行更新操作当日所生成的缓存数据不可发送.

更新日志格式定义如下.

 

<!更新日志-->

<?xml version="1.0" encoding="utf-8"?>

<UpdateLog>

  <LastUpdate>

    <!日期-->

  </LastUpdate>

  <Items>

    <!更新详细记录-->

     <Item>

     </Item>

  </Items>

</UpdateLog>

 

 

4.2.6 客户端数据库设计.

客户端数据库使用ACESS, 定义如下表.

(1)    销售表.

缓存销售记录.

(2)    订单表.

(3)    用户表. 保存客户端登陆用户名和口令.

(4)    商品信息表: 同服务器.

(5)    库存表: 同服务器.

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值