随着经济的迅速发展,制线企业生产规模不断扩大,通过采用先进的生产设备,极大地提高了生产力。面对生产过程中大量订单数据和生产统计数据处理要求和客户对交货期、产品质量的要求,企业的生产管理必须具有高效性、严谨性和可控性才能保证生产的效率和产品质量。
然而,落后的企业信息化管理现状并不能满足这种生产管理需求,给企业的进一步发展和提升带来了极大的阻碍。究其原因,大致有3点:①制线业作为传统的人力密集型制造业,信息化管理起步较晚,信息化程度低;②企业发展速度较快,管理流程仍处于一个不断优化调整的阶段,而传统的信息管理系统或者ERP由于其工作流程和业务流程的紧密耦合,缺乏灵活性和可扩展性,因而对于此类企业不够适用;③企业已经采用的一些管理系统,如仓库管理系统、工艺配方管理系统等,只能满足本部门的管理需求,缺乏统一的标准和规划,在企业内部缺乏信息流通,造成了一个个“信息孤岛”。在这类企业的信息化建设中引入灵活的、可扩展的基于工作流的业务流程管理就很有必要。
针对上述问题,本研究设计基于BPM的生产管理系统,以实现工作流程的自动化,通过业务流程管理保证企业生产流程的执行,支持业务流程的快速修改升级,并通过企业应用集成增进管理系统间的信息交流,以满足企业发展的需求。
1 BPM和jBPM
业务流程管理BPM的注重点是:通过建模、自动
化、管理和优化流程,来优化企业业务的运行效率和效果,以构造规范化的业务流程为中心,推进跨部门、跨系统和跨用户的信息流通与整合。从管理的角度看,BPM是将业务流程看作一种新的抽象数据类型,以流程实例作为直接操作和管理的基本对象,并在流程实例中结合业务数据。BPM具有以下两个特点:
(1)工作流管理。
BPM采用工作流技术,以工作流的方式组织控制企业的业务流程,完成不同部门和工作人员之间的信息交换和协同工作,对业务流程和活动进行监控和分析,从而实现工作流程的自动化。
(2)企业应用集成。
通过将一系列的方法、技术和工具组织在一起,实现各异构应用系统之间的无缝集成。这样既保证了原有管理系统的正常运行,又实现了与新的管理系统的整合,促进了企业内部部门之间、管理系统之间的数据流通和信息交互。
jBPM是基于JavaEE的轻量级工作流管理系统,是一个能够可扩展、灵活地实现工作流/业务流程管理的企业级开发框架,为开发人员提供了流程定义、流程部署、流程执行、流程管理等功能。它不但支持业务流程执行语言BPEL,还提供了面向图形编程的流程定义语言(jBoss Process Definition Language,jPDL)。jBPM小巧且易于扩展,它可以很方便地部署到各种系统中,采用标准的Java API调用方式,可以由Java程序直接调用,也可以通过EJB组件调用。
2 基于BPM的生产管理系统设计
在传统的管理系统开发架构下,业务流程和业务逻辑紧密耦合地散布在代码中,缺乏提炼,因而造成了系统的僵化和复杂化。基于BPM的设计采用面向服务架构(Service Oriented Architecture,SOA),通过基于标准的开放接口和松耦合的方式,将较小粒度的服务组合成复杂的服务和应用程序,实现业务流程的构建。本研究针对生产管理系统的设计,把生产管理过程中的业务活动抽离出来,按照一定的定义格式存储,用BPM的方法对业务流程进行管理、分析和优化。基于BPM的生产管理系统的设计框架图如图1所示,系统总体架构分4层,详细功能说明如下: (图片) (1)数据支持层。
这一层主要为系统运行提供资源数据支持,通过对企业已有的管理系统与生产管理系统进行资源整合集成,提供了流程运转所需的基础数据。本研究采用数据引擎进行数据操作,在保证对各个不同管理系统数据的正确存取的前提下,实现对这些不同数据源的统一的访问管理。该层是实现不同管理系统应用集成的关键,也是生产管理系统运行的基础。它涉及到一个或多个存储企业管理数据的数据源,数据交换和处理都要保证数据安全,既要求数据传输的安全,也要求数据处理过程的安全。
(2)BPM平台层。
这一层主要对基于BPM的应用提供流程运行时的核心支撑。工作流引擎是BPM系统的核心部件,实现业务流程的定义和管理,负责业务流程安全、可靠地制定和有效的执行。对外提供业务流程、活动的查询、控制和管理功能。规则引擎针对业务规则进行定义与管理。应用程序通过向规则引擎传递参数数据来触发规则引擎,由规则引擎来调用相应的业务规则,触发相应的应用处理程序进行响应。通过规则引擎可以实现对业务规则的灵活控制和修改,提高管理系统的灵活性和适应性。服务适配器是实现SOA的关键工具,它将某些通用功能封装成可重用的服务组件提供给不同的应用调用,通过Web服务以消息的形式实现了系统与其他企业业务系统的信息交流和业务互动。上层服务也可以通过服务适配器将业务过程中的信息修改传递到各个下层服务进行相应的处理。本研究通过这种SOA原理,实现了对企业各个不同管理系统的应用集成的消息通信支持。
(3)流程处理层。
这一层主要对生产管理系统的所有业务流程和规则进行建模、定义、管理和维护。在工作流引擎和规则引擎的支持下,本研究结合企业生产管理的实际业务管理需求,创建工作流模型和规则模型。工作流模型是从企业的日常生产管理活动中提取出基本的业务流程,并通过流程建模使用流程定义语言进行描述,从而能够被计算机所理解。规则模型是从业务逻辑中提取出的业务规则,并且以特定的格式在基于业务流程管理的环境中表达出来。规则模型存储了业务规则以及与规则相关的属性,如业务权限要求、业务时间信息等。在流程执行过程中,流程判定节点通过业务规则来选择下一个流程节点并执行相应的业务逻辑。Web服务主要处理由服务适配器接收不同系统之问的消息,或者向其他应用系统传递消息服务,实现应用系统的集成。
(4)应用表示层。
这一层根据企业各个业务部门工作需要提供系统功能应用,生产管理系统主要由以下5个模块组成:
①系统管理:包括用户信息、权限管理、系统基础数据管理。对系统用户信息、角色信息进行管理,并负责用户权限的分配;对基本的供应商、车间信息、部门信息、客户信息、色号信息等基础数据进行维护。
②订单管理:包括订单录入、订单审核、订单通知、订单发货等。这一模块主要针对客户的订单进行处理,由业务员录入客户订单,提交到业务主管进行审批,审批通过后即可安排生产或者发货。
③生产管理:包括生产计划、工艺产能中心、生产调度、生产监控等。这一模块主要是生产部根据客户订单进行生产计划,制定生产任务单,并安排调度生产任务的执行,在生产过程中监控生产任务的执行进度。在制定生产计划时,若库存原料供给不足,可新建采购申请,发起采购流程。此外,还包括对生产工艺路线和产能数据的设定和维护。
④车间管理:包括车间任务、车间物料、车间进度管理等。这一模块主要是车间对所接受的生产任务的管理,包括任务查询、任务确认、任务安排等,同时记录车间物料的进出情况,通过车间员工的产量统计数据汇总车间的生产进度。
⑤仓库管理:基本物料管理功能。这一模块主要是针对物料(原料、绞线、色线,零头线、成品)进、存、出进行台帐管理。主要业务过程包括物料接收质检处理、合格后入库、退货、库存转移、调整,分类处理,以及库存分类账查询等作业。当库存原料不足时,仓管员可以新建采购申请,发起采购流程。
除了以上系统功能模块,这一层还提供了业务流程监视功能。业务流程监视是将BPM系统中正在运行的流程实例呈现在管理者面前,使管理者能查看流程的执行情况。将流程执行过程中的一些关键参数(如流程运行时间等)反映出来,使得管理者能清楚地了解到业务流程的执行效率,也能发现业务流程在执行过程中遇到的一些瓶颈,从而可以及时地对业务流程做出修改优化的决定。
这一层是基于BPM的生产管理系统直接与企业用户进行交互的界面。业务流程的发起、结束、流程节点任务的执行、流程的监控等操作都是在这一层进行。通过严密设计的用户角色和权限控制,结合业务流程中的任务分配机制,可以使用户登录后在操作界面直接看到所需处理的待办事项,提高工作效率。
3 基于BPM的生产管理系统的实现
3.1 数据支持层
数据支持层采用数据持久化框架Hibernate完成对不同管理系统数据源的整合。Hibernate作为Java应用程序和关系数据库数据交流的接口,它对JDBC进行了轻量级的封装,通过封装数据库底层的操作细节,屏蔽了不同数据库语言的差异,实现了对不同数据源的透明访问。在该系统的实现中,通过Hibernate的访问配置,实现了对企业已有的工艺配方管理系统、用友财务管理系统的数据库与生产管理系统数据库的整合,促进了信息的流通,初步达到了企业应用集成的目的。
3.2 BPM平台层
BPM平台层中流程引擎采用jBPM。jBPM流程引擎的工作机制如下:在流程部署阶段,流程引擎加载XML格式的流程定义文件,解析之后持久化到工作流相关的数据库中,形成流程档案;流程开启后,jBPM流程引擎根据流程档案进行流程实例化,负责推动流程实例的遍历,执行流程中定义的动作,维持流程状态,并记录所有流程事件。
规则引擎采用JBoss Rules。JBoss Rules是一个基于Rete算法的由数据驱动的规则引擎,它包括规则、事实和推理机3部分。规则存在规则库中,事实存在服务器工作内存中,由业务流程提供,两者通过推理机来实现匹配,规则被激活后由Agenda安排执行。
3.3 流程处理层
流程处理层由jBPM流程引擎和JBoss Rules规则引擎对提炼和建模完善的业务流程模型和规则模型进行管理维护。这一层的实现主要是使用系统能识别的语言定义各个业务流程模型和规则模型。
业务流程建模使用jBPM提供的流程定义语言jPDL。jPDL以图形化的方式描述业务流程。一个业务流程在BPM系统中表达为一个由模型元素(节点和连接弧)所组成的有向图。节点代表活动,连接弧代表活动间的顺序传递关系。
本研究针对本研究讨论的生产管理系统,采用自上而下的层次建模方法。首先对整个生产管理系统进行流程建模,确定总的业务流程,其次对各个大业务流程内部的子业务流程建模,最终实现整个生产管理系统的业务流程建模。根据企业的实际需求,生产管理过程中涉及到的业务流程主要有订单处理流程、生产主流程、采购流程等。这里以采购流程为例说明业务流程定义的方法,采购流程图如图3所示。(图片)
采购业务流程模型图 采购业务流程描述为:首先,请购人员(包括生产部调度员、仓库管理员等)根据物料需求状况新建采购申请单,提交后自动流转到采购部门主管;采购主管对采购申请的内容、金额等情况进行审核,若采购金额较大则须提交到高级主管审核;审核通过后,即托付到采购员创建采购订单,联系供应商,进行采购活动;采购到货后,质检部门进行质量检验,若检验合格则进行仓库入库登记;否则,进入特例采购申请,由主管进行审查,如果同意则进行仓库入库登记;否则执行退货程序;入库完毕后将采购收货单、采购发票提交到财务部门进行结算;退货或者入库活动结束后,采购流程完成。
本研究针对上述流程使用jPDL建模时,使用到了几种流程节点:①人工任务节点,如审批、修改节点,通过任务分配机制确定这些任务节点的参与者;②判定节点,如对审批流程、特例申请的判定,这类节点实现了流程的分支功能;③普通流程节点,在这类节点流程自动执行设置的任务。流程定义模型的本质是XML格式的配置文件。在配置文件中,针对不同的流程节点,可以设置各个流程节点需要处理的事件,分配每个流程节点对应的操作人员,也可以设置判定节点的判定方法。
采购流程中涉及到的业务规则主要是根据采购金额的数目控制审批流程,而这个金额的限定值是随着企业管理制度的变化而变化的。本研究使用JBoss Rules进行规则提取,能快捷地对业务规则进行修改,从而适应这种变化。本研究对提取出的JBoss Rules以drl格式的规则定义文件进行描述,如下所示:
(图片) 在流程运行过程中,规则引擎以流程变量中的采购申请单对象作为事实,推理机结合规则运行规则匹配算法,实现规则的触发,从而控制业务流程的走向。
其他的业务流程以及对应的业务规则建模与采购流程大致相同,生产主流程模型如图4所示。这样,本研究通过业务流程建模和规则建模,将业务流程控制和具体的业务处理功能分开,对于可能出现的流程变化和规则变化,只需要修改流程配置文件和规则定义文件,即可完成对流程的更新升级,快捷方便。
(图片)
生产主流程模型图 3.4应用表示层
该层采用JSF框架实现任务处理和页面跳转,使用XHTML实现Web页面。JSF是典型的MVC框架。视图层主要实现Web页面显示,将待处理的任务、需要查看的业务数据或者其他业务操作内容呈现在用户面前。模型层定义了生产管理系统需要处理的实体对象和具体的应用程序,负责业务逻辑和业务数据的处理,在这一层实现了对业务流程的发起、执行和结束等管理活动的调用。一个模型可以被多个视图重用,从而提高了应用程序的可复用性。控制器主要控制数据流向,通过接收用户界面的请求,并将请求分配给对应的模型,最后以经过模型处理后的视图响应用户的请求。本研究使用JSF能实现表示层界面和功能代码的松耦合,有利于开发人员的分工协作和提高组件的重用性,易于扩展和维护。
为了增强用户界面的交互性,本研究在Web页面采用了动态的语言编程,如Ajax、Javascript等,既能辅助用户完成业务处理工作,又能通过这种“富客户端”技术减轻用户访问对数据库和服务器的压力。
4 结束语
本研究在分析制线企业的信息化管理需求现状的基础上,设计实现了基于BPM的生产管理系统,既满足企业正常的业务流程管理需求,也便于在使用过程中对生产流程不断优化升级,同时系统通过数据引擎实现不同管理系统的应用集成,推动了企业内部信息的共享。浙江竞宏线业公司在应用基于BPM的生产管理系统的一段时间里,解决了信息不畅通、流程不清晰、责任不明确等问题,建立了规范可控的生产管理流程,实现了整个企业内部资源共享、协同合作和效益提升的目标。后继工作是将企业的生产管理流程更加精细化、全面化.增强流程对于复杂多变情况的适应性。同时不断提高应用程序的安全性和运行效率,使流程的控制、任务的分配更加科学、更加合理、更加安全,切实将BPM的理念和技术融合到企业管理系统之中。
2/19/2013
|