3. 4 业务流程控制
基于RFID业务流程进行的定制开发,无法灵活应对业务流程的变更,同时也造成代码冗余难以重用。为了缩短业务开发周期,需要提供一个可扩展、可重用的业务处理框架。本节内容阐述一种基于组件设计思想、结合规则引擎技术,将RFID流程控制程序抽象封装成为可执行的业务组件,而进一步形成业务流程控制引擎的方案。业务流程控制引擎按照应用集成层的流程配置信息,与单据服务器交互获取并写回单据对象,根据数据处理模块对执行预定义查询语句所得过滤数据进行封装后得到的业务数据,调用预先配置的业务组件,在这个过程中,可以通过合理组合业务组件及控制其触发的条件,达到配置和优化业务流程的目的。在完成业务处理过程中,涉及任务调度、资源分配、数据持久化、流程配置、组件配置、单据获取与写回以及预警报告上传到应用集成层等操作。
如图6所示,业务引擎包括工作任务队列、任务调度器、数据流数据缓冲池、规则解析及配置、结果处理组件管理等模块。
(1)工作任务队列。
工作任务描述一个由业务单据触发的RFID业务过程,包括工作任务对应的业务单据、所占用的资源(数据缓冲池、硬件层服务实例、数据过滤层服务实例),工作任务有状态(新建、就绪、运行、结束等)、优先级等属性。工作任务队列存储中间件范围内需要处理的工作任务列表,它接受一个任务调度器,为其提供工作任务调度策略。
(2)任务调度器。
负责在绑定的任务队列中选取一个合适的工作任务,需要考虑工作任务的状态、优先级,系统当前资源分配情况等因素,为任务分配资源,使其处于可运行状态。进一步考虑,任务调度器还需要加入任务并发、重启等策略。
(3)数据流缓冲池。
数据流缓冲池按任务分段存储经过数据过滤层得到的RFID数据,通过缓冲持管理器对缓冲池的大小、数据缓冲段与任务映射关系、缓冲池资源分配等进行管理。
(4)规则引擎。
引入规则引擎的目的在于将业务规则的定义与实际代码处理分离,从而减低系统的藕合度,从而保证中间件可以应付业务规则快速变化的环境。规则引擎的工作可以简单描述为,在特定条件下触发特定组件的调用,通常,这样一条IF Then语句即可被理解成业务规则。
(5)规则解析器。
规则解析器负责解析预定义的业务规则,并根据业务规则运行任务。工作任务的执行分为RFID数据获取、过滤(冗余删除、条件匹配等)、处理三个过程,在引入Esper数据流技术后,数据获取和过滤将并行执行,而数据处理过程则是在过滤结束后进行。
图6 业务流程控制结构图
3.5 RFID公共信息服务
公共信息服务模块为外界提供RFID数据查询接口,同时为EPCglobal提出的物联网提供支持。主要通过实现一个本地的ONS子系统来提供该服务。遵循FPCglobal的标准,将ONS记录分为EP+ws,EPC+epcis,EPC+html,EPC+xmlrpc等几大类,分别用于通过WchScrvicc,FPCIS服务器、HTML网页、远程调用等方式来获取单品信息,ONS解析电子产品码与信息源服务器地址之间映射关系的原理在此不做详述,具体可参考文献。
图7 ONS子系统结构图
ONS子系统的结构由图7描述,地址映射转换器负责将EPC编码转换为符合ONS规范定义的URI,并传递给信息检索器,信息检索器将在本地ONS记录缓存中寻找符合条件的记录,若不存在这样的记录,检索器将请求缓存器向上一级的ONS服务器检索符合前述条件的记录,缓存器会根据预定义的缓存机制缓存返回的ONS记录,并根据结果返回策略向信息检索器返回一条或多条ONS记录,信息检索器得到ONS记录后,将解析记录的类型并选择相关程序调用,获取并返回EPC编码所表示单品的物流和信息流,比如对EPC+ecpcis的类型,调用记录中包含的EPCIS服务器所提供的符合标准的查询接口,获取和返回RFID事件。
4 应用
本节将介绍通过集成中间件完成基于RFID技术的ERP采购入库流程。标准的ERP采购入库流程主要涉及的业务单据包括采购汀单、到货单通知单以及采购入库单,其中到货通知单参照采购订单生成,而采购入库单则在仓库处根据实际入库情况生成,其中涉及各类人员对单据进行的审核操作在此不做详述。将RFID技术应用在该业务流程中,关键点在于如何利用RFID技术的多目标、非接触识别对入库货物进行统计和筛选,以创造出比传统查货方式更高的工作效率和准确率,进而达到优化流程的目的。
以用友UBFRP系统为例,通过该系统的EAI数据交换平台,集成中间件的单据服务器以单据类型、时间作为查询条件,将到货通知单导出。由于U8系统的基础数据已经被同步至中间件本地数据库,因此单据服务器在解析该单据时,确切地知道通知单中需要进行入库操作的存货类别、数量、仓库、对应采购汀单号等必要的信息,通过调用业务流程控制模块提供的远程接口,单据服务器可以将解析后的单据对象传递至该模块。到货通知单对象的到来将在业务流程控制模块中创建拥有编号、类型等属性的任务,如前面内容所述,该任务将被存储在工作队列中,并接收调度器的调度,在适当的时候被执行。调度器在调度任务时,需要从规则配置模块获取规则,根据规则中的定义为任务分配资源,包括使用的逻辑读写器、数据缓冲池、数据处理器以及结果处理组件初始化等,当所需资源准备好后,将规则和资源初始化规则引擎,由规则引擎完成流程的各个步骤以及控制集成中间件各模块间的交互。在采购入库流程中,可以定义如下规则:
其中,IncomingTask表示被调度器调度执行的任务,调度器需要负责初始化IncomingTask的状态(Status)和资源(TResource),而资源则包括数据过滤器(DataFilterEnginc)和逻辑读写器(Readerl等。当规则引擎判断任务的状态为可运行时,首先触发标签数据的读取(由组件Collect RFID Data完成),标签数据读取后交由数据过滤器dataFilterEngine进行数据过滤,过滤后的数据被组件ProcessData进行进一步封装处理得到业务数据,其中还用到了预先分配的资源(taskRe-source)。最后,根据得到的业务数据对入库产品的数量以及类别进行统计,得到入库结果。如果准确无误,调用组件equalResultHandler,在组件中可以定义回写采购入库单或者上传RFID业务事件,否则调用notEquaIRcsultHandler,报告错误或者警告。上述的资源和组件定义在Spring.NET的Ioc容器中定义,给集成中间件提供了高可配置性和重用性。
集成中间件具备了传统RFID中间件所需要的功能,重点强调与企业应用系统间的业务集成,通过良好的规则描述以及配合组件化策略,集成中间件能够较好地适应企业业务流程的变更,这是其最大的特点与优势。表1列出了其与传统RFID中间件的异同。
表1 集成中间件与传统RFID中间件的异同
5 结束语
本文阐述了一种分布式RFID集成中间件框架,并对中间件硬件服务器、单据服务器、数据处理、业务流程控制引擎等主要模块的设计和实现做了进一步讨论,最后以采购入库流程为例说明中间件如何成功将RFID技术与用友UBFRP系统进行集成。RFID中间件的研究方向广泛,RFID应用需要考虑诸多因素,如安全和性能等,限于作者的学识有限,本文并不能对所有RFID中间件需要分析和考虑的问题进行详尽细致的阐述,希望已有研究基础能够给将来的工作带来帮助。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:面向企业应用的RFID集成中间件框(下)