基于网络信息流的物资信息管理系统的研究与分析
1引言
通常情况下,市场上各种仓库管理软件对物资的分类管理方式,与企业对物资的管理方式不符合,管理软件存在功能缺乏和功能冗余的不足。在实地考察研究淮南矿业集团某矿实际运作的情况下,为了解决企业在管理物资管理过程中出现的问题,研究设计了一套仓储物资管理系统。
传统的物资管理系统都实现了工作流引擎,工作流技术很好地解决了软件系统与企业对物资的管理流程不一致问题,同时可以非常清楚快捷地描述业务流程,监控管理工作的进程。文献中提到了工作流技术和物联网技术的结合,但它只阐述它们之间的协作。而本文在深入研究工作流技术和物联网技术后,结合物联网智能,自动化和可靠的特点,通过融合物联网技术和工作流技术的思想来设计软件架构,实现了用物联网信息传输的思想来设计基于网络信息流的工作流引擎,按此思想,软件系统中的物资不仅仅只是表单中的一套数据,而且也是一个对象,物资属性的改变作为信息流在各管理人员之间传阅。在此基础上实现了物资管理软件,很好地解决了该企业在管理工程中出现的各种业务问题。
2系统总体架构设计ข
本系统深入分析研究了该矿业集团的物资管理流程,按照信息化标准,运用结构模块化,面向对象的思想,对系统进行全新设计。
2. 1系统需求
系统需要协调物管部门和各个普通部门之间的物资流转工作,物管部门和各个普通部门都有一个各自独立的物资仓库,在每一个流程中涉及到各种类型的人员的协作,系统中基本的人员角色有库管员,部门科长,材料员,送料员,普通人员等,不同的角色代表不同的权限,系统人员以不同的角色参与到业务活动中。
2.2模块划分及整体架构
系统的模块和整体架构后端主要包括权限控制、数据安全控制、业务流程设计、业务管理、流程引擎等模块。其中流程引擎模块是本系统的核心模块。
3设计思想
本系统采用架构设计软件,除网站服务器外,浏览器请求提交数据的方式都采用Ajax技术,数据格式采用二技术,具体采用什么格式则根据数据传输要求和JSON或XML的特点来确定。该技术可以提高交互体验,减少传输的冗余数据。为实现请求统一,JSON和XML严格按照事先设计好的交互协议,数据返回的格式同样严格规定,同时对必要的数据如用户密码进行加密传输。
在后台服务器端,系统首先检查用户的Session是否超时,后台所有服务必须是在用户已经登录的情况下才能访问。系统接着解析前端发来的请求,然后把请求交给权限安全控制模块,以过滤不合理或违法的请求,最后该模块按请求指示的业务类型把它分发到对应的模块,各模块执行实际的请求后,生成对应的SQL请求,这样的请求再交由数据安全控制模块,以产生最终的SQL语句,返回的SQL请求再层层返回到前端,浏览器把系统返回来的数据展示给用户。在这个过程中,如果哪个模块里面的检查,或者处理出现异常,系统会立即检测到,并把异常信息经过加工处理后返回给前台浏览器。
权限安全控制模块主要检查用户发来的请求数据格式是否符合通信协议,是否有权限访问该模块,是否超出该模块开放给该用户的权限等。数据安全控制主要是检查数据更新是否影响数据库的完整性,一致性要求,同时检查用户权限,已达到对用户权限在数据记录级别的控制。
4网络信息流引擎实现
4. 1相关技术
工作流管理是支持组织业务过程高效运行的思想、理论、方法、技能和系统的总称,它可以实现业务的自动执行。工作流模型是对工作流的抽象表示,比较常见的工作流建模方法有:基于Petri网的工作流建模方法,基于时间驱动的工程链工作流建模方法,基于语言为的工作流建模方法,基于活动网络图的建模方法等。本文将结合物联网信息传输的思想,在基于活动网络图的基础上研究设计出基于网络信息流模型的工作流建模方法。
4.2物联网信息传输特点
物联网是由大量的传感器节点组成,传感器能感知环境的变化ฉ,并把这种变化信息通过网络传给汇聚节点,信息经过汇聚节点处理后,再通过网络到达主机,主机根据传感器送来的消息进行信息融合处理,最后把处理结果再反馈给用户,把控制信息反馈给传感器。
为了更好地在工作流中使用物联网信息传输的思想,现作如下的规定,一个环境中存在不同的网络,一个网络中有且仅有一个CN节点,多个SN节点,多个RN节点,这里的RN和HN因为功能一样,所以不作区分,统称为RN。系统会首先按照用户的操作生成一个CN节点并把消息给CN节点,这个网络就动起来了。
4. 3网络信息流引擎设计
工作流实际上是一个网络,一个表单从网络的起点开始,经过节点的处理到达下一个节点,直到该节点是结束类型的节点,流程才正式结束。本系统初步实现了按照文献提到的调度策略,其扩展的工作流引擎。这样的好处是使得业务能更好地调度。
由于在本系统中工作业务流程都与仓库的物资流转相关,在系统设计的过程中,把物资信息抽象成SN节点,传统流程里的表单就是一个CN节点。流程开始时,CN首先收集SN的消息,封装成一个表单消息,然后把表单消息发送个下一个RN;RN会根据用户的操作选择来处理该消息,如果用户的选择表示该流程处理结束,那么该RN节点会在本网络中广播流程结束消息,所有参与该流程实例的节点会收到该消息,所有收到流程结束消息的节点会把该消息通知给相应的用户。
流程在发送消息时地址的实现采用角色方案,因为系统权限管理方式是基于角色的访问控制模型,所以地址用角色表示,具体的操作人员表示端口。采用网络中的广播,多播等概念实现一对多的消息发送处理,但是只有一个消息会被处理,消息在处理时,会进行网络状态判断,已确定该消息是否过时,对过时的消息,系统通知用户后直接抛弃。
实际上大多数流程都是为了改变物资在仓库中的属性,如库存量,报废等,但是新物资入库则是例外。一批新的物资进入仓库,这就如同一个新的节点加入到这个仓库网络中,这个网络会监听到这样的消息,并进行相应的流程处理。对于其它的情况,该网络同样能很好地解决。
4. 4流程实现
流程引擎中的关键类和接口如下:
I Network网络类型接口。
Anode节点❥类型接口。
I Message消息接口,用于实现协议。
Ilene消息链路接口,消息必须通过链路才能到达下一个节点。
C Base Network所有流程网络的基类,实行了I Network接口,并且提供网络公共的方法实现和事件,它定义了一个网络类型,通过读取数据库里面的配置来确定网络的结构,里面包括的公共方法如Send Message等,事件如:Start, End等,并提供网络状态的访问方法如:U interwork-State等。
C Base Node所有节点的基类,实现了Anode接口,并且提供节点公共的方法实现,这个类定义了用户可以的操作选项,并处理用户的选择,里面包括的事件方法有:On User Choice OnMessageln,OnMessage0ut等,该类的子类实现了具体的消息解析和处理方法。
C Base Message所有消息的基类,实现了I Message接口,并且提供消息公共方法的实现,包括定义消息的类型,消息的具体内容等。
C Baseline所有链路的基类,实现了Ilene接口,并且提供链路公共方法的实现。该类主要对业务做延迟,定时等处理。
C Work J low Engine负责创建,读取,释放,结束工作流等辅助工作。
4.5流程执行
下面以一个业务流程来解释流程的具体执行过程,假设工作流为物管部门物资入库,信息网络流程如下:
1)浏览器接受用户输入消息,以JSON格式发送给服务器。进入第二步。
2)服务器对用户提交的每一个物资抽象成SN节点,封装成I Message,并发送给该网络的CN节点,进入第三步。
3 ) CN节点对流程作一些预先的工作,但并不是所有的流程都有具体的工作,在本业务流里,它只是直接把消息发送给下一个RN 节点。进入第四步。
✔4)该节点为称为物管科长审核,物管科长可以选择通过审核或不通过审核,当通过审核时,直接进入第五步,否则进入第八部步。
5)该节点称为材料员确认,只有确认操作,确认后进入第六步。
6)该节点称为库管员确认,只有确认操作,确认后进入第七步。
7)该节点称为流程成功结束,物资进入物管仓库,RN根据I Message提取入库物资信息,并更新数据库,然后广播流程成功消息到各个节点。各节点收到消息后反馈给用户。
8)该节点称为流程失败结束。物资仓库数据不变,并广播失败消息到各个节点。各节点收到消息后反馈给用户。
4. 6工作流权限管理模型
在工作流的控制方式中有以下七种:扩展的基于角色的访问控制模型、基于任务的访问控制模型、基于角色和任务的访问控制模型、基于团队的访问控制模型、基于规则的访问ห控制模型、基于状态的访问控制模型、面向服务的访问控制模型团。本系统采用基于角色的访问控制模型。
权限类型分为两种粒度,一种是记录级权限,另一种是业务级权限。系统再把这些权限分配给角色或者直接分配给用户,角色可以递归分配给角色,最终分配给用户。结合流程引擎的实现,基于角色的访问控制模型能很好地嵌入在Anode中,一个Node就是对具有指定角色和指定人员的集合能对流程指定节点进行处理的总称。
5结语
本文阐述了基于网络信息流模型的工作流引擎,分析了物联网信息传输的特点,同时在流程引擎中引入该思想,得益于成熟的物联网理论,该引擎能很好地应付复杂的业务需求和业务需求的变更。本文实现的物资管理系统也证明了该方案的可行性。由于是第一次在工作流中引用物联网信息传输特点的思想,工作流引擎在设计实现方案上还存在一些欠缺,网络的可扩展性比真实的要差,各种网络之间的融合方案没有实现,子网方案也只存在于引擎设计的概念阶段,这也是今后要努力的方向。