物流系统与ERP集成接口方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章物流系统与ERP集成接口方案
1.1. 接口方案说明
1.2. 消息整体框架
DAP 消息框架使用符合业界标准的XML格式用于包装业务数据,同时使用标准的HTTP 协议进行消息传递;
同时它还提供一整套用于保证消息可靠传递以及方便调用后台应用API 进行消息处理的工具与类库, 从而在最大程度上加速了特定应用消息服务器的二次开发。
DAP 消息框架提供了两种消息处理模式,实时与非实时;以下我们将详细介绍在处理实时与非实时消息时的系统架构。
1.2.1. 实时消息(请求)处理的基本架构
【功能简述】
实时消息处理架构最大的好处在于发送方(ERP系统)能够即时使得物流系统进行处理,并得到返回的信息。其效果相当于在IE浏览器里,
提交一个查询请求,然后就可以得到相应的返回页面。
ERP系统通过HTTP方式访问物流系统消息服务器,并将XML格式的消息报文发送给消息侦听器。消息侦听器解析消息报文,生成消息框架的消息对象,然后通过消息服务管理器查找特定的处理此类消息对象的消息服务,并将消息对象交由消息服务处理。
消息服务在接收到特定消息对象之后,从中提取业务数据,根据业务逻辑,调用物流系统相应的功能接口进行处理;消息服务在处理完毕之后,生成回发的消息对象,交由消息发送器通过Http回发予ERP系统。
实时消息处理框架的不利之处在于,当消息服务器同时接收到大量的请求时,会影响正常的物流系统运行。解决的方法有两种:一种是不要将不需要实时处理的消息改为非实时消息,使得消息服务器可以在空余的时间内再做处理;另外一种是将消息服务器与物流系统部署于两个WEB服务器上。
【名词解释】
●消息侦听器DAPMessageListener
用来接收外部应用程序发来的DAPMessage, 总体控制DAPMessage到具体服务的分发。
●消息服务管理器DAPMessageServiceMgr
用来管理各种DAPMessageService, 如接单管理服务( OrderManagementService ), 等等…
●消息服务DAPMessageService
用来处理具体的DAPMessage, 目前分为实时和非实时(NRDAPMessageServiceMgr)两种。消息服务相当于一个适配器,将外部的数据转换成系统内部所识别的业务数据,并调用系统内部的功能接口处理转换后的业务数据。
●消息发送器DAPMessageSender
主要用于发送DAPMessage给外部应用程序, 外部应用程序也可以用它发送DAPMessage给我们的DAPMessageListener。
【功能简述】
本架构的重要作用是将消息缓存起来,然后交由非实时消息处理线程进行统一处理,对系统的性能影响较小。
非实时的DAPMessageService接收从DAPMessageListener分发过来的消息对象, 直接交于DAPMessageMgr进行入库(InputDAPMessage),同时返回‘是否收到DAPMessage’给DAPMessageListener
不利之处在于发送方不能得知接收方将于何时对所发送的消息进行处理,因此要求非实时消息必需是不会影响发送方当前的业务流程的消息。
【名词解释】
非实时消息服务NRDAPMessageService
继承了DAPMessageService,用来处理具体的非实时DAPMessage。
【功能简述】
在“非实时消息接收的基本架构”中,接收到的非实时消息保存于数据库中。在“非实时消息处理的基本架构”中,将会由非实时消息读取线程式从数据库中读取相应消息对象,并交由各自对应的消息服务进行处理。消息服务处理完之后,将会产生相应的回发消息对象,发送予ERP系统的消息服务器。
如果发送不成功,消息发送器会保存消息对象,交由“发送请求”线程进行再次发送。
【名词解释】
ERP系统的消息服务器
是一个与物流系统消息服务器类似的,用于接收和处理消息的WEB 服务器。不同之处只在于其消息服务部份,是针对于ERP系统所定制的消息处理器。
非实时请求消息读取线程(InputDAPMessageThread) 以固定的时间间隔(T),从消息管理器中循环读取数据库保存的未处理消息对象,并交由特定的消息服务处理。处理完固定数目(N)的BackupInputDAPMessage后,睡眠固定的时间间隔(T)。
1.2.4. 发送消息的基本架构
【功能简述】
物流系统功能模块将业务数据交予对应的消息服务,消息服务将业务数据转换成相应的消息对象,并交由消息管理器将消息对象标记为“未发送的消息对象”保存。
非实时消息发送线程通过消息管理器从数据库中读取未发送的以及发送失败的消息对象,交由各自对应的消息服务进行处理。消息服务处理完之后,将会产生相应的消息对象,交由消息发送器发送予ERP系统的消息服务器。
【名词解释】
非实时响应消息发送线程(OutputDAPMessageThread) 以固定的时间间隔(T)循环遍历OutputDAPMessage表,处理完固定数目(N)的BackupOutputDAPMessage后,睡眠固定的时间间隔(T)。
1.3. 业务接口的基本架构
DAP 根据以往在物流系统与ERP系统广泛集成的经验基础上,总结出成功集成的关键在于:
1) 基础数据必须实现实时同步;(基础数据并不会进行频繁的修改,
因此实时同步并不会影响系统效率)
2) 订单流程必须在非实时交互模式下实现无缝集成。(订单的业务操
作十分频繁,因此需要利用非实时的模式进行异步同步,以提高系
统效率,同时可以通过调整传输频率,以达到令人满意的订单同步
频率)
其它的数据集成还包括产成品入库流程集成、库存调整同步等多种数据集成,在本方案中,着重就基础数据同步和订单流程集成进行讨论。1.3.1. 基础数据同步接口
基于以往的设计经验与目前技术上实际情况,不建议多个系统共用一个数据库,因为这会引发数据库性能与系统灾难性故障时修复的难度。因此ERP系统与物流系统各有自己的数据库。为了使两个系统中的基础数据不会引起岐义,ERP系统与物流系统中使用的基础数据必须有同步。
步可以分为两个步骤进行:一是系统初始化时的同步,二是系统运行时的同步。