本文将从解决电子商务公司网站系统和后台ERP系统之间数据同步的问题来阐述UML在系统设计中的所起到的作用,但此篇为了解决具体问题将不局限于软件架构设计的内容,此篇要阐述的内容有以下两方面:
1. 数据同步策略设计
2. 用例视图、序列图、状态图、进程视图、实施视图等UML典型图例
2.项目背景
当前存在很多小型电子商务企业采用网站销售和呼叫中心目录销售相结合的方式,但其B2C网店系统与后台ERP系统都是基于自己的架构,两者之间没有任何关联。这样就造成B2C网站的业务与后台ERP系统无法衔接,这样会导致B2C网站的库存资料无法得到及时自动更新,B2C网站的客户订单无法自动下发到后台ERP系统,这就需要大量人力投入进行B2C网站的日常维护及业务管理成本。
基于以上的问题,就需要开发数据同步应用程序进行两个系统之间的重要业务数据之间的双向同步以达到两个系统间数据的无缝连接。
3.系统设计
为了达到高效率和较高数据准确性的要求,我们将综合采用触发器和应用程序结合的方式来实现同步方案。为了提供运行效率我们将设计队列来存取同步请求,为了提高系统的响应速度我们将采用触发器来发起同步请求,结构如下:
3.1.1.冲突策略设计
首先我们将扩展需要同步表的结构:
原表字段
|
UpdateBy
|
UpdateTime
|
SyncId
|
Data1
|
B2C
|
2008-09-11 12:00:00
|
1
|
Data2
|
B2C
|
2008-09-11 12:00:00
|
2
|
1. SyncId:记录的唯一标识
l 只有B2C系统产生的相关需要同步的数据才会由触发器来生成该字段。
l 设计该字段的目的是为了让同步程序和具体业务分开。
2. UpdateBy:该记录被谁更新
l 谁更新了本条记录,B2C:由B2C系统发起;ERP:由ERP系统发起。
l B2C系统发起的更新到了ERP系统将无须再同步回B2C系统。
l B2C系统UpdateBy值变化流程
l ERP系统UpdateBy值变化流程
3. UpdateTime:记录更新时间
l 防止新的数据被老的数据覆盖。
3.1.2.触发器设计
触发器负责队列的更新,生成队列数据,以便同步程序获取更新的数据项。
3.1.3.同步队列设计
4.1.1.用例总览
系统包含以下用例:
l 同步队列管理(Manage SyncQueue)
l 客户信息同步(Sync Customer)
l 商品分类信息同步(Sync ProductSort)
l 商品信息同步(Sync Product)
l 订单信息同步(Sync Order)
l 库存信息同步(Sync Stock)
以下是系统的重要用例及使用者关系图:
4.1.2.用例实现
4.1.2.1.B2C订单更新流程
4.1.2.2.B2C订单更新状态变化
4.1.2.3.B2C订单更新协作关系图
4.3.1.层次结构
4.3.1.1.Manage SyncData Layer(数据同步管理层)
4.3.1.2.Business Layer(业务规则转换层)
负责业务规则转换,将原始数据按照业务规则转换为对应的数据。
4.3.1.3.Library Layer(类库层)
4.3.1.4.Database Layer(数据库层)
总览:
B2C数据库:
ERP数据库:
4.3.2.支持组件
4.3.2.1.Manage SyncData
4.3.2.2.Business
4.3.2.3.Library
4.3.2.4.Database
|