前置系统作为企业ERP和平台之间接口,隔离不同ERP的差异,进行数据传输和转换。
1 系统结构
系统结构如下图所示:
前置系统位于企业内部。
业务数据表是ERP系统存储的业务数据的集合,是接口同步的源和目标。
对于需要同步的业务数据表的变化,采用触发器方式捕获,记录到事件队列表(t_Sys_EventQueue)中。
接口库存储以下数据:
l 接口系统表:如配置信息
l 各种编码转换表
l 需要临时存储以便转换的数据:如需要转入ERP的来自平台的订单
前置机服务器作用包括:
l 与主站通信服务器通信,传输需要同步的数据
l 执行数据同步:包括从ERP提取转换数据,把来自平台的消息数据保存到接口表,然后提取转换后写入ERP.
接口维护程序是一个窗口界面的工具程序,负责各种码表的维护,维护过程需要访问平台服务器,如查询平台商品资料,商品类别,品牌,客户资料。
主站数据同步机制:
l 应用产生事件
l 各个同步目标(如平台,前置系统)的数据同步代理响应事件,把事件写入各自的事件队列表
l 由各个数据同步队列引擎提取数据
l 消息目标设置:对于前置系统,目标为(6,企业ID)
主站服务器在客户下订单后,激发订单事件,对于部署了前置系统的批发商,生成同步消息,目标为企业ID.由主站通信服务器发送给前置机服务器。
主站通信服务器需要开启9701端口接入前置机。
主站通信服务器提供版本检测功能,以支持前置机升级。
主站通信服务器版本信息保存在update插件的配置文件中。
该插件负责版本检查和提供本地版本信息。
update提供IUpdate接口。
与前置系统同步相关的事件引擎,消息队列采用独立的实例。存储分别为t_Sys_EventQueue_ps, t_Sys_MsgQueue_ps。
平台为每个前置机签发一个服务器证书,主站服务器信息表(t_Sys_Server)记录该主站上企业部署的前置服务器信息,HolderID为分配的企业ID,建立了企业和前置机的绑定关系。
一个企业对应一个前置机服务器,且只能有一个有效的实例,有效的实例为注册的机器的特征信息(称为机器指纹)。
前置机需要注册机器指纹信息后才会被验证,前置机注册有一个强制注册选项,用于更换机器时设置。
前置系统的数据流图示如下:
接口转换的右侧的数据为平台格式,不同ERP的差异由接口负责转换。
ERP的数据到达主站后,可以按需要沿用主站-平台数据同步系统同步到平台,这个环节不是本项目范围,但可能需要对现有实现调整。
2 主站结构
前置机注册的身份为证书的服务器id,serin验证前置机合法性,包括证书的合法性和运行机器特征。
l 作为目标端:
接收的来自前置机的数据同步消息由data_etl处理,调用配置的事件处理规则,写入到主站数据库中。
l 作为源端:
data_etl_proxy响应主站服务器处理请求成功后激发的事件,记录事件到t_Sys_EventQueue_ps表中。
由ehong调用data_etl配置的事件处理规则提取数据,生成数据同步消息包,目标为(6,企业ID),写入t_Sys_MsgQuue_ps,由bbox发送给前置机。
3 前置系统结构
前置系统连接平台和ERP,包括前置机(服务器)和接口库。